Skip to content

PCB & Case Modification

  • KiCad 7 — the PCB design is a KiCad 7 project
  • A PCB manufacturer account (JLCPCB, PCBWay, etc.)

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.

After making changes in KiCad:

  1. Open the PCB editor
  2. File → Plot — select Gerber format, output to a new folder
  3. File → Fabrication Outputs → Drill Files — generate drill files into the same folder
  4. Zip the folder contents and upload to your PCB manufacturer

Python scripts in the root of the repo assist with JLCPCB-format exports:

Terminal window
python bom_csv_jlcpcb.py # generate BOM
python kicad_csv_pos_to_jlcpcb_cpl_csv.py # generate CPL (pick and place)

Render of the r7 right case from the exported STL: the PCB standoffs, the ribs across the floor and the USB openings

All mechanical sources are in 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. Use it rather than exporting by hand:

Terminal window
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 verify
parts/build_parts.sh # the simple parts whose .scad top level IS the plate

Each script keeps the committed mesh when only facet order or floating-point rounding changed. A re-run with no geometry change prints unchanged, so a real geometry change shows up in git status.