
Lipo rp2040-display
tscircuit/rp2040-lipo-charger
Rechargeable RP2040 controller with USB-C, 1S LiPo charging, battery monitoring, and an OLED interface

One-handed MIDI controller: parametric enclosure (build123d) + 4-layer RP2040 USB-MIDI PCB (tscircuit/KiCad)
Stage0-raw autorun is an open-source printed circuit board by audiodestrukt, from the audiodestrukt/einhander repository on GitHub. It is a 4-layer board of 91 × 68 mm with 42 parts on 31 nets, routed with 516 tracks and 35 vias.
It is built around the RP2040, W25Q16JVSSIQ and AP2112K-3.3TRG1(MS), with the TYPE-C-31-M-12A, WS2812B-B-T-V6 and X322512MSB4SI among its other parts. Its parts include 14 capacitors, 8 switches, 3 ICs, 1 diode and 1 connector. It belongs with the RP2040 boards of this library.
A one-handed hardware controller for music performance and sequencing — MC-303-inspired, simplicity-first. Two rows of four key switches under the fingers, a thumbwheel + SHIFT on the side for the thumb, so the other hand stays free for sliders/faders.
This repo holds the code-driven design: a parametric enclosure (build123d) and a fabbable PCB (tscircuit → KiCad).

cad/ parametric enclosure — build123d (machine_params.py = single source of truth),
top/bottom shells + component stand-ins, assembly + dated render log
pcb/ RP2040 USB-MIDI controller board
index.circuit.tsx composes the board (flat, global nets)
modules/ mcu (RP2040+flash+xtal+decoupling), power (USB-C+LDO)
lib/, imports/ shared params, custom Cherry-MX footprint, JLC parts
scripts/ route4.sh + the 4-layer routing toolchain
index.circuit.kicad_pcb routed 4-layer board
fab/ Gerbers + drill + CPL (einhander-gerbers.zip → upload to JLCPCB)
pcb-rerun/ the same board re-routed unattended (2026-10-01) — 0 shorts, 2 open nets;
found the DSN mirror bug behind pcb/'s hand patches (see pcb-rerun/README.md)

Interactive 3D model of the populated board: pcb/renders/einhander-pcba.glb (open in any glTF viewer — Blender, VS Code glTF, or https://gltf-viewer.donmccurdy.com).
Upload pcb/fab/einhander-gerbers.zip to JLCPCB (select 4 layers). For
assembly, add pcb/fab/einhander-bom.csv (27 SMD parts, LCSC-mapped) + pcb/fab/einhander-cpl.csv
(placement). MX switches, the EC11 thumbwheel, headers, and BOOT/RESET tactiles are hand-soldered
(listed separately in einhander-handsolder.csv, kept out of the assembly BOM).
PCBWay uses the same einhander-gerbers.zip + einhander-cpl.csv, with einhander-bom-pcbway.csv
(sources by manufacturer part number instead of LCSC). make_fab.sh emits both BOM formats. Regenerate the whole bundle with bash pcb/scripts/make_fab.sh pcb/index.circuit.kicad_pcb einhander.
# enclosure
cd cad && python3 machine.py # STLs + renders
# PCB (needs bun/tscircuit, KiCad 9, Freerouting v2.2.4 + JDK 25)
cd pcb && npm install
bash scripts/route4.sh # export → route (4-layer) → inject → DRCEnclosure prototype ✅ · Routed 4-layer PCB ✅ (fab-ready) · thumb-cluster daughterboard, RP2040 firmware (TinyUSB MIDI), and an enclosure↔board fit re-sync are next.
Designed with Claude Code.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 10 | 100nF | tscircuit:capacitor_0402 | C1, C2, C3, C4, C5, C6, C7, C10, C14, C15 |
| 8 | tscircuit:chip | SW1, SW2, SW3, SW4, SW5, SW6, SW7, SW8 | |
| 4 | tscircuit:hole_circle_holeDiameter2.4mm | , , , | |
| 2 | 15pF | tscircuit:capacitor_0402 | C12, C13 |
| 2 | 1uF | tscircuit:capacitor_0805 | C_IN, C_OUT |
| 2 | 5.1kΩ | tscircuit:resistor_res0402 | R_CC1, R_CC2 |
| 1 | 100nF | tscircuit:capacitor_0805 | C_LED |
| 1 | 10kΩ | tscircuit:resistor_res0402 | R_RUN |
| 1 | 10uF | tscircuit:capacitor_0805 | C11 |
| 1 | 1kΩ | tscircuit:resistor_res0402 | R_BOOT |
| 1 | 1uF | tscircuit:capacitor_0402 | C9 |
| 1 | AP2112K_3_3TRG1 | tscircuit:AP2112K_3_3TRG1 | U3 |
| 1 | J_THUMB | tscircuit:pin_header_pinrow5 | J_THUMB |
| 1 | RP2040 | tscircuit:RP2040 | U1 |
| 1 | SW_BOOT | tscircuit:push_button_pushbutton | SW_BOOT |
| 1 | SW_RST | tscircuit:push_button_pushbutton | SW_RST |
| 1 | TYPE_C_31_M_12 | tscircuit:TYPE_C_31_M_12 | J1 |
| 1 | W25Q16JVSSIQ | tscircuit:W25Q16JVSSIQ | U2 |
| 1 | WS2812B_B_T | tscircuit:WS2812B_B_T | D1 |
| 1 | X322512MSB4SI | tscircuit:X322512MSB4SI | Y1 |
It measures 91 × 68 mm and has 4 copper layers, 1.6 mm thick.
42 parts, built around the RP2040, W25Q16JVSSIQ, AP2112K-3.3TRG1(MS) and TYPE-C-31-M-12A. 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 audiodestrukt/einhander repository on GitHub, at the commit this page was made from: the board is pcb-rerun/results/stage0-raw-autorun.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask audiodestrukt before reusing the design.

tscircuit/rp2040-lipo-charger
Rechargeable RP2040 controller with USB-C, 1S LiPo charging, battery monitoring, and an OLED interface


elral/PCB_RP2040_Template
This KiCad template contains a base RP2040 schematic and PCB layout. To use this template go to File > New Project From Template..., switch to the User Templates tab, then click the folder icon and navigate to this…


elral/PCB_RP2040Micro
This Repo is deprecated. No further develpment will take place.


SIGPLAN-AV/apple-peeler
HDMI MITM device aimed at supplying crafted EDID to make Apple sources behave

Taran-the-Idiot/Horizons-Badges
E-ink badges for Horizons Crux! Made in Kicad. They use 2.66" E-ink screens with an RP2040 mcu. And they are made in the shape of a mantaray :D