Power Distribution Schematic Design
BATTERY_SENSE_GPIO34 to GND, labeled as optional ADC noise filter / C_BATSENSE in its role details. I verified R3 remains 100kΩ, R4 remains 22kΩ, and BATTERY_SENSE_GPIO34 still connects to U1 GPIO34, R3/R4 midpoint, TP5, and C12.U1:VP missing-power symbol warning; unrelated to this change.BAT_12V, FAN_GND, and servo power.BAT_IN, fused BAT_12V, and common GND.BAT_12V; output: 5V; return: GND.5V and provides 3V3 for sensor modules.SPI_CLK_GPIO18, SPI_DO_GPIO19.CS_DOME_GPIO5, CS_FOOD1_GPIO14, CS_FOOD2_GPIO27, CS_FOOD3_GPIO26, CS_FOOD4_GPIO25.DOME_TC, J5 FOOD1_TC, J6 FOOD2_TC, J7 FOOD3_TC, J8 FOOD4_TC; pin 1 = T+, pin 2 = T-.BAT_12V/FAN_12V, pin 2 = FAN_GND switched return.FAN_GND, source = GND, gate driven via R1.BAT_12V, anode to FAN_GND.FAN_PWM_GPIO23 through R1; gate node uses the existing FAN_PWM net with R2 pull-down to GND.BAT_12V to BATTERY_SENSE_GPIO34.BATTERY_SENSE_GPIO34 to GND.BATTERY_SENSE_GPIO34.BAT_12V/SERVO_12V, pin 2 = GND, pin 3 = SERVO_DATA.SERVO_TX_GPIO17, then R5 1kΩ to SERVO_DATA.SERVO_RX_GPIO16, then R6 1kΩ to SERVO_DATA.BAT_12V5V3V3GNDBATTERY_SENSE_GPIO34SERVO_DATATable
| Function | ESP32 GPIO | Net | Connected To |
|---|---|---|---|
| Thermocouple SPI clock | GPIO18 | SPI_CLK_GPIO18 | U3-U7 SCK |
| Thermocouple SPI data out | GPIO19 | SPI_DO_GPIO19 | U3-U7 SO |
| Dome thermocouple CS | GPIO5 | CS_DOME_GPIO5 | U3 CS |
| Food Probe 1 CS | GPIO14 | CS_FOOD1_GPIO14 | U4 CS |
| Food Probe 2 CS | GPIO27 | CS_FOOD2_GPIO27 | U5 CS |
| Food Probe 3 CS | GPIO26 | CS_FOOD3_GPIO26 | U6 CS |
| Food Probe 4 CS | GPIO25 | CS_FOOD4_GPIO25 | U7 CS |
| Blower PWM command | GPIO23 | FAN_PWM_GPIO23 | R1 to Q1 gate node |
| Battery ADC input | GPIO34 | BATTERY_SENSE_GPIO34 | R3/R4 divider midpoint |
| Servo UART TX2 | GPIO17 | SERVO_TX_GPIO17 | R5 to SERVO_DATA |
| Servo UART RX2 | GPIO16 | SERVO_RX_GPIO16 | R6 to SERVO_DATA |
BAT_IN, passes through F1, and becomes fused BAT_12V. BAT_12V powers the LM2596 input, STS3215 servo connector, blower fan connector, flyback diode cathode, and the battery divider. U2 generates 5V for the ESP32 DevKit. The ESP32 DevKit provides 3V3 for the MAX31855 thermocouple channels. All returns share one GND net.Table
| Connector | Channel | MAX31855 | Pin 1 | Pin 2 |
|---|---|---|---|---|
| J4 | DOME_TC | U3 | T+ | T- |
| J5 | FOOD1_TC | U4 | T+ | T- |
| J6 | FOOD2_TC | U5 | T+ | T- |
| J7 | FOOD3_TC | U6 | T+ | T- |
| J8 | FOOD4_TC | U7 | T+ | T- |
BAT_12V; J3 pin 2 returns through Q1 drain on FAN_GND. ESP32 GPIO23 drives the MOSFET gate through R1 = 220Ω, and R2 = 10kΩ pulls the gate off during reset/boot. D4 clamps inductive flyback from FAN_GND back to BAT_12V.SERVO_DATA. This preserves a single-wire bus for STS3215 and future daisy-chained STS servos.V_ADC = 15V × 0.1803 = 2.70VI = 15V / 122kΩ = 123µABAT_12V5V3V3GNDSPI_CLK_GPIO18SPI_DO_GPIO19CS_DOME_GPIO5CS_FOOD1_GPIO14CS_FOOD2_GPIO27CS_FOOD3_GPIO26CS_FOOD4_GPIO25FAN_PWM_GPIO23BATTERY_SENSE_GPIO34SERVO_DATASERVO_TX_GPIO17SERVO_RX_GPIO16Table
| Pair | Result |
|---|---|
BAT_12V and 5V | Separate nets; no short found |
5V and 3V3 | Separate nets; no short found |
BAT_12V and 3V3 | Separate nets; no short found |
SERVO_DATA and GND | Separate nets; no short found |
FAN_PWM and BAT_12V | Separate nets; no short found |
U1:VP missing power. This is documented as intentional/unrelated for this design because GPIO34 is used for battery sensing, while the ESP32 DevKit symbol’s VP pin is not used by the circuit.BAT_12V, fan, and servo paths wider/shorter than logic signals.BATTERY_SENSE_GPIO34 filter capacitor near the ESP32 ADC pin.Functional Block Organization
ESP32 GPIO Pin Map
Power Flow
Thermocouple Connector Labels
Fan Driver Operation
STS3215 Half-Duplex Bus Wiring
Battery Divider Calculation
Net Label Review
No-Short Verification
ERC Review Result
Layout Readiness Notes