diff --git a/docs/hardware-plan.md b/docs/hardware-plan.md index 8af18ad..3fbd3da 100644 --- a/docs/hardware-plan.md +++ b/docs/hardware-plan.md @@ -1,8 +1,10 @@ # Hardware Plan — flexible MIDI router (v1) -Status: draft 2026-08-21. Custom all-in-one PCB, desktop, USB-powered, **bipolar -±10 V CV** via onboard ±12 V rails, 3.5 mm TRS MIDI, 4× stereo CV, 64×32 OLED + -tact buttons (no encoder, low profile). +Status: draft 2026-08-21. Custom all-in-one PCB, **L-shaped with a LiPo +battery notch** (~70×58 mm bounding box, 2000 mAh target), desktop, USB or +battery powered, **bipolar ±10 V CV** via onboard ±12 V rails, 3.5 mm TRS MIDI +(1 in + 3 mirror out), 4× stereo CV, 64×32 OLED + tact buttons (no encoder, +low profile). **MCU target:** develop/test on **RP2040** (Pico W dev board — the firmware already runs on it), product on **RP2350**. The RM2 radio module is compatible @@ -218,15 +220,18 @@ Host PCB responsibilities (from the RM2 datasheet): ## 10. Build order (hardware) 1. Schematic (this doc is the spec). -2. RM2 module footprint + antenna keepout. -3. RP2040 + flash + USB + SWD. -4. Power (BQ24075 power-path + LiPo, 3.3 V buck-boost, +12 V boost, +2. Board outline: L-shape, ~70×58 mm bounding box, bottom-left battery + notch (50×35 mm for 2000 mAh cell). RM2 antenna keepout at bottom-right + corner; USB-C left, CV top, MIDI right (§12). +3. RM2 module footprint + antenna keepout. +4. RP2040 + flash + USB + SWD. +5. Power (BQ24075 power-path + LiPo, 3.3 V buck-boost, +12 V boost, −12 V inverter, 4.096 V + 2.048 V refs, MAX17048 fuel gauge). -5. CV analog (DAC + difference-amp + offset + trim + bidir protection + TRS). -6. MIDI TRS circuit. -7. OLED + buttons. -8. Keypad header (the Pimoroni keypad connects via a header or is integrated). -9. PCB layout, DRC, review, fab. +6. CV analog (DAC + difference-amp + offset + trim + bidir protection + TRS). +7. MIDI TRS circuit. +8. OLED + buttons. +9. Keypad header (the Pimoroni keypad connects via a header or is integrated). +10. PCB layout, DRC, review, fab. ## 11. Connection table (netlist source of truth) @@ -377,3 +382,62 @@ Keypad header J11 (Pimoroni RGB Keypad): U1.GPIO16, GPIO22, GPIO26, GPIO27, GPIO28 ── unassigned (status LEDs / analog in / future) ``` +## 12. Board outline (L-shape, battery notch) + +The LiPo cell is the single largest item, so the PCB is **L-shaped** — the +55-ish mm connector square with the **bottom-left quadrant notched out** for +the battery. The two *long* outer edges of the L carry the two jack rows +(each needs ~52 mm for 4 jacks); USB-C sits on the short left edge, right +beside the battery — which is where BQ24075, MAX17048 and the cell pigtail +want to be anyway. + +``` +═══════════════════════════════════════════ +║ CV CV CV CV ║ top arm → CV analog +║ J7 J8 J9 J10 DAC·refs·opa·±12V ║ (DAC8568, REF3040/2040, +║ ║ 2× OPA4192, boost+inverter, LC) +║ USB-C ║ +╚═══╗ ║ + ║ ║ + B ║ MIDI MIDI MIDI MIDI ║ right arm → digital + MIDI + A ║ J6 J5 J4 J3 ║ (6N138, UART, RP2040, flash, + T ║ MCU · flash · RM2 ▼ keepout ║ RM2, SWD, keypad, OLED, btns) + ║ SWD · keypad · OLED · SW1-4 ║ + ╚═══════════════════════════════════════╝ + ↑ battery notch (bottom-left, off-board cell) +``` + +**Sizing (battery drives the notch):** + +| Cell | Pouch size | Notch | Bounding box | +|-------------|-------------|------------|--------------| +| 1500 mAh | ~36 × 30 mm | 36 × 30 mm | ~56 × 55 mm | +| 2000 mAh (target) | ~50 × 35 mm | 50 × 35 mm | **~70 × 58 mm** | + +Both long arms clear the 52 mm the jacks need (top arm = full width, right +arm = full height). USB-C (~9 mm) fits the short left edge either way. +Target the **2000 mAh / ~70 × 58 mm** outline; a 1500 mAh cell just shrinks +the notch. + +**Edge assignment:** +- **Top edge:** 4× CV jacks (J7–J10), full width. +- **Right edge:** 4× MIDI jacks (J3 in + J4/J5/J6 mirror out), full height. +- **Left edge (short, top-arm left end):** USB-C (J1). +- **Bottom edge (short, right-arm bottom end):** SWD header (J2), keypad + header (J11), battery pigtail — accessible, non-user-facing. + +**Region assignment (the split is functional, not just compact):** +- **Top arm = all analog/CV + the two switching converters.** Keeps the ±12 V + boost/inverter noise up near the CV op-amps and far from the radio/MCU. + Inductors + LC against the top edge; DAC8568, REF3040, REF2040, 2× OPA4192 + follow. +- **Right arm = digital + MIDI + radio.** RP2040 + flash + RM2 + 6N138 + UART. + **RM2 at the bottom-right outer corner** of the right arm — the point + farthest from the battery, jacks, and switching converters — with its + antenna keepout extending off the corner (best RF spot on an L-board). +- **Battery + charger (bottom-left notch area):** short USB-C → BQ24075 → + cell traces, MAX17048 fuel gauge beside them. +- **Inner L corner (top-right inside):** quietest spot on the board — put the + DAC→op-amp routing and the reference/analog star-ground here, sandwiched + between the analog and digital arms but off both edges. +