Prechádzať zdrojové kódy

Generate PCB assembly files

Generate assembly files for JLCPCB - BOM and CPL. Using existing LCSC part numbers (which may not be in the JLC part library), and positions/rotations are completely unverified, and of course many of the components are simply not available in any form in the JLC part library (e.g. TMC6300). Fixes #23.

Also changed LCD backlight resistor from 22 ohm to 20 ohm and added some additional part numbers for reference.
Scott Bezek 4 rokov pred
rodič
commit
836227d4f6

+ 1 - 1
.github/workflows/electronics.yml

@@ -21,7 +21,7 @@ jobs:
 
       - name: Export JLCPCB fabrication files [view_base]
         run: |
-          ./electronics/scripts/export_jlcpcb.py --release-prefix releases/view_base/ electronics/view_base/view_base.kicad_pcb
+          ./electronics/scripts/export_jlcpcb.py --release-prefix releases/view_base/ --assembly-schematic electronics/view_base/view_base.sch electronics/view_base/view_base.kicad_pcb
           cp -r electronics/build/view_base-jlc electronics/build/outputs
 
       - name: Export PCB overview PDF [view_base]

+ 4 - 0
README.md

@@ -88,6 +88,10 @@ Latest auto-generated (untested and likely broken!) artifacts⚠️:
 
 [Gerbers](https://smartknob-artifacts.s3.us-west-1.amazonaws.com/master/electronics/view_base-jlc/gerbers.zip)
 
+[BOM (for JLCPCB assembly](https://smartknob-artifacts.s3.us-west-1.amazonaws.com/master/electronics/view_base-jlc/bom.csv) (warning: completely untested!)
+
+[CPL (for JLCPCB assembly)](https://smartknob-artifacts.s3.us-west-1.amazonaws.com/master/electronics/view_base-jlc/pos.csv)  (warning: completely untested!)
+
 ⚠️ For tested/stable/recommended artifacts, use a [release](https://github.com/scottbez1/smartknob/releases) instead.
 
 #### Screen PCB

+ 1 - 1
electronics/scripts/export_jlcpcb.py

@@ -65,7 +65,7 @@ if __name__ == '__main__':
     parser = argparse.ArgumentParser()
     parser.add_argument('pcb')
     parser.add_argument('--assembly-schematic')
-    parser.add_argument('--alt-fields', nargs='+')
+    parser.add_argument('--alt-fields', nargs='+', default=[])
     parser.add_argument('--release-prefix', type=str, required=True, help='Tag prefix to check if this is a tagged/versioned release. E.g. "releases/" for tags like "releases/v1.0"')
     args = parser.parse_args()
     export_jlcpcb(args.pcb, args.assembly_schematic, args.alt_fields, args.release_prefix)

+ 5 - 3
electronics/view_screen/view_screen.sch

@@ -158,6 +158,7 @@ F 2 "Resistor_SMD:R_0603_1608Metric" H 3750 3550 50  0001 C CNN
 F 3 "~" H 3750 3550 50  0001 C CNN
 F 4 "RMCF0603JT1M00CT-ND" H 3750 3550 50  0001 C CNN "Digikey"
 F 5 "652-CR0603FX-1004ELF" H 3750 3550 50  0001 C CNN "Mouser"
+F 6 "C105578" H 3750 3550 50  0001 C CNN "LCSC"
 	1    3750 3550
 	1    0    0    -1  
 $EndComp
@@ -236,11 +237,12 @@ L Device:R_Small R2
 U 1 1 6209F498
 P 5000 3250
 F 0 "R2" H 5059 3296 50  0000 L CNN
-F 1 "22R" H 5059 3205 50  0000 L CNN
+F 1 "20R" H 5059 3205 50  0000 L CNN
 F 2 "Resistor_SMD:R_0603_1608Metric" H 5000 3250 50  0001 C CNN
 F 3 "~" H 5000 3250 50  0001 C CNN
-F 4 "RMCF0603JT22R0CT-ND" H 5000 3250 50  0001 C CNN "Digikey"
-F 5 "652-CR0603FX-22R0ELF" H 5000 3250 50  0001 C CNN "Mouser"
+F 4 "RMCF0603JT20R0CT-ND" H 5000 3250 50  0001 C CNN "Digikey"
+F 5 "652-CR0603FX-20R0ELF" H 5000 3250 50  0001 C CNN "Mouser"
+F 6 "C125758" H 5000 3250 50  0001 C CNN "LCSC"
 	1    5000 3250
 	1    0    0    -1  
 $EndComp