ESP32 Heater Controller


Okay. I had to move R4 and J7. Sorry if that messes anything up.
Also. There are still issues. RT6 is only connected on one side. C23. RT4 C25. C14. Countless others are only wired up on one size.
Also, ESP32 devkits have a capacitor? Or resistor? That is wired in so you can flash firmware without the S1 and S2 buttons. And I'm not sure if the buttons are necessary, so I'm happy to save money if we can safely nix them.
I’ll re-check the layout after your R4/J7 move, distinguish PCB airwires from actual schematic one-sided wiring, then evaluate whether BOOT/RESET buttons can be removed in favor of ESP32-S3 native USB auto-download behavior.
Done.
Accomplished:
  • Verified RT6/C25, RT4/C23, C14, and related passives are schematic-connected on both sides; the issue was PCB routing/airwires, not one-sided schematic wiring.
  • Removed optional S1 BOOT and S2 RESET buttons to save BOM/assembly cost.
  • Kept the important ESP32 support: R4 GPIO0 pull-up, R3 EN pull-up, and C11 EN reset-delay cap.
  • Cleaned stale routing from your R4/J7 move and re-routed.
  • Final checked categories are clean: no airwires, dangling traces, copper overlaps, invalid layers, or relevant ERC errors.
Open items:
  • If we want best serviceability, add tiny labeled test pads for GPIO0/BOOT and EN/RESET later; they are cheaper than buttons and useful for recovery.
Suggested next steps:
  1. Visually inspect the routed PCB.
  2. Add/verify GND pours and antenna keepout.
  3. Run full manufacturing DRC before export.
  4. Update firmware/bring-up docs to note USB flashing without BOOT/RESET buttons.
Pours, keepout, docs
Add test pads
Verify GND pours
Check antenna keepout
Update docs
Manufacturing review

J1
U3
U2
U5
RT2
Resistance
10kΩ
RT6
Resistance
10kΩ
RT1
Resistance
10kΩ
J2
RT5
Resistance
10kΩ
J3
J5
D4
RT3
Resistance
10kΩ
RT4
Resistance
10kΩ
J4
U1
Q1
Q4
Q3
D1
Q2
SW1
D3
DS1
U4
D2
L1
Inductance
4.7µH
J7
C24
Capacitance
100nF
C25
Capacitance
100nF
C1
Capacitance
10uF
C21
Capacitance
100nF
C9
Capacitance
100nF
C4
Capacitance
47nF
C13
Capacitance
1uF
C22
Capacitance
100nF
C12
Capacitance
1uF
C23
Capacitance
100nF
C50
Capacitance
10nF
C11
Capacitance
1uF
C20
Capacitance
100nF
C5
Capacitance
10uF
C8
Capacitance
100nF
C3
Capacitance
10uF
C14
Capacitance
100nF
C6
Capacitance
22uF
C7
Capacitance
22uF
C15
Capacitance
100nF
C2
Capacitance
1uF
C52
Capacitance
100nF
C10
Capacitance
10uF
C51
Capacitance
10nF
L1 P2 - U3 FB
U2 VBUS_EN_SNK - R9 P2
J1 DP2 - U5 I/O1
U1 TXD0 - J7 3
U1 IO18 - SW1 B
U1 IO8 - U2 SCL
J1 VBUS_B - C1 P1
R42
Resistance
220Ω
U1 IO8 - U2 SCL
U4 DV/DT - C4 P1
Q1 D - J2 2
U1 IO1 - R30 P2
U1 IO4 - R33 P2
R33
Resistance
10kΩ
R5
Resistance
470Ω
U1 IO3 - R32 P2
U1 IO13 - R23 P1
U2 VREG_1V2 - C12 P1
L1 P2 - U3 FB
J1 DP2 - U5 I/O1
U1 IO6 - R35 P2
Q3 D - J4 2
U4 EN - R2 P2
U1 IO16 - R42 P1
U1 RXD0 - J7 4
R27
Resistance
100kΩ
R8
Resistance
4.7kΩ
L1 P2 - U3 FB
U1 IO19 - J1 DN1
U1 IO4 - R33 P2
U1 IO2 - R31 P2
U1 IO9 - U2 SDA
R41
Resistance
220Ω
J1 VBUS_B - C1 P1
U1 IO21 - SW1 2
R20 P2 - Q1 G
J1 CC2 - U2 CC2
J1 VBUS_B - C1 P1
J1 CC1 - U2 CC1
R52
Resistance
10kΩ
L1 P2 - U3 FB
U1 IO6 - R35 P2
U4 ILIMIT - R1 P1
U1 EN - R3 P2
R40
Resistance
560Ω
U1 IO18 - SW1 B
R3
Resistance
10kΩ
R24
Resistance
100kΩ
J1 CC1 - U2 CC1
U3 SW - L1 P1
L1 P2 - U3 FB
U2 VBUS_EN_SNK - R9 P2
R51
Resistance
10kΩ
Q1 D - J2 2
U1 IO9 - U2 SDA
U1 IO18 - SW1 B
U1 IO1 - R30 P2
U1 IO2 - R31 P2
R1
Resistance
1.1kΩ
Q3 D - J4 2
U1 IO6 - R35 P2
U1 IO8 - U2 SCL
U1 IO5 - R34 P2
U4 SOURCE - C3 P1
U1 IO1 - R30 P2
L1 P2 - U3 FB
U4 SOURCE - C3 P1
U1 TXD0 - J7 3
U3 SW - L1 P1
U1 EN - R3 P2
U1 IO5 - R34 P2
U2 ALERT - R8 P2
U1 IO10 - R20 P1
R30
Resistance
10kΩ
R32
Resistance
10kΩ
L1 P2 - U3 FB
U1 IO5 - R34 P2
R21 P2 - Q2 G
U1 IO14 - R40 P1
U2 VBUS_VS_DISCH - R5 P2
U1 IO3 - R32 P2
Q2 D - J3 2
J1 VBUS_B - C1 P1
U1 RXD0 - J7 4
U1 IO5 - R34 P2
U1 IO19 - J1 DN1
R22 P2 - Q3 G
R7
Resistance
4.7kΩ
U1 IO10 - R20 P1
U1 IO21 - SW1 2
U1 IO21 - SW1 2
J1 VBUS_B - C1 P1
Q4 D - J5 2
R20 P2 - Q1 G
J1 CC2 - U2 CC2
U4 SOURCE - C3 P1
U2 ALERT - R8 P2
L1 P2 - U3 FB
U1 IO6 - R35 P2
R6
Resistance
4.7kΩ
U1 IO17 - SW1 A
U1 IO17 - SW1 A
L1 P2 - U3 FB
R21 P2 - Q2 G
L1 P2 - U3 FB
U1 IO9 - U2 SDA
R41 P2 - D3 K
U1 IO19 - J1 DN1
U4 SOURCE - C3 P1
R31
Resistance
10kΩ
U4 SOURCE - C3 P1
U1 IO2 - R31 P2
L1 P2 - U3 FB
L1 P2 - U3 FB
L1 P2 - U3 FB
U1 IO11 - R21 P1
L1 P2 - U3 FB
L1 P2 - U3 FB
U1 IO4 - R33 P2
U1 IO17 - SW1 A
R42 P2 - D4 K
L1 P2 - U3 FB
R50
Resistance
10kΩ
R22 P2 - Q3 G
J1 VBUS_B - C1 P1
R40 P2 - D2 K
U1 IO8 - U2 SCL
J1 CC2 - U2 CC2
J1 VBUS_B - C1 P1
R23 P2 - Q4 G
J1 VBUS_B - C1 P1
L1 P2 - U3 FB
U2 VREG_2V7 - C13 P1
U1 IO19 - J1 DN1
U1 IO11 - R21 P1
R20
Resistance
100Ω
U1 EN - R3 P2
U1 IO1 - R30 P2
U1 IO3 - R32 P2
R34
Resistance
10kΩ
U1 IO0 - R4 P2
U1 IO15 - R41 P1
L1 P2 - U3 FB
U1 IO12 - R22 P1
U1 IO20 - J1 DP1
U4 SOURCE - C3 P1
R9
Resistance
100kΩ
J1 VBUS_B - C1 P1
R23
Resistance
100Ω
U4 SOURCE - C3 P1
U4 SOURCE - C3 P1
U1 IO3 - R32 P2
R35
Resistance
10kΩ
L1 P2 - U3 FB
U2 ALERT - R8 P2
R2
Resistance
300kΩ
U1 IO16 - R42 P1
U3 SW - L1 P1
U1 IO20 - J1 DP1
R41 P2 - D3 K
U4 SOURCE - C3 P1
R23 P2 - Q4 G
U4 ILIMIT - R1 P1
Q2 D - J3 2
R20 P2 - Q1 G
U2 VREG_2V7 - C13 P1
L1 P2 - U3 FB
R4
Resistance
10kΩ
U1 IO2 - R31 P2
U4 EN - R2 P2
R21 P2 - Q2 G
L1 P2 - U3 FB
R22 P2 - Q3 G
J1 VBUS_B - C1 P1
R40 P2 - D2 K
U3 BST - C8 P1
U4 DV/DT - C4 P1
U3 BST - C8 P1
L1 P2 - U3 FB
U1 IO0 - R4 P2
L1 P2 - U3 FB
U1 IO13 - R23 P1
L1 P2 - U3 FB
R25
Resistance
100kΩ
U1 IO17 - SW1 A
U2 VREG_1V2 - C12 P1
U1 IO19 - J1 DN1
U1 IO12 - R22 P1
R21
Resistance
100Ω
R26
Resistance
100kΩ
R42 P2 - D4 K
U1 IO21 - SW1 2
U2 VBUS_VS_DISCH - R5 P2
R23 P2 - Q4 G
J1 DP2 - U5 I/O1
L1 P2 - U3 FB
U1 IO9 - U2 SDA
R22
Resistance
100Ω
L1 P2 - U3 FB
J1 CC1 - U2 CC1
U1 IO18 - SW1 B
J1 VBUS_B - C1 P1
U1 IO4 - R33 P2
U1 IO15 - R41 P1
Q4 D - J5 2
L1 P2 - U3 FB
U1 IO14 - R40 P1
Q1 S - Q2 S
Q1 S - Q2 S
RT1 2 - RT2 2
SW1 C - C50 P2
J1 SHIELD - C1 P2
Q1 S - Q2 S
U2 EP - U2 VSYS
J1 SHIELD - C1 P2
J1 SHIELD - C1 P2
GND
C6 P2 - C7 P2
Q1 S - Q2 S
Q1 S - Q2 S
U2 EP - U2 VSYS
RT1 2 - RT2 2
RT1 2 - RT2 2
RT1 2 - RT2 2
RT1 2 - RT2 2
J1 SHIELD - C1 P2
C6 P2 - C7 P2
SW1 C - C50 P2
RT1 2 - RT2 2
RT1 2 - RT2 2
SW1 C - C50 P2
U1 GND_11 - J6 1
Q1 S - Q2 S
Q1 S - Q2 S
C6 P2 - C7 P2
SW1 C - C50 P2
C6 P2 - C7 P2
C6 P2 - C7 P2
C6 P2 - C7 P2
J1 SHIELD - J1 SHIELD
U2 EP - U2 VSYS
J1 SHIELD - J1 SHIELD
GND
J1 SHIELD - C1 P2
Q1 S - Q2 S
J1 SHIELD - C1 P2
SW1 C - C50 P2
RT1 2 - RT2 2
SW1 C - C50 P2
SW1 C - C50 P2
GND
J1 SHIELD - C1 P2
C6 P2 - C7 P2
J1 SHIELD - C1 P2
RT1 2 - RT2 2
U2 EP - U2 VSYS
C6 P2 - C7 P2
C6 P2 - C7 P2
C6 P2 - C7 P2
RT1 2 - RT2 2
J1 SHIELD - C1 P2
J1 SHIELD - C1 P2
J1 SHIELD - C1 P2
RT1 2 - RT2 2
C6 P2 - C7 P2
GND
RT1 2 - RT2 2
U2 EP - U2 VSYS
U1 GND_11 - J6 1
Regulatory Block Diagram Description — ESP32 Heater Controller
Functional Blocks

Diagram


USB-C J1 USB ESD U5 and VBUS TVS D1 USB-C PD Sink U2 STUSB4500 Input eFuse U4 MP5036 3.3 V Buck U3 AP63203 ESP32-S3-WROOM-1 U1 4x Low-Side MOSFET Heater Outputs Q1-Q4 Heater Terminals J2-J5 6x PCB NTC Sensors RT1-RT6 OLED/Qwiic J6, Encoder SW1, RGB LEDs D2-D4 UART Header J7
Power Flow
USB-C VBUS enters at J1 as VBUS_RAW, passes through MP5036 eFuse U4, and becomes 5V_PROTECTED. The 5V_PROTECTED rail feeds heater terminal positives J2-J5 and AP63203 buck regulator U3. U3 generates 3V3 for ESP32-S3 U1, STUSB4500 logic interface, Qwiic/display connector, encoder pull-ups, NTC dividers, and status LEDs.
Control Flow
ESP32-S3 U1 reads six NTC dividers via ADC pins, reads encoder/button GPIOs, communicates with STUSB4500 and the Qwiic/display connector over I2C, and switches four low-side MOSFET heater channels with PWM GPIOs. Native USB D+/D- connects U1 to J1 through ESD protection for programming and serial data.
Safety-Relevant Boundaries
  • USB input is assumed SELV/5 V from a certified source.
  • Heater outputs are low voltage but thermally safety-relevant.
  • Wireless transmitter is the ESP32-S3-WROOM-1 module with integrated antenna; final host integration must preserve antenna keepout.
  • STUSB4500 PD configuration must be limited to 5 V-only unless hardware is revised for higher-voltage operation.
  • Functional Blocks

  • Power Flow

  • Control Flow

  • Safety-Relevant Boundaries