Compare commits
2 Commits
master
...
flake_diff
Author | SHA1 | Date | |
---|---|---|---|
2e76fc427a | |||
d4e3170c17 |
6
flake.lock
generated
6
flake.lock
generated
@ -18,11 +18,11 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1703467016,
|
||||
"narHash": "sha256-/5A/dNPhbQx/Oa2d+Get174eNI3LERQ7u6WTWOlR1eQ=",
|
||||
"lastModified": 1702233072,
|
||||
"narHash": "sha256-H5G2wgbim2Ku6G6w+NSaQaauv6B6DlPhY9fMvArKqRo=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "d02d818f22c777aa4e854efc3242ec451e5d462a",
|
||||
"rev": "781e2a9797ecf0f146e81425c822dca69fe4a348",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
239
flake.nix
239
flake.nix
@ -9,90 +9,205 @@
|
||||
let
|
||||
pkgs = import nixpkgs { system = "x86_64-linux"; };
|
||||
|
||||
adapter_production_files = variant: pkgs.stdenv.mkDerivation {
|
||||
name = "production-files";
|
||||
src = ./kirdy_LD_adapter_${variant};
|
||||
build_copper_plate = { }:
|
||||
let
|
||||
copper_plate = pkgs.stdenv.mkDerivation {
|
||||
name = "production-files";
|
||||
src = ./kirdy_LD_adapter_copper_plate;
|
||||
|
||||
nativeBuildInputs = [ pkgs.kicad pkgs.zip pkgs.python3 ];
|
||||
nativeBuildInputs = [ pkgs.kicad ];
|
||||
|
||||
buildPhase = ''
|
||||
# kicad-cli requires the use of $HOME
|
||||
TMP_DIR="$(mktemp --tmpdir -d kicad-kirdy.XXXXXXX)"
|
||||
export HOME=$TMP_DIR
|
||||
PCB = "kirdy_LD_adapter_copper_plate.kicad_pcb";
|
||||
|
||||
SCH=kirdy_LD_adapter_${variant}.kicad_sch
|
||||
PCB=kirdy_LD_adapter_${variant}.kicad_pcb
|
||||
buildPhase = ''
|
||||
# kicad-cli requires the use of $HOME
|
||||
export HOME=$(mktemp -d tmp.XXXX)
|
||||
|
||||
# Get Revision Number from the Title Block in KiCAD Top Schematics
|
||||
REV=$(cat $SCH | grep rev | cut -d'"' -f 2)
|
||||
PREFIX=kirdy_LD_adapter_${variant}_$REV
|
||||
# Get Revision Number from the Title Block in KiCAD PCB
|
||||
REV=$(cat $PCB | grep rev | cut -d'"' -f 2)
|
||||
PREFIX=kirdy_LD_adapter_copper_plate_$REV
|
||||
|
||||
kicad-cli sch export python-bom $SCH -o $PREFIX"_bom".xml
|
||||
export PYTHONPATH=${pkgs.kicad.base}/share/kicad/plugins
|
||||
python ${kicad_bom_generator}/generate_bom_from_xml.py $PREFIX"_bom".xml $PREFIX"_bom".csv
|
||||
export KICAD7_3DMODEL_DIR=${pkgs.kicad.libraries.packages3d}/share/kicad/3dmodels
|
||||
kicad-cli pcb export step $PCB --subst-models --force -o $PREFIX.step
|
||||
'';
|
||||
|
||||
kicad-cli sch export pdf $SCH -o $PREFIX.pdf
|
||||
kicad-cli pcb export pos $PCB --format csv --units mm -o $PREFIX"_pos".csv
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
|
||||
export KICAD7_3DMODEL_DIR=${pkgs.kicad.libraries.packages3d}/share/kicad/3dmodels
|
||||
kicad-cli pcb export step $PCB --subst-models --force -o $PREFIX.step
|
||||
cp $PREFIX.step $out/$PREFIX.step
|
||||
'';
|
||||
|
||||
mkdir -p $PREFIX"_gerber_drill"
|
||||
kicad-cli pcb export gerbers $PCB -l 'F.Cu,B.Cu,F.Paste,B.Paste,F.Silkscreen,B.Silkscreen,F.Mask,B.Mask,Edge.Cuts' --no-x2 --subtract-soldermask -o ./$PREFIX"_gerber_drill"
|
||||
};
|
||||
in rec { "LD_adapter_copper_plate_step" = copper_plate; };
|
||||
|
||||
# The additional trailing slash is due to a bug in the kicad-cli tool. https://gitlab.com/kicad/code/kicad/-/issues/14438
|
||||
kicad-cli pcb export drill $PCB -u mm --generate-map --map-format gerberx2 -o ./$PREFIX"_gerber_drill"/
|
||||
build_PCB = { variant }:
|
||||
let
|
||||
bom = pkgs.stdenv.mkDerivation {
|
||||
name = "bom";
|
||||
src = ./kirdy_LD_adapter_${variant};
|
||||
|
||||
zip -r -j $PREFIX"_gerber_drill" $PREFIX"_gerber_drill"
|
||||
'';
|
||||
nativeBuildInputs = [ pkgs.kicad pkgs.python3 ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/production_files
|
||||
cp $PREFIX"_bom".csv $out/production_files/$PREFIX"_bom".csv
|
||||
cp $PREFIX.pdf $out/production_files/$PREFIX.pdf
|
||||
cp $PREFIX"_pos".csv $out/production_files/$PREFIX"_pos.csv"
|
||||
cp $PREFIX.step $out/production_files/$PREFIX.step
|
||||
cp $PREFIX"_gerber_drill".zip $out/production_files/$PREFIX"_gerber_drill".zip
|
||||
SCH = "kirdy_LD_adapter_${variant}.kicad_sch";
|
||||
PCB = "kirdy_LD_adapter_${variant}.kicad_pcb";
|
||||
|
||||
cp $PREFIX.step $out/production_files/$PREFIX.step
|
||||
'';
|
||||
};
|
||||
buildPhase = ''
|
||||
# kicad-cli requires the use of $HOME
|
||||
export HOME=$(mktemp -d tmp.XXXX)
|
||||
|
||||
copper_plate_production_files = pkgs.stdenv.mkDerivation {
|
||||
name = "production-files";
|
||||
src = ./kirdy_LD_adapter_copper_plate;
|
||||
# Get Revision Number from the Title Block in KiCAD PCB
|
||||
REV=$(cat $SCH | grep rev | cut -d'"' -f 2)
|
||||
PREFIX=kirdy_LD_adapter_${variant}_$REV
|
||||
|
||||
nativeBuildInputs = [ pkgs.kicad pkgs.python3 ];
|
||||
kicad-cli sch export python-bom $SCH -o $PREFIX"_bom".xml
|
||||
export PYTHONPATH=${pkgs.kicad.base}/share/kicad/plugins
|
||||
python ${kicad_bom_generator}/generate_bom_from_xml.py $PREFIX"_bom".xml $PREFIX"_bom".csv
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
# kicad-cli requires the use of $HOME
|
||||
TMP_DIR="$(mktemp --tmpdir -d kicad-kirdy.XXXXXXX)"
|
||||
export HOME=$TMP_DIR
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
cp $PREFIX"_bom".csv $out/$PREFIX"_bom".csv
|
||||
'';
|
||||
};
|
||||
|
||||
PCB=kirdy_LD_adapter_copper_plate.kicad_pcb
|
||||
step = pkgs.stdenv.mkDerivation {
|
||||
name = "step";
|
||||
src = ./kirdy_LD_adapter_${variant};
|
||||
|
||||
# Get Revision Number from the Title Block in KiCAD PCB
|
||||
REV=$(cat $PCB | grep rev | cut -d'"' -f 2)
|
||||
PREFIX=kirdy_LD_adapter_copper_plate_$REV
|
||||
nativeBuildInputs = [ pkgs.kicad pkgs.python3 ];
|
||||
|
||||
export KICAD7_3DMODEL_DIR=${pkgs.kicad.libraries.packages3d}/share/kicad/3dmodels
|
||||
kicad-cli pcb export step $PCB --subst-models --force -o $PREFIX.step
|
||||
'';
|
||||
SCH = "kirdy_LD_adapter_${variant}.kicad_sch";
|
||||
PCB = "kirdy_LD_adapter_${variant}.kicad_pcb";
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/production_files
|
||||
cp $PREFIX.step $out/production_files/$PREFIX.step
|
||||
'';
|
||||
};
|
||||
buildPhase = ''
|
||||
# kicad-cli requires the use of $HOME
|
||||
export HOME=$(mktemp -d tmp.XXXX)
|
||||
|
||||
in {
|
||||
# Get Revision Number from the Title Block in KiCAD PCB
|
||||
REV=$(cat $SCH | grep rev | cut -d'"' -f 2)
|
||||
PREFIX=kirdy_LD_adapter_${variant}_$REV
|
||||
|
||||
export KICAD7_3DMODEL_DIR=${pkgs.kicad.libraries.packages3d}/share/kicad/3dmodels
|
||||
kicad-cli pcb export step $PCB --subst-models --force -o $PREFIX.step
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
cp $PREFIX.step $out/$PREFIX.step
|
||||
'';
|
||||
};
|
||||
|
||||
pos = pkgs.stdenv.mkDerivation {
|
||||
name = "pos";
|
||||
src = ./kirdy_LD_adapter_${variant};
|
||||
|
||||
nativeBuildInputs = [ pkgs.kicad ];
|
||||
|
||||
SCH = "kirdy_LD_adapter_${variant}.kicad_sch";
|
||||
PCB = "kirdy_LD_adapter_${variant}.kicad_pcb";
|
||||
|
||||
buildPhase = ''
|
||||
# kicad-cli requires the use of $HOME
|
||||
export HOME=$(mktemp -d tmp.XXXX)
|
||||
|
||||
# Get Revision Number from the Title Block in KiCAD PCB
|
||||
REV=$(cat $SCH | grep rev | cut -d'"' -f 2)
|
||||
PREFIX=kirdy_LD_adapter_${variant}_$REV
|
||||
|
||||
kicad-cli pcb export pos $PCB --format csv --units mm -o $PREFIX"_pos".csv
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
cp $PREFIX"_pos".csv $out/$PREFIX"_pos.csv"
|
||||
'';
|
||||
};
|
||||
|
||||
gerber_and_drill = pkgs.stdenv.mkDerivation {
|
||||
name = "gerber_and_drill";
|
||||
src = ./kirdy_LD_adapter_${variant};
|
||||
|
||||
nativeBuildInputs = [ pkgs.kicad pkgs.zip ];
|
||||
|
||||
SCH = "kirdy_LD_adapter_${variant}.kicad_sch";
|
||||
PCB = "kirdy_LD_adapter_${variant}.kicad_pcb";
|
||||
|
||||
buildPhase = ''
|
||||
# kicad-cli requires the use of $HOME
|
||||
export HOME=$(mktemp -d tmp.XXXX)
|
||||
|
||||
# Get Revision Number from the Title Block in KiCAD Top Schematics
|
||||
REV=$(cat $SCH | grep rev | cut -d'"' -f 2)
|
||||
PREFIX=kirdy_LD_adapter_${variant}_$REV
|
||||
|
||||
mkdir -p $PREFIX"_gerber"
|
||||
kicad-cli pcb export gerbers $PCB -l 'F.Cu,B.Cu,F.Paste,B.Paste,F.Silkscreen,B.Silkscreen,F.Mask,B.Mask,Edge.Cuts' --no-x2 --subtract-soldermask -o ./$PREFIX"_gerber"
|
||||
|
||||
mkdir -p $PREFIX"_drill"
|
||||
# The additional trailing slash is due to a bug in the kicad-cli tool. https://gitlab.com/kicad/code/kicad/-/issues/14438
|
||||
kicad-cli pcb export drill $PCB -u mm --generate-map --map-format gerberx2 -o ./$PREFIX"_drill"/
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
cp -r $PREFIX"_gerber" $out/
|
||||
cp -r $PREFIX"_drill" $out/
|
||||
'';
|
||||
};
|
||||
|
||||
pdf = pkgs.stdenv.mkDerivation {
|
||||
name = "pdf";
|
||||
src = ./kirdy_LD_adapter_${variant};
|
||||
|
||||
nativeBuildInputs = [ pkgs.kicad ];
|
||||
|
||||
SCH = "kirdy_LD_adapter_${variant}.kicad_sch";
|
||||
|
||||
buildPhase = ''
|
||||
# kicad-cli requires the use of $HOME
|
||||
export HOME=$(mktemp -d tmp.XXXX)
|
||||
|
||||
# Get Revision Number from the Title Block in KiCAD Top Schematics
|
||||
REV=$(cat $SCH | grep rev | cut -d'"' -f 2)
|
||||
PREFIX=kirdy_LD_adapter_${variant}_$REV
|
||||
|
||||
kicad-cli sch export pdf $SCH -o $PREFIX.pdf
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
cp $PREFIX.pdf $out/$PREFIX.pdf
|
||||
'';
|
||||
};
|
||||
|
||||
all_prod_files =
|
||||
pkgs.runCommand "LD_adapter_${variant}_all_prod_files" {
|
||||
buildInputs = [ ];
|
||||
} ''
|
||||
mkdir -p $out
|
||||
ln -s ${pdf}/$(ls ${pdf} | grep "pdf") $out
|
||||
ln -s ${bom}/$(ls ${bom} | grep ".csv") $out
|
||||
ln -s ${pos}/$(ls ${pos} | grep ".csv") $out
|
||||
ln -s ${step}/$(ls ${step} | grep ".step") $out
|
||||
ln -s ${gerber_and_drill}/$(ls ${gerber_and_drill} | grep "gerber") $out
|
||||
ln -s ${gerber_and_drill}/$(ls ${gerber_and_drill} | grep "drill") $out
|
||||
'';
|
||||
|
||||
in {
|
||||
"LD_adapter_${variant}_step" = step;
|
||||
"LD_adapter_${variant}_gerber_and_drill" = gerber_and_drill;
|
||||
"LD_adapter_${variant}_bom" = bom;
|
||||
"LD_adapter_${variant}_pos" = pos;
|
||||
"LD_adapter_${variant}_pdf" = pdf;
|
||||
"LD_adapter_${variant}_all_prod_files" = all_prod_files;
|
||||
};
|
||||
|
||||
in rec {
|
||||
formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixfmt;
|
||||
|
||||
packages.x86_64-linux = {
|
||||
"LD_adapter_type_1_PCB" = adapter_production_files "type_1";
|
||||
"LD_adapter_type_2_PCB" = adapter_production_files "type_2";
|
||||
"LD_adapter_copper_plate" = copper_plate_production_files;
|
||||
};
|
||||
packages.x86_64-linux = (build_PCB { variant = "type_1"; })
|
||||
// (build_PCB { variant = "type_2"; })
|
||||
// (build_copper_plate { });
|
||||
|
||||
devShells.x86_64-linux.default =
|
||||
let pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
||||
|
@ -6,9 +6,8 @@
|
||||
|
||||
(paper "A4")
|
||||
(title_block
|
||||
(rev "v0_1rc2")
|
||||
(rev "v0_1rc1")
|
||||
(comment 1 "v0_1rc1: Changed the location of silkscreen markings of Bias-T Modulation Input")
|
||||
(comment 2 "v0_1rc2: Correct Silkscreen Markings of LD9 and LD11")
|
||||
)
|
||||
|
||||
(layers
|
||||
@ -2762,19 +2761,19 @@
|
||||
(gr_text "Use Bias-T" (at -40.4 -1.39 270) (layer "B.SilkS") (tstamp 27273078-f90b-42d9-aa8d-6b3b1a0d97c4)
|
||||
(effects (font (size 0.8 0.8) (thickness 0.15)) (justify left mirror))
|
||||
)
|
||||
(gr_text "LD-: 11" (at -32.258 4.582) (layer "B.SilkS") (tstamp 4cc0ef08-f92c-4c13-bdf4-4ed9b0d668f1)
|
||||
(gr_text "LD-: 9" (at -32.258 4.582) (layer "B.SilkS") (tstamp 4cc0ef08-f92c-4c13-bdf4-4ed9b0d668f1)
|
||||
(effects (font (size 1 1) (thickness 0.15)) (justify left mirror))
|
||||
)
|
||||
(gr_text "PD+: 3" (at -27.25 11.01) (layer "B.SilkS") (tstamp c5025ffb-4132-40ad-9ba2-5a426d255675)
|
||||
(effects (font (size 1 1) (thickness 0.15)) (justify left mirror))
|
||||
)
|
||||
(gr_text "Kirdy Adapter for Type-1 Laser Diode \nRev: 0_1rc2" (at 41.148 32.014) (layer "B.SilkS") (tstamp d9185641-8167-4841-b540-088303848472)
|
||||
(gr_text "Kirdy Adapter for Type-1 Laser Diode \nRev: 0_1" (at 41.148 32.014) (layer "B.SilkS") (tstamp d9185641-8167-4841-b540-088303848472)
|
||||
(effects (font (size 1 1) (thickness 0.15)) (justify left mirror))
|
||||
)
|
||||
(gr_text "PD-: 7" (at -27.25 9.01) (layer "B.SilkS") (tstamp e9305944-d283-4481-a373-483045d7de6d)
|
||||
(effects (font (size 1 1) (thickness 0.15)) (justify left mirror))
|
||||
)
|
||||
(gr_text "LD-: 9" (at -32.258 1.998) (layer "B.SilkS") (tstamp f8a1f124-6566-4a42-92b0-87395200e1f8)
|
||||
(gr_text "LD-: 11" (at -32.258 1.998) (layer "B.SilkS") (tstamp f8a1f124-6566-4a42-92b0-87395200e1f8)
|
||||
(effects (font (size 1 1) (thickness 0.15)) (justify left mirror))
|
||||
)
|
||||
(gr_text "Type-1 LD" (at 0 29.01) (layer "F.SilkS") (tstamp 6b833559-6474-4221-aa6a-78219e45b6af)
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -528,39 +528,4 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
(symbol "thermal_sheet" (in_bom yes) (on_board no)
|
||||
(property "Reference" "Thermal?" (at 5.08 1.27 0)
|
||||
(effects (font (size 1.27 1.27)))
|
||||
)
|
||||
(property "Value" "245-7321" (at 20.32 -3.81 0)
|
||||
(effects (font (size 1.27 1.27)))
|
||||
)
|
||||
(property "Footprint" "" (at 0 0 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(property "Datasheet" "" (at 0 0 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(property "MFR_PN" "245-7321" (at 0 0 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(property "Comment" "Cut it to roughly 13mm x 23mm" (at 25.4 -6.35 0)
|
||||
(effects (font (size 1.27 1.27)) (justify right))
|
||||
)
|
||||
(property "Sim.Enable" "0" (at 0 0 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(property "ki_description" "RS PRO Self-Adhesive Thermal Interface Sheet, 0.11mm Thick, 1000W/m·K, Graphite, 90 x 115mm" (at 0 0 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(symbol "thermal_sheet_1_1"
|
||||
(rectangle (start 0 0) (end 25.4 -2.54)
|
||||
(stroke (width 0) (type default))
|
||||
(fill (type background))
|
||||
)
|
||||
(text "Thermal Interface Sheet" (at 12.7 -1.27 0)
|
||||
(effects (font (size 1.27 1.27)))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user