
Sensors
StuckAtPrototype/Racer
These are structured into their own files. I could have used submodules, but decided against it.

Pan-tilt mechanism to drive a webcam using 20KG Servos.
Piper watch is an open-source printed circuit board by stvenmobile, from the stvenmobile/piper-watch repository on GitHub. It is a 4-layer board of 70 × 50 mm with 14 parts on 15 nets, routed with 49 tracks and 0 vias.
Its parts include 5 connectors, 2 resistors, 1 capacitor and 1 IC. It belongs with the wearables boards of this library.
Open piper-watch.kicad_pro in KiCad 10 (or 9). Schematic only - everything is hand-wired, so
there's no PCB. piper-watch.pdf is a plot of all the sheets.
| Sheet | What's on it |
|---|---|
| Power | 19 V panel jack, split block (common ground), panel fuse, head switch, Jetson feed, 5 V buck |
| Level 2 drive | the perfboard (TMC2209, C1/C2, R1/R2, J1 J3 J4 J5 J6), the JC4827W543R display's ESP32-S3 (its P3/P4 connectors), A3144 Hall, NEMA17 |
| Head | XIAO ESP32-S3, two GC9A01 eyes, SH1122 mouth OLED |
+19V, +19V_FUSED, +19V_SW, +5V, GND) are global labels;
the rest are local to their sheet.piper-watch.kicad_sym; everything else is from KiCad's standard libraries.tools/gen_schematics.py generated the first draft from ../wiring.md. Once the schematics
have been edited in KiCad, the KiCad files are the source of truth - don't re-run the generator
over hand edits.Checks: kicad-cli sch erc piper-watch.kicad_sch (0 violations on the draft), and
kicad-cli sch export pdf piper-watch.kicad_sch to refresh the PDF.
perfboard_wiring.png is the 70 x 50 perfboard as built: top view, back of the case at the top,
parts on the 2.54 mm hole grid, every pad labelled. Wires are soldered on the underside but drawn
as seen from the top: copper = bare solid wire (thick = 19 V, GND, motor), red = insulated wire
where a run has to cross another.
It's drawn from piper-watch.kicad_pcb, which KiCad checks against the schematic (DRC: no
unconnected items, no schematic mismatches). Rebuild:
"C:\Program Files\KiCad\10.0\bin\python.exe" tools/gen_perfboard.py # placement + wire routing
py -3 tools/plot_perfboard.py # the picture (needs matplotlib)Placement is the PLACE table in gen_perfboard.py; the wires are laid by a small grid router.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 4 | MountingHole_2.7mm_M2.5 | MountingHole_2.7mm_M2.5 | H1, H2, H3, H4 |
| 1 | 100uF 35V (at U1 VS) | Capacitor_THT:CP_Radial_D8.0mm_P5.00mm | C1 |
| 1 | 10k (EN pull-up) | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R2 |
| 1 | 10k (Hall pull-up) | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R1 |
| 1 | 19V in: + - left to right | TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_Horizontal | J1 |
| 1 | BTT TMC2209 | Module:Pololu_Breakout-16_15.2x20.3mm | U1 |
| 1 | board ground point | TestPoint_THTPad_D2.0mm_Drill1.0mm | GP1 |
| 1 | motor: A2 A1 B1 B2 (left to right on the board) | TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-4-5.08_1x04_P5.08mm_Horizontal | J3 |
| 1 | to Hall: 5V GND OUT | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J5 |
| 1 | to buck: 19V, GND, 5V | TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-3-5.08_1x03_P5.08mm_Horizontal | J6 |
| 1 | to display P3/P4: STEP DIR EN HALL 3V3 GND | Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Vertical | J4 |
It measures 70 × 50 mm and has 4 copper layers, 1.6 mm thick.
14 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the stvenmobile/piper-watch repository on GitHub, at the commit this page was made from: the board is hardware/kicad/piper-watch.kicad_pcb and its schematic hardware/kicad/head.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask stvenmobile before reusing the design.

StuckAtPrototype/Racer
These are structured into their own files. I could have used submodules, but decided against it.

hackclub/OnBoard
💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

MicroCoreLabs/Projects
Ted Fried's MicroCore Labs Projects - FPGA CPU cores and emulators for the 8088, 8086, 8051, 6502, 68000, Z80, Risc-V, and also Typewriter and EPROM Emulator projects.


nanographs/Open-Beam-Interface
Just what you need to control the beam and get an image.

CRImier/MyKiCad
My KiCad boards. Can't be bothered uploading individually anymore, so here you go.


BelaPlatform/Trill
Trill sensors are designed to bring beautiful touch interaction to digital projects. Trill sensors are available now on the Bela Shop and via Mouser Electronics.