ESP32 S3 Boot start issue
Posted: Wed Nov 19, 2025 5:22 am
Hello experts,
I am attaching the schematic of my custom hardware based on the ESP32-S3-WROOM-1-N16 module. The design follows the ESP32-S3 DevKit-C1 reference, and all required components are included. I am also attaching the power supply schematic to show that the power rails are clean and stable.
Use case:
I am using the ESP32-S3 as an I2C master, communicating with multiple I2C slave units. A NeoPixel LED is also connected for status indication.
Problem:
During the first boot after a manual power-on reset, everything works perfectly.
However, if the supply is removed for a long time (idle mode when the system is unused) and then reapplied, the ESP32-S3 fails to start correctly. The system appears stuck — the NeoPixel LED does not light up, the I2C bus is inactive, and the MCU does not execute any code.
If I press the reset button after this stuck state, the ESP32-S3 starts working immediately. This indicates the issue occurs only on the very first boot after a long idle period without power.
Hardware notes:
• All recommended decoupling capacitors are placed on the power rails, including a tantalum capacitor on the stacker board to prevent voltage drops when power is supplied through long cables (>15 cm).
• For troubleshooting, after a successful boot I removed the ESP32 PCB from the stacker and measured the I/O voltages. I observed a small millivolt-level voltage present on some lines.
• This small voltage appears to come from the RTC internal pull-ups powered by the RTC supercapacitor backup. To test this, I removed the super cap from the PCB, but the issue remained the same.
Additional observation:
Last night I unplugged the power supply. This morning, after plugging it back in, the ESP32-S3 again remained stuck during the first startup. Unplugging and re-plugging the power supply (which acts as a power-on reset) made it boot normally on the second attempt.
This seems like a strange issue, and it consistently happens only after long idle periods.
Has anyone experienced a similar problem, or is this a rare case?
I am attaching the schematic of my custom hardware based on the ESP32-S3-WROOM-1-N16 module. The design follows the ESP32-S3 DevKit-C1 reference, and all required components are included. I am also attaching the power supply schematic to show that the power rails are clean and stable.
Use case:
I am using the ESP32-S3 as an I2C master, communicating with multiple I2C slave units. A NeoPixel LED is also connected for status indication.
Problem:
During the first boot after a manual power-on reset, everything works perfectly.
However, if the supply is removed for a long time (idle mode when the system is unused) and then reapplied, the ESP32-S3 fails to start correctly. The system appears stuck — the NeoPixel LED does not light up, the I2C bus is inactive, and the MCU does not execute any code.
If I press the reset button after this stuck state, the ESP32-S3 starts working immediately. This indicates the issue occurs only on the very first boot after a long idle period without power.
Hardware notes:
• All recommended decoupling capacitors are placed on the power rails, including a tantalum capacitor on the stacker board to prevent voltage drops when power is supplied through long cables (>15 cm).
• For troubleshooting, after a successful boot I removed the ESP32 PCB from the stacker and measured the I/O voltages. I observed a small millivolt-level voltage present on some lines.
• This small voltage appears to come from the RTC internal pull-ups powered by the RTC supercapacitor backup. To test this, I removed the super cap from the PCB, but the issue remained the same.
Additional observation:
Last night I unplugged the power supply. This morning, after plugging it back in, the ESP32-S3 again remained stuck during the first startup. Unplugging and re-plugging the power supply (which acts as a power-on reset) made it boot normally on the second attempt.
This seems like a strange issue, and it consistently happens only after long idle periods.
Has anyone experienced a similar problem, or is this a rare case?