- Fixed KiCad 8 PCB file format (text rotation syntax)
- PCB now loads correctly with board outline and labels
- Added Python placement script for KiCad scripting console
- Updated PCB_LAYOUT.md with quick start instructions
Next step: Open in KiCad, run Update PCB from Schematic,
then use Freerouting or manual routing to complete traces.
- All 22 components placed at specified coordinates
- Net assignments for power, I2C, trigger, and return signals
- Power section (D1, U1, C1-C3) on back layer
- Ground zones on both copper layers
- Silkscreen labels for jacks and branding
- Gerber output configured to manufacturing/gerbers/
TeamCity CI (.teamcity/settings.kts):
- Clones/updates Pico SDK automatically
- Builds firmware with cmake + make
- Publishes .uf2 and .elf as artifacts
- VCS trigger on all branches
Manufacturing files (hardware/manufacturing/):
- BOM_PCBWay.csv: LCSC part numbers for assembly
- CPL_PCBWay.csv: Component placement coordinates
- README with order checklist and specifications
Build script (firmware/build.sh):
- Standalone build script for local development
- Auto-detects Pico SDK location
Complete working firmware including:
- CMakeLists.txt for Pico SDK build
- SSD1306 OLED driver (128x32, I2C)
- High-resolution latency measurement using hardware timer
- Debounced button with short/long press detection
- Three modes: Single, Continuous, Stats
- USB serial debugging output
Includes 8x8 font with numbers and letters for display.
Schematic includes:
- Power section: SS14 reverse protection, AMS1117-3.3 LDO
- RP2040-Zero and OLED module headers
- Trigger output: 74LVC1G17 Schmitt buffer
- Return input: voltage divider, BAT54 clamps, MCP6001 buffer
- Button with pull-up, power LED
BOM updated with correct parts and LCSC numbers.
ASCII schematic reference in hardware/kicad/README.md.