ESP32 C3 Robotics Controller

Worked for 43 mins 15 sec
Thought for a moment — Adjusting task dimensions
1/3 Resize the hexagonal outline to the smallest practical compact size

Resize the hexagonal outline to the smallest practical compact size

Place all components for single-layer CNC routing

Verify board fit, antenna keepout, and placement DRC

Thought for 18 sec
Thought for 6 sec — Inspecting layout and skills
Referenced guidance.
Thought for 4 sec
Getting a layout overview.
Reading schematic details.
Thought for 11 sec
Editing board size.
Thought for 16 sec — Planning placement constraints
Placed footprints of C1, C2, C4 and 1 more
Baking PCB layout data.
Placing 18 footprints.
Thought for 1 sec
Placing footprints of C2, C3, C1 and 1 more.
Thought for 3 mins 19 sec — Continuing tasks
Placing footprints of J1, J2, F1 and 10 more.
Thought for 1 min 36 sec — Evaluating clamping issue
Placing footprints of J1, J2, F1 and 7 more.
Thought for 44 sec — Evaluating F1 and J1 overlaps
Placing footprints of J1, J2, F1 and 9 more.
Thought for 29 sec — Clarifying positioning constraints
Placing footprints of J1, J2, U3.
Thought for 39 sec — Evaluating packing constraints
Placing footprints of J1, J2, F1 and 9 more.
Thought for 18 sec — Adjusting spacing and positions
Placing footprints of SW1, J3, C5 and 1 more.
Thought for 1 min 52 sec — Adjusting placement of J3
Placing footprints of J1, J2, F1 and 10 more.
Thought for 56 sec — Evaluating overlap and clamping
Placing footprints of J1, F1, C5 and 10 more.
Thought for 22 sec — Considering J2 movement
Placing footprints of J1, F1, C5 and 4 more.
Thought for 30 sec
Placing footprints of J1, J2, F1 and 9 more.
Thought for 30 sec — Fixing overlaps in layout
Placing footprints of BT1, J3, SW2 and 2 more.
Thought for 26 sec
Placing footprints of J3, SW1, SW2 and 1 more.
Thought for 15 sec
Placing footprints of J3, C5, SW1 and 1 more.
Thought for 9 sec
Placing footprints of SW2, C6, J3.
Thought for 6 sec
Placing footprint of SW1.
Thought for 10 sec
Placing footprint of SW1.
Thought for 6 sec
Placing footprint of SW1.
Thought for 7 sec
Placing footprint of SW1.
Thought for 8 sec — Setting initial values
Placing footprint of SW1.
Footprint placement stopped early.
Applying placement changes.
Thought for 5 sec — Calculating increments
Editing board size.
Thought for 15 sec
Placed footprints of J2, U2, BT1 and 15 more
Baking PCB layout data.
Placing 18 footprints.
Thought for 1 sec
Placing footprints of C2, C3, C1 and 1 more.
Thought for 1 min 16 sec — Continuing with skills retrieval
Placing footprints of J1, J2, U3 and 9 more.
Thought for 24 sec
Placing footprints of J1, F1, C5 and 4 more.
Thought for 14 sec — Analyzing clamp overlaps
Placing footprints of J1, F1, C5 and 6 more.
Thought for 1 min 2 sec
Placing footprints of U1, U2, C1 and 15 more.
Thought for 24 sec
Placing footprints of J2, BT1, U3 and 10 more.
Thought for 1 min 14 sec — Checking overlaps and parameters
Placing footprints of J3, C1, C2 and 6 more.
Thought for 28 sec
Placing footprints of C3, F1, C4 and 2 more.
Thought for 22 sec
Placing footprints of C1, C2, C3 and 3 more.
Thought for 1 min 3 sec — Evaluating boundaries
Placing footprints of J1, J2, F1 and 13 more.
Thought for 17 sec — Troubleshooting movement issues
Placing footprints of J1, F1, C5 and 3 more.
Thought for 58 sec — Analyzing board constraints
Placing footprints of U2, J1, F1 and 13 more.
Thought for 41 sec
Placing footprints of U1, C4, U2 and 14 more.
Thought for 52 sec — Checking positions and overlaps
Placing footprints of U1, C4, U2 and 13 more.
Thought for 29 sec
Placing footprints of F2, C1, C2 and 3 more.
Thought for 12 sec — Adjusting positions
Placing footprints of C6, SW2, R1.
Thought for 15 sec
Placing footprints of C6, SW2, R1 and 2 more.
Thought for 13 sec — Evaluating coordinate placements
Placing footprints of F2, C6.
Footprint placement stopped early.
Applying placement changes.
Thought for 5 sec
Editing board size.
Thought for 22 sec
Placed footprints of J2, BT1, J1 and 11 more
Baking PCB layout data.
Placing 18 footprints.
Thought for 2 sec
Placing footprints of C2, C3, C1 and 1 more.
Thought for 1 min 36 sec — Planning skill retrieval
Placing footprints of BT1, U3, J3 and 13 more.
Thought for 1 min 32 sec — Evaluating placement and gaps
Placing footprints of J1, J2, F1 and 4 more.
Thought for 8 sec — Testing adjustments
Placing footprints of J1, J2, F1 and 4 more.
Thought for 7 sec
Placing footprints of J2, F2, C6 and 2 more.
Thought for 23 sec — Adjusting positioning
Placing footprints of J1, F1, C5 and 4 more.
Thought for 17 sec
Placing footprints of J1, F1, C5 and 2 more.
Thought for 19 sec — Calculating adjustments for batches
Placing footprints of J2, BT1, F2 and 2 more.
Thought for 23 sec
Placing footprints of C5, F2, C6.
Thought for 25 sec — Fixing overlaps in positioning
Placing footprints of C6, F2, C5 and 1 more.
Thought for 11 sec
Placing footprints of F2, F1.
Thought for 37 sec — Examining routing criteria
Footprint placement complete.
Applying placement changes.
Thought for 7 sec
Checking routing progress.
Completed 6 design checks — found 31 issues.
Getting a layout overview.
Thought for 7 sec — Addressing design issues
Placed footprints of J2, J1, C5 and 5 more
Baking PCB layout data.
Placing 18 footprints.
Thought for 3 sec
Placing footprints of J2, U3.
Thought for 1 min 35 sec — Inspecting physical placements
Placing footprints of SW1, J3, F2 and 1 more.
Thought for 22 sec — Adjusting parameters
Placing footprints of J1, F2.
Thought for 22 sec — Checking fuse positions
Placing footprints of F2, J1.
Thought for 40 sec
Placing footprints of F2, F1, C5.
Thought for 9 sec
Placing footprints of F2, F1.
Thought for 5 sec
Placing footprint of F2.
Thought for 22 sec
Placing footprint of F2.
Thought for 11 sec
Placing footprint of F2.
Thought for 37 sec — Evaluating positioning and gaps
Placing footprints of J1, F2.
Footprint placement stopped early.
Applying placement changes.
Thought for 5 sec
Placed footprints of J1, F2
Baking PCB layout data.
Placing 18 footprints.
Thought for 3 sec
Placing footprint of F2.
Thought for 29 sec — Clarifying positioning constraints
Placing footprint of F2.
Thought for 35 sec
Placing footprint of F2.
Thought for 6 sec
Placing footprint of F2.
Thought for 4 sec
Placing footprint of F2.
Thought for 8 sec
Placing footprint of F2.
Thought for 3 sec
Placing footprint of F2.
Thought for 8 sec — Checking dimensions and movement
Placing footprint of F2.
Thought for 36 sec — Planning the move
Placing footprint of J1.
Thought for 11 sec — Clarifying completion criteria
Footprint placement complete.
Applying placement changes.
Thought for 3 sec
Checking routing progress.
Completed 6 design checks — found 31 issues.
Getting a layout overview.
Thought for a moment
DONT WORRY ABOUT THE SIZE
Got it—I’ll prioritize a clean, CNC-routeable single-layer placement over compactness, enlarging the hexagon and spreading the ESP32/driver signal corridor before routing.
The PCB currently has a 110 × 105 mm hexagonal outline with all 18 footprints placed on top, no overlaps, and the single bottom-copper CNC stackup preserved.
Remaining
  • Enlarge and re-place to eliminate the congested ESP32-to-TB6612FNG corridor.
  • Recheck single-layer routability and antenna keepout.
  • Routing has not started; 23 airwires remain.
Execution stopped because no ACUs are currently available.
Enlarge and re-place
Protect antenna keepout
CNC-friendly placement
U2
SW1
SW1 2 - J3 ~
U1 IO5 - U2 BIN2
U1 IO4 - U2 BIN1
J3 Pin_3 - U1 5V
U1 IO1 - U2 AIN2
U2 BO2 - J2 ~
F2 P2 - J2 ~
J3 Pin_4 - U2 VMOT
BT1 POSITIVE - U3 BAT+
U2 BO2 - J2 ~
U1 3V3 - U2 VCC
F2 P2 - J2 ~
U1 IO4 - U2 BIN1
U1 IO6 - U2 PWMB
U1 3V3 - U2 VCC
U1 3V3 - U2 VCC
U2 AO2 - J1 ~
U1 IO0 - U2 AIN1
U3 OUT+ - SW1 1
F1 P2 - J1 ~
SW2 2-2 - U2 STBY
U1 IO3 - U2 PWMA
J3 Pin_4 - U2 VMOT
J3 Pin_4 - U2 VMOT
U1 IO3 - U2 PWMA
U2 AO1 - F1 P1
U1 IO7 - SW2 1-1
U1 IO0 - U2 AIN1
U1 IO7 - SW2 1-1
SW2 2-2 - U2 STBY
F2 P2 - J2 ~
U1 3V3 - U2 VCC
U1 IO5 - U2 BIN2
BT1 POSITIVE - U3 BAT+
BT1 NEGATIVE - U3 BAT-
U2 AO2 - J1 ~
U3 OUT+ - SW1 1
U2 BO1 - F2 P1
J3 Pin_4 - U2 VMOT
SW2 2-2 - U2 STBY
U1 IO1 - U2 AIN2
U1 IO6 - U2 PWMB
U2 AO2 - J1 ~
U2 AO1 - F1 P1
U2 BO1 - F2 P1
U2 BO2 - J2 ~
J3 Pin_3 - U1 5V
F1 P2 - J1 ~
F1 P2 - J1 ~
SW1 2 - J3 ~
BT1 NEGATIVE - U3 BAT-
J2
BT1
C3 P2 - C4 P2
J1
GND
GND
GND
C1
Capacitance
470uF
C5
Capacitance
100nF
C3 P2 - C4 P2
F1
F2
C2
Capacitance
100nF
GND
GND
R1
Resistance
10kΩ
U1
C4
Capacitance
100nF
C3
Capacitance
100nF
GND
GND
C6
Capacitance
100nF
U1 GND - U2 GND
U3
SW2
J3

Refine this doc
Ask about this doc
Board Bring-Up Plan
  1. Unpowered inspection: verify holder polarity, TP4056 BAT/OUT polarity, J3 terminal numbering, SW1 terminal wiring, electrolytic polarity, and no rail shorts.
  2. External hardware: fit Pololu U3V70F5 item 2891 using large terminal-block holes/direct heavy wire. Fit Daier KN3A-101 external SPST master switch with short heavy conductors through SW1. Never use 2.54 mm headers in the high-current path.
  3. Charge-only: master switch OFF; insert protected cell; connect TP4056 USB; robot rails must remain 0 V.
  4. Boost no-load: remove USB, power RUN, verify regulated 5.00 V at both 5V_LOGIC and 5V_MOTOR before connecting modules/load.
  5. SuperMini fit/orientation: verify U1 is the common 16-pin, 4 MB, 22.52 x 18 mm ESP32-C3 SuperMini; USB-C is accessible and the ceramic-antenna end faces outward at the top edge with no carrier copper, battery, high-current module, wire, or metal in the antenna region.
  6. Logic-only: motors unplugged; power the labeled U1 5V pin from 5V_LOGIC, verify 5V_LOGIC and 3V3, and confirm STBY=0 V after reset. Grounds must be common.
  7. USB programming: switch robot 5V_LOGIC OFF before attaching USB-C because the documented common SuperMini variant does not guarantee safe simultaneous USB and external-5-V powering. Build the esp32-c3-supermini PlatformIO environment; verify USB CDC serial at 115200 and upload (hold BOOT while connecting if recovery is needed).
  8. GPIO map: verify GPIO0→AIN1, GPIO1→AIN2, GPIO3→PWMA, GPIO4→BIN1, GPIO5→BIN2, GPIO6→PWMB, GPIO7→STBY command. Confirm GPIO8/9 and native-USB GPIO18/19 are not used for motor control.
  9. Enable: load firmware; STBY may rise only when firmware commands enable and hardware RUN/ENABLE is active. The 10 kΩ hardware pull-down must hold MOTOR_STBY low during reset or an open enable chain.
  10. Driver: use a current-limited bench supply first; verify direction/PWM without motors.
  11. Motor characterization: measure free-run, normal-load, startup, and locked-rotor current. Reject sustained channel current near/above the TB6612 carrier's 1 A/channel thermal rating. The 1.5 A allowance is brief only.
  12. PPTC validation: F1/F2 are 0ZRM0125FF1A (1.25 A hold, 2.50 A trip at 23 C, =1.5 A 3.5 mm solution is qualified.
  13. Failsafe: establish Wi-Fi and BLE operation, command motion, then remove the active command stream; both PWM outputs, direction outputs, and STBY must enter the stopped state within 500 ms.
  14. Thermal/load test: load-test boost/wiring while monitoring module, terminal blocks, switch harness, holder, TB6612, PPTCs, and jacks.
Pass requires safe reset/enable behavior, regulated rails, measured currents within every documented rating, and resolution or formal acceptance of the 3.5 mm connector blocker.

Assets

Assets are files uploaded to this project which can be used in various ways.

Plug-and-Play ESP32 Robot Controller thumbnail
Single-layer CNC-millable ESP32-C3 robot controller for two bidirectional 5 V DC motors, using solderable modules, protected 18650 charging, Wi-Fi/BLE control, and protected 3.5 mm motor connections.

Properties

Properties describe core aspects of the project.

Pricing & Availability

Distributor

Qty 1

Arrow

$1.78–$2.01

Digi-Key

$0.16

LCSC

$4.57

Mouser

$5.23

TME

$0.20

Verical

$2.00–$3.47

Controls