What problem does it solve?
Provide a deterministic, programmatic interface to create and update the project's KiCad PCB so the generated board remains canonical and never edited by hand, preventing divergence between PCB and enclosure designs and reducing manual layout errors.
Core Features & Use Cases
- Edit board outline and corner radius by adjusting BOARD_W, BOARD_H and CORNER_R in scripts/generate_pcb/board.py.
- Configure the 4-layer stack, design rules and copper zones via primitives.py and routing.py to produce consistent F.Cu, In1.Cu, In2.Cu and B.Cu layers.
- Move mounting holes, FPC slot cutout and silkscreen labels programmatically and regenerate hardware/kicad/esp32-emu-turbo.kicad_pcb for DRC and DFM checks.
Quick Start
From the project root, regenerate the KiCad PCB by running python3 -m scripts.generate_pcb hardware/kicad to produce the updated hardware/kicad output.