PCB & Case Modification
Tools required
Section titled “Tools required”- KiCad 7 — the PCB design is a KiCad 7 project
- A PCB manufacturer account (JLCPCB, PCBWay, etc.)
KiCad project files
Section titled “KiCad project files”All design files are in the PolyKybd hardware repo:
| File | Description |
|---|---|
poly_kybd/poly_kybd_split72_right.kicad_pro |
Right PCB schematic + layout |
poly_kybd/poly_kybd_split72_left.kicad_pro |
Left PCB schematic + layout |
poly_kybd/poly_kybd_split72_plate_right.kicad_pro |
Right aluminum plate |
poly_kybd/poly_kybd_split72_plate_left.kicad_pro |
Left aluminum plate |
The backup/ directory contains older revisions for reference.
Exporting gerbers for manufacture
Section titled “Exporting gerbers for manufacture”After making changes in KiCad:
- Open the PCB editor
- File → Plot — select Gerber format, output to a new folder
- File → Fabrication Outputs → Drill Files — generate drill files into the same folder
- Zip the folder contents and upload to your PCB manufacturer
Exporting BOM and pick-and-place
Section titled “Exporting BOM and pick-and-place”Python scripts in the root of the repo assist with JLCPCB-format exports:
python bom_csv_jlcpcb.py # generate BOMpython kicad_csv_pos_to_jlcpcb_cpl_csv.py # generate CPL (pick and place)3D case modification
Section titled “3D case modification”
All mechanical sources live under parts/, one folder per part group (parts/case/, parts/cirque_insert/, parts/keycap_stem/, …), with every exported mesh in the matching parts/export/<group>/. parts/README.md indexes which file to print for each part. Some sources are OpenSCAD .scad files which can be modified parametrically:
parts/cirque_insert/cirque35_insert.scad— 35mm trackpad insert, for the recommended pad (ready STL:parts/export/cirque_insert/cirque35_insert_r3_4p.stl, a four-up plate)parts/cirque_insert/cirque23_slim_insert.scad— slim Cirque 23mm trackpad insert (ready STL:parts/export/cirque_insert/cirque23_slim_insert_r8.stl)parts/cirque_insert/cirque23_insert.scad— high Cirque 23mm trackpad insert (ready STL:parts/export/cirque_insert/cirque23_insert_high_r1.stl)
Render to STL with OpenSCAD: Design → Render, then File → Export → Export as STL.
Three part groups have a build script instead, because they are parameterised or generated and exporting them by hand is how an export falls a revision behind its source:
parts/keycap_stem/build_stems.sh # every stem plate in keycap_stem/variants/parts/diffuser/build_frame.sh # regenerate the LED diffuser frame from the PCB, then verifyparts/build_parts.sh # the simple parts whose .scad top level IS the plateEach re-exports idempotently: OpenSCAD emits facets in an unstable order and different builds of
it disagree in the last float digits, so the scripts compare against the committed mesh and put
the committed bytes back when only that noise moved. A clean re-run prints unchanged and leaves
the tree alone — so a real geometry change is visible in git status rather than buried in a
whole-file rewrite.