Power boards

robot-power-dist — Robot power distribution board

Companion power board named (Phase B — robot power). A main-line board, not a PMOD module: it fans a battery rail out to four fused, current-monitored channels behind one soft-switch / e-stop master gate.

ERC clean No layout No fab package 49 components

Circuit review & bench-test guide →

Components#

Every placed component, with the reason it is on the board. Extracted directly from the schematic, so this cannot drift from the design.

RefValueWhat it does on this boardPart numberFootprint
C1 100nF 16V X7R U1 VS decoupling GRM188R71C104KA01D
Murata
C_0603_1608Metric
C2 100nF 16V X7R U2 VS decoupling GRM188R71C104KA01D
Murata
C_0603_1608Metric
C3 100nF 16V X7R U3 VS decoupling GRM188R71C104KA01D
Murata
C_0603_1608Metric
C4 100nF 16V X7R U4 VS decoupling GRM188R71C104KA01D
Murata
C_0603_1608Metric
C5 1uF 10V X7R Telemetry-rail bulk decoupling at the Qwiic entry GRM188R71A105KA61D
Murata
C_0603_1608Metric
D1 BZT52C10 Gate-source zener clamp: Vsg <= 10 V (divider alone gives 0.909*VBAT = 11.5 V at 12.6 V) not selected
Diodes Inc.
Datasheet ↗
D_SOD-123
D2 CH GREEN Channel 1 output-live indicator APT1608SGC
Kingbright
Datasheet ↗
LED_0603_1608Metric
D3 CH GREEN Channel 2 output-live indicator APT1608SGC
Kingbright
Datasheet ↗
LED_0603_1608Metric
D4 CH GREEN Channel 3 output-live indicator APT1608SGC
Kingbright
Datasheet ↗
LED_0603_1608Metric
D5 CH GREEN Channel 4 output-live indicator APT1608SGC
Kingbright
Datasheet ↗
LED_0603_1608Metric
F1 2A Channel 1 fuse, 1206 SMD, rating is load-specific (2 A default) not selected
Littelfuse
Fuse_1206_3216Metric
F2 2A Channel 2 fuse, 1206 SMD, rating is load-specific (2 A default) not selected
Littelfuse
Fuse_1206_3216Metric
F3 2A Channel 3 fuse, 1206 SMD, rating is load-specific (2 A default) not selected
Littelfuse
Fuse_1206_3216Metric
F4 2A Channel 4 fuse, 1206 SMD, rating is load-specific (2 A default) not selected
Littelfuse
Fuse_1206_3216Metric
J1 VBAT IN 6.4-12.6V Battery rail input from battery-power-input/ (fused + reverse-protected there): 1 VBAT, 2 GND not selected
Phoenix Contact
TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_Horizontal
J2 E-STOP LOOP (NC) Normally-closed e-stop loop: wire an NC mushroom button (or chain) across 1-2; fit a wire link (jumper) when unused - the board ships OFF until the loop is closed not selected
Phoenix Contact
TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_Horizontal
J3 CH1 OUT Channel 1 fused, monitored output: 1 VOUT1, 2 GND not selected
Phoenix Contact
TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_Horizontal
J4 CH2 OUT Channel 2 fused, monitored output: 1 VOUT2, 2 GND not selected
Phoenix Contact
TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_Horizontal
J5 CH3 OUT Channel 3 fused, monitored output: 1 VOUT3, 2 GND not selected
Phoenix Contact
TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_Horizontal
J6 CH4 OUT Channel 4 fused, monitored output: 1 VOUT4, 2 GND not selected
Phoenix Contact
TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_Horizontal
J7 QWIIC Qwiic / STEMMA QT telemetry: standard order 1 GND, 2 3V3, 3 SDA, 4 SCL SM04B-SRSS-TB(LF)(SN)
JST
Datasheet ↗
JST_SH_SM04B-SRSS-TB_1x04-1MP_P1.00mm_Horizontal
J8 I2C HEADER Telemetry header (duplicate of J7): 1 3V3, 2 GND, 3 SDA, 4 SCL not selected
generic
PinHeader_1x04_P2.54mm_Vertical
J9 CONTROL Host control/status: 1 EN (in, 10k pull-down), 2 GATE_STATUS (out, divider), 3 PWR_ALERT_N (open-drain, 10k pull-up), 4 GND not selected
generic
PinHeader_1x04_P2.54mm_Vertical
JP1 SDA PULL-UP Cut to remove the SDA pull-up when the host chain provides one SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mm
JP2 SCL PULL-UP Cut to remove the SCL pull-up when the host chain provides one SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mm
Q1 DMP4015SSS-13 P-channel MOSFET -40 V -9.1 A, SO-8, high-side master gate (parallel pair) DMP4015SSS-13
Diodes Incorporated
Datasheet ↗
SO-8_3.9x4.9mm_P1.27mm
Q2 DMP4015SSS-13 P-channel MOSFET -40 V -9.1 A, SO-8, high-side master gate (parallel pair) DMP4015SSS-13
Diodes Incorporated
Datasheet ↗
SO-8_3.9x4.9mm_P1.27mm
Q3 2N7002 N-channel MOSFET 60 V 115 mA, SOT-23, EN gate switch 2N7002LT1G
onsemi
Datasheet ↗
SOT-23
R1 100k Gate-source pull-up: master gate OFF unless the pull-down chain conducts RC0603FR-07100KL
Yageo
Datasheet ↗
R_0603_1608Metric
R2 10k Gate series/divider resistor: with R1 sets Vsg = 0.909*VBAT before the clamp RC0603FR-0710KL
Yageo
Datasheet ↗
R_0603_1608Metric
R3 10k EN pull-down: unpowered/unconfigured host = OUTPUT OFF RC0603FR-0710KL
Yageo
Datasheet ↗
R_0603_1608Metric
R4 20m 1% 1W Channel 1 current shunt, 2512: 4.096 A full scale at 81.92 mV not selected
Vishay
Datasheet ↗
R_2512_6332Metric
R5 20m 1% 1W Channel 2 current shunt, 2512: 4.096 A full scale at 81.92 mV not selected
Vishay
Datasheet ↗
R_2512_6332Metric
R6 20m 1% 1W Channel 3 current shunt, 2512: 4.096 A full scale at 81.92 mV not selected
Vishay
Datasheet ↗
R_2512_6332Metric
R7 20m 1% 1W Channel 4 current shunt, 2512: 4.096 A full scale at 81.92 mV not selected
Vishay
Datasheet ↗
R_2512_6332Metric
R8 4.7k Channel 1 live-output LED resistor (~2.2 mA at 12.6 V) RC0603FR-074K7L
Yageo
Datasheet ↗
R_0603_1608Metric
R9 4.7k Channel 2 live-output LED resistor (~2.2 mA at 12.6 V) RC0603FR-074K7L
Yageo
Datasheet ↗
R_0603_1608Metric
R10 4.7k Channel 3 live-output LED resistor (~2.2 mA at 12.6 V) RC0603FR-074K7L
Yageo
Datasheet ↗
R_0603_1608Metric
R11 4.7k Channel 4 live-output LED resistor (~2.2 mA at 12.6 V) RC0603FR-074K7L
Yageo
Datasheet ↗
R_0603_1608Metric
R12 4.7k Shared I2C SDA pull-up (behind JP1) RC0603FR-074K7L
Yageo
Datasheet ↗
R_0603_1608Metric
R13 4.7k Shared I2C SCL pull-up (behind JP2) RC0603FR-074K7L
Yageo
Datasheet ↗
R_0603_1608Metric
R14 10k Single pull-up for the wire-OR'd open-drain INA226 ALERT line RC0603FR-0710KL
Yageo
Datasheet ↗
R_0603_1608Metric
R15 39k GATE_STATUS divider top, sized for 12.6 V (12.6*10/49 = 2.57 V at the tap); fit 18k for 2S-only systems, 100k for 24 V per axa-012 RC0603FR-0739KL
Yageo
Datasheet ↗
R_0603_1608Metric
R16 10k GATE_STATUS divider bottom: tap = VDIST*10/49, always < 3.3 V below 16 V rails RC0603FR-0710KL
Yageo
Datasheet ↗
R_0603_1608Metric
R17 100R Series protection on the board-driven GATE_STATUS line RC0603FR-07100RL
Yageo
Datasheet ↗
R_0603_1608Metric
U1 INA226 Channel 1 high-side monitor, I2C address 0x40 (A1=GND, A0=GND) INA226AIDGSR
Texas Instruments
Datasheet ↗
TSSOP-10_3x3mm_P0.5mm
U2 INA226 Channel 2 high-side monitor, I2C address 0x41 (A1=GND, A0=3V3) INA226AIDGSR
Texas Instruments
Datasheet ↗
TSSOP-10_3x3mm_P0.5mm
U3 INA226 Channel 3 high-side monitor, I2C address 0x44 (A1=3V3, A0=GND) INA226AIDGSR
Texas Instruments
Datasheet ↗
TSSOP-10_3x3mm_P0.5mm
U4 INA226 Channel 4 high-side monitor, I2C address 0x45 (A1=3V3, A0=3V3) INA226AIDGSR
Texas Instruments
Datasheet ↗
TSSOP-10_3x3mm_P0.5mm

Signals#

Net labels used in the schematic, which are also the names the HDL top level should use.

3V3 EN GATE_STATUS GND LED1_A LED2_A LED3_A LED4_A LOOP_A LOOP_B PGATE PWR_ALERT_N SCL SCL_PU SDA SDA_PU ST_DIV VBAT VDIST VF1 VF2 VF3 VF4 VOUT1 VOUT2 VOUT3 VOUT4

Production status#

Schematic ERC0 violations
PCB layoutnot started
DRCnot run
Fab packagenot exported
Fabricatedno — design stage only

Source: boards/robot-power-dist


Companion power board named in ../actuator-modules/README.md (Phase B — robot power). A main-line board, not a PMOD module: it fans a battery rail out to four fused, current-monitored channels behind one soft-switch / e-stop master gate.

Status: schematic generated, ERC clean (0 errors / 0 warnings), netlist membership verified exactly (27 nets / 149 pins). PCB layout not started. Not released.

NOT A CERTIFIED SAFETY DEVICE. Safety-themed power gating only: no redundancy, no monitored contacts, no rated stop category. Never make a person's safety depend on it. Pairs with ../actuator-modules/axa-012-estop/ and the same fabric supervision contract.

Requirements#

Architecture#

VBAT (J1) ──► Q1‖Q2 (2x DMP4015SSS, high-side) ──► VDIST ─┬─► F1 ─ shunt ─► J3 CH1 (INA226 U1, 0x40)
                    ▲ PGATE                               ├─► F2 ─ shunt ─► J4 CH2 (INA226 U2, 0x41)
     R1 100k (OFF) ─┤ + D1 BZT52C10 clamp                 ├─► F3 ─ shunt ─► J5 CH3 (INA226 U3, 0x44)
   PGATE ► R2 10k ► J2 NC loop ► Q3 2N7002 ► GND          └─► F4 ─ shunt ─► J6 CH4 (INA226 U4, 0x45)
                        ▲ EN (J9.1, R3 10k pull-down)

Master gate (axa-012 topology, scaled up)#

Q1+Q2 are two DMP4015SSS (−40 V, −9.1 A rated, R_DS(on) 7 mΩ typ / 11 mΩ max at V_GS = −10 V, SO-8) in parallel, sources on VBAT, drains on VDIST, gates common on PGATE. The only pull-down path is the series chain PGATE → R2 (10k) → J2 e-stop loop (NC) → Q3 (2N7002) → GND, with R1 (100k) holding the gate at the source (OFF) and R3 (10k) holding EN low.

J2 loopEN (J9.1)VDIST
closedhighON
closedlow / host unpoweredOFF
open (button hit / wire cut)anyOFF

Distribution channels#

Each channel: VDIST → fuse (1206) → 20 mΩ shunt (2512) → screw terminal, with an INA226 across the shunt and a green output-live LED (4.7k, ≈ 2.2 mA at 12.6 V) on the output net.

INA226 supply split (important)#

INA226 address map (datasheet SBOS547B, Table 6-2)#

ChannelRefA1 strapA0 strap7-bit address
CH1U1GNDGND0x40
CH2U2GNDVS (3V3)0x41
CH3U3VS (3V3)GND0x44
CH4U4VS (3V3)VS (3V3)0x45

(0x42/0x43 would need SDA/SCL straps; only GND/VS codes are used here.)

Telemetry and control interfaces#

RefWhatPinout
J7Qwiic JST-SH (SM04B-SRSS-TB)1 GND, 2 3V3, 3 SDA, 4 SCL (Qwiic standard)
J81x04 2.54 mm header1 3V3, 2 GND, 3 SDA, 4 SCL
J91x04 2.54 mm control header1 EN (in), 2 GATE_STATUS (out), 3 PWR_ALERT_N (out, open-drain), 4 GND

Fuse selection (ratings are load-specific)#

F1–F4 are 1206 SMD fuses, fitted 2 A by default (TBD: Littelfuse 0467002.NR). Suggested values:

LoadSuggested rating
Logic / sensor / servo rail2 A (default)
Small gear motors (N20 class)3 A
Drive motorsup to 5 A

Pick the fuse above the continuous load but sized so a stalled motor still opens it; remember the INA226 reading saturates at 4.1 A, so channels fused above 4 A lose metering headroom before the fuse acts. Total across the four channels must respect the ~8 A master-gate budget and the upstream battery-power-input/ fuse.

Part substitutions / deviations from the pinned spec#

Regenerate and verify#

python3 generate_design.py
/Applications/KiCad/KiCad.app/Contents/MacOS/kicad-cli sch erc \
  --severity-all --format report --output reports/erc.rpt robot-power-dist.kicad_sch
# must report: 0 Errors 0 Warnings

Then export the netlist (kicad-cli sch export netlist --format kicadsexpr) and check every net's membership against the architecture above — ERC alone does not catch off-pin labels.

Remaining for release#