Design-review findings

Issues surfaced while writing the per-board circuit-review guides (*/CIRCUIT_REVIEW_AND_BENCH_TEST_GUIDE.md). These are schematic-stage findings on unfabricated boards — fix before committing a board to a fab panel. Grouped by severity. Each guide's own text has the full context.

Release blockers#

Both original blockers are now FIXED (schematic + layout + fab package regenerated, ERC 0/0, DRC 0 violations / 0 unconnected). They remain listed here with their resolution so the history is not lost. No open blockers.

BoardFindingResolution
axa-011-rs485560 Ω failsafe bias gave ~168 mV idle on a doubly-terminated bus (A−B sees 120 ‖ 120 = 60 Ω) — below the ±200 mV RS-485 spec, so RO was undefined when the bus was idleFIXED: R4/R5 respun 560 Ω → 390 Ω 1%. Worst case now 3.3 × 60/840 = 236 mV, above spec with margin. Bias current ~3.6 mA; driver load ~55 Ω, still above the 54 Ω RS-485 minimum. Bench-verify the 236 mV figure
axa-005-servo-bankVSERVO = 6 V exceeded the 74HCT541's recommended 5.5 V max supply. Related latent issue found while fixing: R17 pulled the enable inputs to that same 6 V rail, above the '541 input abs-max of VCC+0.5 VFIXED: added U2 AP2204K-5.0 LDO (+ C5/C6 1 µF) generating a dedicated 5 V logic rail V5BUF for U1 VCC, C1 and R17. Servos keep the full 5–6 V VSERVO rail, so 6 V high-torque servos stay supported. AP2204K accepts 24 V in, so no new voltage ceiling was introduced. Bench proof: V5BUF ≈ 5.0 V regardless of VSERVO

Corrections already applied during review (verify they stuck)#

BoardFindingStatus
battery-power-inputReverse-protection FET orientation as originally specced ("source to battery") does not block reverse (body diode conducts)Corrected to drain-to-battery; netlist-verified
robot-power-distGATE_STATUS 100k/10k divider tops out at 1.15 V — never logic-high at 12.6 VCorrected to 39k/10k (2.57 V); in schematic
robot-power-distNANO2 fuse body doesn't fit the 1206 land patternSwapped to 1206-form Littelfuse 0467 series

Documentation / value discrepancies (low risk, tidy up)#

BoardFindingAction
battery-power-inputREADME states DMP4015 VGS abs max ±20 V; datasheet says ±25 VFix README number
axa-007-bldcREADME mA/LSB figure for the INA240/ADS7042 chain is invertedFix README; nFAULT is non-latching so fault latching must live in RTL (note added)
axa-001-dc-motorDead Toshiba datasheet URL in the generator; C3 voltage-rating margin marginalUpdate URL; review C3 rating

Physics / thermal limits to document on silk or in HDL (not defects)#

BoardFinding
axa-008-lowsideULN2003 package power caps realistic use at ~250 mA/channel, not 4×500 mA simultaneous — the datasheet VCE(sat) table itself stops at 350 mA
axa-004-hbridge-lab10k gate networks make the FETs' datasheet switching times irrelevant (µs-class edges) → low-kHz PWM only; prospective shoot-through current ~130 A makes fabric dead-time non-negotiable
axa-009-ws281260 mA/LED means strip current (1.8/3.6/8.6 A for 30/60/144 LEDs) can exceed the TBD strip-connector rating — size the connector/wire per target strip length
axa-003-encoderRC filter (~110 µs rise) bandwidth-limits fast open-collector encoders — fine for gearmotors, note the ceiling
axo-011-i2s-amp3.3 V-only power ceiling ≈ 1.4 W into 4 Ω (vs 3.2 W at 5 V) — deliberate scope choice, state it

Recurring bench gotchas (firmware, not hardware — captured in guides)#

Notes#