Skip to content

ESP32 Deep Sleep Not Entering

DodaTech Updated 2026-06-26 1 min read

In this tutorial, you'll learn about ESP32 Deep Sleep Not Entering. We cover key concepts, practical examples, and best practices.

The Problem

ESP32 fails to enter deep sleep mode and continues drawing active power.

Quick Fix

Wrong

esp_deep_sleep_start();  // No wake source configured
ESP32 wakes up immediately or does not enter sleep at all.
esp_sleep_enable_timer_wakeup(10 * 1000000);  // 10 seconds
Serial.println("Going to sleep");
Serial.flush();
esp_deep_sleep_start();
// Code never reaches here
Going to sleep
(ESP32 enters deep sleep. Current drops from 80mA to 10uA. Wakes after 10s.)

Prevention

Configure at least one wake source before esp_deep_sleep_start(). Flush serial before sleep. Disconnect peripherals during sleep. Use GPIO hold to maintain pin states. Measure actual current with a multimeter.

DodaTech engineers apply these same patterns across Doda Browser, DodaZIP, and Durga Antivirus Pro for production IoT reliability.

FAQ

### What is the deep sleep current?

ESP32 deep sleep current is ~10 uA with RTC timer. With ULP: ~150 uA. With touch wake: ~50 uA.

How do I wake from deep sleep?

Use timer (esp_sleep_enable_timer_wakeup), external GPIO (ext0/ext1), touch pad, or ULP coprocessor.

Does setup() run after wake?

Yes. ESP32 always starts from setup() after deep sleep. Check wake cause with esp_sleep_get_wakeup_cause().

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro