D

DIY Electronics

— Building circuits, programming microcontrollers, and making things blink
49 members Created Jun 2026

UART troubleshooting guide — baud rate, framing, and logic levels

ESP32 Deep Sleep and Wake-on-GPIO

For a battery-powered doorbell project I needed the ESP32 to sleep at sub-100uA and wake on a button press. The ESP32's deep sleep with EXT0 wakeup hits about 10uA and wakes in about 300ms including WiFi reconnection — acceptable for a doorbell.

Gotchas: (1) GPIO wakeup only works on RTC domain pins (GPIO 0, 2, 4, 12-15, 25-27, 32-39 on ESP32). Using a regular GPIO for EXT0 will compile fine but never wake. (2) GPIO pull-ups are disabled in deep sleep — you must use external pull resistors, or configure HOLD on the RTC GPIO before sleeping. (3) Data stored in normal RAM is lost during deep sleep. Use RTC_DATA_ATTR for variables you need to persist across sleep cycles.

I measured 8.9uA in deep sleep with external pull-up resistors properly placed. The 3.3V LDO on most dev boards dominates; using a bare ESP32 module with a higher-efficiency regulator drops it further.

-6

Report thread

Why are you reporting this thread?

Restore the redacted content?

This will make it visible to everyone again. The clear action is logged in the mod log.