Four Boards, Two Domains
Every board belongs to one of two electrical domains. Clean boards handle sensitive signals. Dirty boards handle high-current power and motors. They never share power regulation.
Interactive 3D Model
Fully routed board — FreeRouting with 362 traces. Drag to orbit, scroll to zoom, right-drag to pan.
Three.js · OrbitControls · copper traces extruded as 3D geometry
How It All Connects
Every board draws raw battery voltage and regulates locally. The only signal crossing the domain boundary goes through an electrical isolator.
harness
Harness Map
All connections between boards use JST-XH wire harnesses. No board-to-board stacking — boards are distributed around the chassis.
| Connection | Signals | Notes |
|---|---|---|
| Power → Main | 12V raw I²C ISO GND★ | 12V for local buck. I²C from BQ25798 passes through ISO1540 isolator — battery % and charge state to STM32. |
| Power → Sensor | 12V raw GND★ | 12V for local buck. Sensor board regulates its own 3.3V. |
| Power → Motor Driver | 12V raw GND★ | 12V direct to motor drivers. Motors run at battery voltage. |
| Power → Main (USB data) | D+ D− | USB-C data lines only. Low current. Enables STM32 debug over USB-C port. |
| Main → Sensor | SPI I²C GPIO 3.3V | SPI to LiDAR. I²C shared bus to IMU + cliff ToF ×4. GPIO interrupts from cliff IR ×4. Both boards are clean domain — no isolator needed. |
| Main → Motor Driver | PWM ×5 Fault GPIO | 5× PWM channels: 4 drive wheel motors + 1 brushroll. Fault lines allow STM32 to detect driver failures per motor independently. |
The Invariants
These rules must hold across every board design. Violating any one of them introduces noise, thermal, or respin risk.
4 boards — never merge without re-evaluating noise isolation
Each board is sized to respin independently. Merging two boards couples their failure modes and doubles respin cost when one section needs a fix.
Every board has its own buck converter from raw battery
No board takes regulated power from another board. Motor switching noise stays in the dirty domain and cannot reach the RPi5, STM32, or sensors.
Single star ground at the battery connector
All board grounds meet at one point only. Motor return currents cannot flow through clean domain ground planes and shift voltage references.
ISO1540 isolator on every signal crossing dirty → clean
The only dirty→clean signal is I²C from BQ25798. It passes through an ISO1540 electrical isolator. No exceptions.
Charging current stays on the Power board — never crosses the harness
USB-C → BQ25798 → battery is fully contained on the Power board. Only the low-current USB data lines (D+/D−) cross to the Main board.
Clean boards are 4-layer — dirty boards are 2-layer
4-layer adds a solid ground plane that absorbs motor switching EMI before it reaches sensor traces. Dirty boards carry DC only — 2-layer is sufficient and saves ~$15 per board.
Key Parts
Every major IC and their role in the system.
Deferred to CAD
These decisions are intentionally left open until the physical chassis design provides the answers.