ESP32-S3 Controller Design


I’m blocked again because the account has no available ACUs, so I can’t continue executing schematic edits right now.
Accomplished in this session:
  • Added the core real components: ESP32-S3-WROOM-1-N16R8, TPSM63610 5 V buck, LMR33630 3.3 V buck, TPS7A2033 audio LDO, TPS259474 eFuse, DRV8874, 74LVC2G08, USB-C, ESD, fuses, connectors, MOSFETs, test points, LEDs, ferrite bead, and support passives.
  • Wired major power architecture: 12 V battery input, input fuse/reverse MOSFET/TVS/bulk, BAT_PROTECTED distribution, MD10A/TB6600/myRIO branches, TPSM63610 +5V_MAIN, fused +5V_LOGIC/+5V_SERVOS/+5V_MARKER, +3V3_DIGITAL, +3V3_AUDIO, ESP32 power/EN/BOOT, and USB-C native USB D+/D− with CC pull-downs and VBUS sense.
  • Used datasheet-backed values for the TPSM63610, LMR33630, TPS7A2033, ESP32-S3 boot/reset, and USB-C sink behavior.
Open items:
  • The schematic is not complete yet: microphones, servos, TB6600 MOSFET sinks, myRIO UART, DRV8874/AND-gate marker motor logic, LEDs, and several test points still need final wiring.
  • The TPS259474 myRIO eFuse configuration pins need proper individual resistor/cap networks; I had flagged the current placeholder approach for correction.
  • Schematic organization/placement and ERC cleanup have not been completed.
  • Final fuse values, battery max voltage, motor/servo stall currents, TB6600 resistor values, and myRIO input limits are still TBD.
Suggested next steps once ACUs are available:
  1. Finish wiring the remaining signal/interface blocks.
  2. Correct the myRIO eFuse configuration network.
  3. Organize the schematic into readable functional blocks.
  4. Run ERC/design review and fix real violations before moving to PCB layout.
Finish and review
Fix eFuse network
Finish signal wiring
Organize schematic
Run ERC review

Project Specification
Project Overview
Status: Draft / requirements captured.
Design a four-layer PCB named DSM ESP32-S3 Sensing & Marking Controller for a robotic leak-detection and pipe-marking system. The board integrates protected 12 V battery distribution, an ESP32-S3-WROOM-1 sensing/marking controller, high-current 5 V conversion, low-noise microphone power, servo outputs, a marker motor H-bridge, TB6600 control, and a 3.3 V UART interface to an NI myRIO-1900.
Intended Use
Prototype/R&D controller board for a mobile robotic platform that detects pipe leaks using four external microphone modules and controls marking/gripping actuators. The board distributes battery power to external motor/stepper/myRIO systems while keeping the ESP32, audio, USB, and logic domains protected and debuggable.
What the Device Should Do
  • Accept nominal 12 V battery input over a polarized high-current connector.
  • Protect against reverse polarity, short circuits, input transients, excessive current, and accidental connector reversal.
  • Provide protected battery-voltage outputs for NI myRIO-1900, MD10A traction driver, and TB6600 driver.
  • Generate +5V_MAIN at 8 A continuous / 10 A peak target using TPSM63610.
  • Split +5V_MAIN into +5V_LOGIC, +5V_SERVOS, and +5V_MARKER protected branches.
  • Generate +3V3_DIGITAL for ESP32 and +3V3_AUDIO for microphones.
  • Interface four GY-MAX4466 microphone modules on ESP32 ADC GPIO4-7.
  • Drive two external servos from GPIO11 and GPIO12.
  • Drive the yellow marker carriage motor using a DRV8874 H-bridge while preserving L298N-style firmware signals.
  • Interface TB6600 PUL/DIR/ENA through protected open-drain/current-sink stages.
  • Communicate with NI myRIO over 3.3 V UART on GPIO43/GPIO44.
  • Use native ESP32-S3 USB on GPIO19/GPIO20 for programming/debugging.
Main Features
  • ESP32-S3-WROOM-1 module with USB-C native USB, BOOT/RESET buttons, EN RC network, antenna edge placement and keepout.
  • Protected 12 V distribution with replaceable fuses, TVS footprint, ideal-diode MOSFET reverse protection, LEDs, and test points.
  • TPSM63610 high-current 5 V buck module with manufacturer reference layout requirements.
  • Dedicated 3.3 V digital regulator and low-noise +3V3_AUDIO LDO.
  • Four identical microphone inputs with 100 ohm series resistors, DNP ADC filter caps, optional low-leakage ESD, and test points.
  • Servo output filtering, pulldowns, ESD options, local bypass, and large servo bulk capacitance.
  • DRV8874 marker motor driver with 74LVC2G08 gating, nFAULT indication, current sense test point, and DNP EMI capacitors.
  • TB6600 common-anode optocoupler interface using MOSFET sinks and configurable resistors/jumpers.
  • myRIO power eFuse/high-side switch branch and separate UART connector that cannot power the myRIO.
System Architecture

Diagram


12 V Battery 9-15 V preliminary Input Fuse + Ideal-Diode MOSFET + TVS + Bulk MD10A Fused VBAT Output TB6600 Fused VBAT Output myRIO TPS25947 eFuse Branch myRIO Power Connector TPSM63610 5 V / 8 A Buck +5V_LOGIC Protected +5V_SERVOS Protected +5V_MARKER Protected +3V3_DIGITAL Regulator TPS7A2033 +3V3_AUDIO LDO ESP32-S3-WROOM-1 4x GY-MAX4466 Connectors MG996R + SG90 Connectors DRV8874 Marker H-Bridge 74LVC2G08 PWM Gating TB6600 Open-Drain Control TB6600 Control Connector myRIO 3.3 V UART Connector USB-C + ESD + CC Rd
Hardware Subsystems
Battery Input and 12 V Distribution
  • Connector: XT60 PCB or equivalently rated polarized connector.
  • Protection: replaceable input fuse footprint, ideal-diode MOSFET reverse protection, bidirectional TVS footprint, gate protection, 100-470 uF bulk >=25 V, 1 uF ceramic, 100 nF ceramic, BATTERY_OK LED.
  • Test points: BAT_RAW, BAT_PROTECTED, GND.
  • Star-like distribution from BAT_PROTECTED.
  • Warning: battery max voltage must remain below NI myRIO-1900 max input voltage.
12 V Branches
  • MD10A branch: independently fused, XT30 or 7.62 mm terminal, provisional 10 A continuous routing, silkscreen "CONTROL FROM myRIO, NOT ESP32".
  • TB6600 branch: independently fused, 5.08/7.62 mm terminal, provisional 5 A target.
  • myRIO branch: TPS25947 or equivalent eFuse/high-side switch, OVP below 16 V, current limit around 2.5 A provisional, inrush control, reverse current blocking, MYRIO_PWR_OK LED.
5 V Power
  • Main buck: TPSM63610 synchronous buck module from BAT_PROTECTED to +5V_MAIN, 8 A continuous / 10 A peak target.
  • Branches: +5V_LOGIC 1.5 A provisional, +5V_SERVOS 5 A provisional, +5V_MARKER 3 A provisional.
  • Do not split ground plane; control return currents by placement/routing.
ESP32-S3 and USB
  • Module: ESP32-S3-WROOM-1 memory suffix to be selected from sourceable library stock without changing GPIO assignments.
  • USB: GPIO19 USB_D-, GPIO20 USB_D+, USB-C sink CC1/CC2 5.1 k pulldowns, ESD, 90 ohm diff pair.
  • Controls: BOOT on GPIO0, RESET/EN button, standard EN RC network.
  • Required test pads: EN, BOOT/GPIO0, 3V3, GND, USB D+, USB D-, every used GPIO.
  • Antenna: module antenna at board edge, keepout on all layers per Espressif reference; no high-current or switching circuitry nearby.
Microphone Analog Section
  • Four external GY-MAX4466 modules powered only from +3V3_AUDIO.
  • +3V3_AUDIO: TPS7A2033 or equivalent 3.3 V low-noise LDO from +5V_LOGIC with ferrite bead and required capacitors.
  • Connectors: identical 3-pin locking connectors: +3V3_AUDIO, AGND/GND, SIGNAL.
  • ADC front-end: 100 ohm series resistor near ESP32, DNP capacitor footprint 1-10 nF option, optional low-leakage ESD, pre/post filter test pads.
Servo Outputs
  • Two 3-pin standard servo connectors in GND, +5V_SERVOS, SIGNAL order.
  • Signals: GPIO11 PWM_GRIPPER, GPIO12 PWM_MARKER_SERVO.
  • Each signal gets 100 ohm series resistor, 100 k pulldown, optional ESD, and local 100 nF near connector.
Marker Motor H-Bridge
  • Preferred driver: DRV8874 thermally enhanced package.
  • Supply: +5V_MARKER.
  • Firmware compatibility: GPIO38 PWM enable, GPIO39 IN1, GPIO40 IN2. No LED or fixed load on GPIO38.
  • Logic: 74LVC2G08 forms DRIVER_IN1 = GPIO38 AND GPIO39; DRIVER_IN2 = GPIO38 AND GPIO40.
  • Includes 100 k pulldowns, 100 ohm series resistors, nFAULT pull-up/LED/TP, current sense TP, nSLEEP bias, optional disable jumper, motor output connector, optional EMI capacitors.
TB6600 Interface
  • GPIO8 PUL, GPIO9 DIR, GPIO10 ENA.
  • Use open-drain/current-sink channels, not direct ESP32 drive.
  • Connector: 6-pin PUL+, PUL-, DIR+, DIR-, ENA+, ENA-.
  • Default common-anode: positives through resistor footprints to +5V_LOGIC, negatives switched to GND by 2N7002 or equivalent.
  • Include jumpers/0 ohm options for bypass/debug/common-anode disconnect.
myRIO UART
  • 3.3 V, 9600 baud, 8N1.
  • GPIO43 ESP_TX_TO_MYRIO_RX, GPIO44 ESP_RX_FROM_MYRIO_TX.
  • 4-pin connector: ESP_TX, ESP_RX, GND, NC/optional 3V3 reference marked not for powering myRIO.
  • Series resistors, low-cap ESD, test points, removable jumpers.
Interfaces and Connections

Table


ConnectorFunctionPins
J1BATTERY_INBAT+, BAT-
J2MD10A_POWERMD10A_VBAT, GND_POWER
J3TB6600_POWERTB6600_VBAT, GND_POWER
J4MYRIO_POWERMYRIO_PWR+, MYRIO_GND
J5TB6600_CONTROLPUL+, PUL-, DIR+, DIR-, ENA+, ENA-
J6MYRIO_UARTESP_TX, ESP_RX, GND, NC/3V3_REF not for power
J7-J10MIC1-MIC43V3_AUDIO, GND/AGND, SIGNAL
J11MG996R_GRIPPERGND, 5V_SERVOS, GPIO11 signal
J12SG90_MARKERGND, 5V_SERVOS, GPIO12 signal
J13MARKER_MOTORMOTOR_A, MOTOR_B
J14USB-CNative ESP32-S3 USB programming/debug
Fixed ESP32 GPIO Map

Table


GPIONet / FunctionNotes
4MIC1_ADCphysical microphone angle -135 deg
5MIC2_ADCphysical microphone angle -45 deg
6MIC3_ADCphysical microphone angle +45 deg
7MIC4_ADCphysical microphone angle +135 deg
8STEPPER_PULTB6600 open-drain driver input
9STEPPER_DIRTB6600 open-drain driver input
10STEPPER_ENATB6600 open-drain driver input
11PWM_GRIPPERMG996R servo
12PWM_MARKER_SERVOSG90 servo
19USB_D-native USB
20USB_D+native USB
38MARKER_PWM_ENAno LED/fixed load
39MARKER_IN1marker motor logic
40MARKER_IN2marker motor logic
43ESP_TX_TO_MYRIO_RXdedicated myRIO UART
44ESP_RX_FROM_MYRIO_TXdedicated myRIO UART
Power and Runtime Expectations
  • Battery is nominal 12 V, preliminary operating range 9-15 V.
  • All battery-connected parts must tolerate at least 18 V; battery-rail capacitors >=25 V preferred.
  • Exact battery chemistry and full-charge voltage are TBD; TVS and fuse values remain provisional.
  • Main design priority is preventing ESP32 brownouts during simultaneous servo/motor startup.
Power Tree and Preliminary Power Budget

Table


Rail / BranchSourceTarget CurrentNotes
BAT_PROTECTEDBattery after protectionTBD totalMust include MD10A + TB6600 + myRIO + 5 V converter input
MD10A_VBATBAT_PROTECTED10 A provisionalExternal harness required if measured continuous current exceeds PCB capability
TB6600_VBATBAT_PROTECTED5 A provisionalDepends on configured motor current
MYRIO_PWR+BAT_PROTECTED through eFuse2.5 A provisionalOVP below 16 V
+5V_MAINTPSM636108 A continuous / 10 A peak5 V rail source
+5V_LOGIC+5V_MAIN branch1.5 A provisionalFeeds 3.3 V regulators and logic
+5V_SERVOS+5V_MAIN branch5 A continuous provisionalLarge bulk required for servo peaks
+5V_MARKER+5V_MAIN branch3 A provisionalFeeds marker H-bridge
+3V3_DIGITAL+5V_LOGIC regulator>=1 AESP32 rail
+3V3_AUDIO+5V_LOGIC LDO>=300 mAGY-MAX4466 modules only
PCB Stackup and Rules
  • Board: target 120 mm x 90 mm or smaller if thermal/routing allow.
  • Layers: 4-layer PCB.
  • L1: components, signals, short high-current pours, switching regulator.
  • L2: unbroken GND plane, not split.
  • L3: power planes/wide distribution for BAT_PROTECTED, +5V_MAIN, branches, +3V3 rails.
  • L4: low-speed signals, additional power pours, ground pours, connector routing.
  • Copper: 2 oz external, at least 1 oz internal, 2 oz internal preferred if cost permits.
  • USB_D+/D-: controlled 90 ohm differential pair, length matched within 0.5 mm.
  • Net classes follow user-provided preliminary widths for SIGNAL, ANALOG, USB_DIFF, POWER_1A, POWER_2P5A, POWER_3A, POWER_5A, POWER_8A, POWER_10A.
Physical Design Expectations
  • Four 3.2 mm mounting holes for M3 screws, 3 mm copper/component keepout.
  • All external connectors at PCB edges.
  • Power connectors on power side; microphones on analog side; USB accessible at edge.
  • ESP32 antenna at board edge with keepout clear of copper/components/metal/cables.
  • Separate placement zones: A power input/distribution, B 5 V/motor/servo, C ESP32/digital/USB/UART/TB6600 logic, D audio/microphone analog.
  • Silkscreen: board name, revision, connector polarity, power warnings, GPIO/function labels.
Manufacturing and Assembly Expectations
  • Four-layer prototype board with adequate copper weight and thermal vias.
  • Use sourceable manufacturer parts for all ICs/connectors/protection components.
  • Use generic passives only where values/ratings/packages are specified.
  • Use manufacturer reference layouts for ESP32-S3-WROOM-1, TPSM63610, TPS25947, DRV8874, TPS7A2033, and selected 3.3 V digital regulator.
Firmware-Relevant Hardware Requirements
  • Native USB programming/debug only; no external USB-UART bridge.
  • GPIO43/GPIO44 reserved exclusively for myRIO UART.
  • Preserve existing L298N-style marker motor firmware signals using AND-gate gating.
  • Add test pads for every used GPIO and key rails.
  • ESP32 user/status LED allowed only on an unused GPIO that is not GPIO38 and not a problematic boot strap pin.
Important Design Decisions
  • Use ESP32-S3-WROOM-1 module rather than bare chip for RF reliability.
  • Use a high-current synchronous buck module TPSM63610 for +5V_MAIN.
  • Use protected/fused 5 V branches to isolate servo and motor transients from logic and audio.
  • Use continuous ground plane; do not split AGND/DGND.
  • Use TB6600 current-sink interface so ESP32 does not directly drive optocoupler inputs.
  • myRIO power is from protected battery through eFuse, not from XL6009 boost and not from UART connector.
  • Do not add ESP32-to-MD10A control connector.
Assumptions and TBD Values
  • Battery chemistry, full-charge voltage, and transient profile are TBD.
  • Final input TVS standoff voltage is TBD until battery maximum is known.
  • Main input fuse and branch fuse values are TBD until measured currents are available.
  • MD10A continuous and peak traction current are TBD.
  • TB6600 configured motor current is TBD.
  • SG90 and MG996R stall currents in this robot are TBD.
  • Yellow marker motor stall current is TBD; DRV8874 current limit provisional.
  • Exact TB6600 module optocoupler input circuit is TBD; resistor values must be confirmed.
  • Exact myRIO-1900 maximum input limits must be verified against NI documentation and final battery voltage.
  • Final USB impedance trace width/spacing depends on selected fabricator stackup.
Warning List Before Fabrication
  • Do not fabricate until battery full-charge voltage is confirmed below the myRIO branch OVP and the myRIO-1900 input maximum.
  • Do not finalize fuse values without measured motor/servo/traction currents.
  • Do not declare USB impedance complete without final stackup from the PCB fabricator.
  • Do not autoroute high-current power stage, TPSM63610 layout, USB differential pair, or microphone ADC traces without manual review.
  • Confirm ESP32-S3-WROOM-1 suffix availability and pin compatibility before BOM lock.
Change Notes
  • Initial requirements imported from pasted user brief on 2026-07-11.
  • Project renamed from draft placeholder to DSM ESP32-S3 Controller.
  • Project Overview

  • Intended Use

  • What the Device Should Do

  • Main Features

  • System Architecture

  • Hardware Subsystems

  • Battery Input and 12 V Distribution

  • 12 V Branches

  • 5 V Power

  • ESP32-S3 and USB

  • Microphone Analog Section

  • Servo Outputs

  • Marker Motor H-Bridge

  • TB6600 Interface

  • myRIO UART

  • Interfaces and Connections

  • Fixed ESP32 GPIO Map

  • Power and Runtime Expectations

  • Power Tree and Preliminary Power Budget

  • PCB Stackup and Rules

  • Physical Design Expectations

  • Manufacturing and Assembly Expectations

  • Firmware-Relevant Hardware Requirements

  • Important Design Decisions

  • Assumptions and TBD Values

  • Warning List Before Fabrication

  • Change Notes