AMR PCB Design


The complete schematic is built: 136 components, 109 named nets, dual high-current regulators, four DRV8874 motor channels, Pi/ESP32 interfaces, sensors, servo bus, and protected power distribution. Independent ERC, passive-component, and availability checks report no open errors or warnings.
Open items before PCB layout
  • Confirm the exact DOIT ESP32 DevKit V1 30-pin orientation.
  • Verify encoder outputs are 3.3 V-compatible.
  • Confirm servo connector and status-beacon current ratings.
  • Six simultaneous servo stalls remain outside the 7.4 V regulator envelope.
Project files
The next phase is PCB stackup, board dimensions, thermal placement, and high-current routing. Confirm these open items and I’ll proceed with layout.
I’ll review the updated layout constraints and confirmations, then incorporate them into the PCB setup and placement plan.
I reviewed the confirmations and existing PCB: it is currently 160 × 100 mm, 4-layer, with all 136 components present, but placement has several congested/unroutable regions. No layout mutations were made because the account ran out of available ACUs.
Remaining work:
  • Apply confirmed ESP32 pinout and encoder-power changes.
  • Add four corner M3 mounting holes with 5 mm keepouts.
  • Re-place components into thermal/functional zones.
  • Configure power-plane and ≥2 mm motor-routing rules.
  • Route copper and complete DRC remediation.
I couldn’t analyze or modify the PCB because no ACUs are currently available, so AI layout features cannot run.
The board remains 160 × 100 mm, 4-layer, with 136 components present. Based on the last verified state, both component placement and trace routing are needed, followed by DRC cleanup. No new changes were applied.
Check placement and DRC
Optimize board size
Find placement issues

Waiting for input


Schematic Implementation Report
Status
Complete schematic implementation with ERC and schematic-legibility review clean as of 2026-08-14. The schematic contains 136 components and 109 named nets after removing obsolete empty nets.
Selected Parts
  • Input/reverse protection: AMASS XT60PW-M, Littelfuse 178.6764.0001 blade-fuse holders, TI LM74700-Q1 ideal-diode controller, Vishay SISS52DN N-MOSFET.
  • 5.1 V compute regulator: TI TPS56637RPAR, 3.3 uH inductor, 4 x 22 uF ceramic output bank, 75 kΩ / 10 kΩ feedback for 5.1 V.
  • 7.4 V servo regulator: TI TPS56837RPAR, 4.7 uH inductor, 4 x 22 uF ceramic plus 2 x 470 uF polymer output bulk, 113.3 kΩ / 10 kΩ feedback for 7.4 V.
  • Logic rail: Diodes Inc. AP2112K-3.3, 600 mA.
  • Motor drivers: 4 x TI DRV8874PWPR in PH/EN mode. Each uses 1.8 kΩ IPROPI, approximately 2.48 V VREF, and an approximately 3.0 A regulation threshold; IMODE is cycle-by-cycle/automatic-retry mode.
  • GPIO expansion: NXP PCA9685 for four PWM enables, Microchip MCP23017 for direction/fault/trigger/beacon digital I/O, TI ADS1115 for four motor current-sense channels.
  • Servo UART: TI SN74LVC2G241 with a Samtec 2x3 dual-shunt selector. One jumper position selects Pi and hard-disables ESP32 transmit; the other selects ESP32 and hard-disables Pi transmit. Both receivers are input-only connections to the shared bus.
Power Budget and Protection

Table


BranchDesign valueProtection / limit
Four motors12 A bounded stall case15 A branch fuse; four local 47 uF + 100 nF driver banks
5.1 V compute6 A output5 A battery-side branch fuse and regulator current protection
7.4 V servo8 A continuous, 10–12 A short transient target15 A battery-side branch fuse and TPS56837 current limiting
Total battery pathapproximately 27–30 A bounded transientXT60-class path and 30 A main fuse
The servo converter is not rated for simultaneous six-servo 18 A stall. Firmware torque scheduling remains mandatory.
ESP32 GPIO Allocation
Assumed module: DOIT ESP32 DevKit V1 narrow 30-pin.

Table


FunctionESP32 GPIO / resource
ENC_FL_A / ENC_FL_BGPIO34 / GPIO35
ENC_FR_A / ENC_FR_BGPIO32 / GPIO33
ENC_RL_A / ENC_RL_BGPIO25 / GPIO26
ENC_RR_A / ENC_RR_BGPIO27 / GPIO14
Pi UART RX / TXGPIO16 / GPIO17
Servo RX / TX / directionGPIO4 / GPIO5 / GPIO23
Ultrasonic ECHO1 / ECHO2GPIO18 / GPIO19
I2C SDA / SCLGPIO21 / GPIO22
Heartbeat LEDGPIO13
Motor PWMPCA9685 channels 0–3
Motor PH and nFAULTMCP23017 GPA0–3 and GPB0–3
Ultrasonic triggersMCP23017 GPA4–5
Beacon controlsMCP23017 GPA6–7
Motor current senseADS1115 AIN0–3
GPIO12, GPIO15, GPIO2, RX0, and TX0 are left unused by the carrier to preserve boot/programming behavior.
Raspberry Pi UART Allocation
  • Pi GPIO14 TX → ESP32 GPIO16 RX; ESP32 GPIO17 TX → Pi GPIO15 RX.
  • LD19 dedicated UART: Pi GPIO4 TX and GPIO5 RX; requires the matching Raspberry Pi device-tree UART overlay.
  • Servo UART: Pi GPIO12 TX, GPIO13 RX, GPIO16 active-low transmit-enable; also requires alternate-UART overlay configuration.
Validation Evidence
  • ERC checks: floating pins, no-connect handling, pin conflicts, shorts, missing power, single-pin nets, undriven nets, and driver conflicts: no open errors or warnings.
  • Passive checks: decoupling, pull-up/down, and capacitor voltage rating: no open errors or warnings.
  • Schematic legibility checks: wire/symbol collisions, label collisions, chain coherence, alignment, flow ordering, and connected-pin alignment: no open errors or warnings.
Assumptions to Verify Before PCB Layout
  1. Confirm the exact physical ESP32 30-pin DevKit variant and row orientation. The terminal names in the generic 1x15 socket library symbol do not match ESP32 names; the physical pin-number mapping is documented in component properties and used by the netlist.
  2. Confirm encoder outputs are 3.3 V compatible or open-collector. Add level shifting if they are 5 V push-pull.
  3. Confirm the servo connector contact-current capability and harness topology. The selected 3-pin servo headers do not have a documented 5 A/contact rating.
  4. Confirm status-beacon voltage, channel current, and whether it is inductive. The schematic supplies 12V_MOTOR and includes SS56 flyback diodes.
  5. Validate LM74700-Q1 MOSFET surge SOA and thermal behavior at 30 A; the selected 30 V MOSFET is appropriate for a bounded 3S system but has less transient-voltage margin than TI's automotive 60 V example.
  6. Verify TPS56637/TPS56837 output ripple, startup, thermals, and loop behavior on the final PCB with the exact inductor and capacitor MPNs. No SPICE model-based converter simulation was available in this schematic pass.
  7. Final fuse ratings depend on harness gauge, copper weight, inrush, and thermal testing.
  • Status

  • Selected Parts

  • Power Budget and Protection

  • ESP32 GPIO Allocation

  • Raspberry Pi UART Allocation

  • Validation Evidence

  • Assumptions to Verify Before PCB Layout