Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Start with one question: can your ESP32 disconnect from Wi-Fi while idle, or must it remain connected and reachable? If it can go offline, deep sleep is the option to consider for long idle periods. If it must stay associated with its access point, use Wi-Fi modem sleep or automatic light sleep instead. Those modes have different effects on connectivity, response time, and current draw.

There is no universal ESP32 sleep-current figure: the complete board, attached circuitry, firmware, and access point affect what you measure. Espressif’s ESP-IDF v6.1 figures are reference averages from testing in a shielded box, not guarantees for a development board.

Choose a sleep mode based on connectivity and work during idle time

Mode Connection and execution Best fit Main trade-off
Deep sleep Wi-Fi and Bluetooth connections are not maintained. CPUs and most digital peripherals are powered down; wake returns through a restart path rather than continuing ordinary CPU execution. Long idle periods when the device can go offline, such as periodic sensing and reporting. Account for reconnection and application startup in each work cycle. Configure the wake source before starting sleep.
Wi-Fi modem sleep The radio sleeps between Wi-Fi activity and DTIM/listen intervals; the association is maintained and the CPU remains active. The device must stay connected and continue processing. Current is much higher than deep sleep and varies with traffic, access-point behavior, and configuration.
Modem sleep with dynamic frequency scaling (DFS) Combines modem sleep with CPU and APB frequency adjustment during eligible idle periods. Connected operation where the CPU must remain available but can run at lower frequencies while idle. Workload, timing needs, and power-management locks can prevent lower frequencies.
Automatic light sleep with Wi-Fi The CPU is suspended during idle periods; ESP-IDF coordinates wake timing with Wi-Fi so the device can maintain its connection. A connected workload with meaningful idle gaps. Requires power management and FreeRTOS tickless idle. Interrupt timing and latency behavior change during sleep.

Deep sleep is not the same as Wi-Fi modem sleep: deep sleep shuts down more of the system and disconnects, while modem sleep reduces radio activity with the CPU still running. Automatic light sleep is a coordinated connected-idle option; do not assume that manually entering ordinary light sleep preserves a Wi-Fi connection.

Reference current figures, not board guarantees

Espressif’s ESP-IDF Programming Guide v6.1, accessed in 2026, reports average current measured in a shielded box. The values below are reference results; the documentation does not establish them as expected readings for a particular development board.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
ESP-WROOM-32 ESP32 ESP-32S Development Board 2.4GHz Dual-Mode WiFi + Bluetooth Dual Cores Microcontroller Processor Integrated with Antenna RF AMP Filter AP STA Compatible with Arduino IDE (3PCS)
  • 2.4GHz Dual Mode WiFi + Bluetooth Development Board
  • Support LWIP protocol, Freertos
  • SupportThree Modes: AP, STA, and AP+STA
  • Ultra-Low power consumption, Compatible with Arduino IDE
  • ESP32 is a safe, reliable, and scalable to a variety of applications
Access point DTIM setting Modem sleep Modem sleep + DFS Automatic light sleep
DTIM 1 31.12 mA 22.65 mA 3.34 mA
DTIM 3 28.81 mA 21.89 mA 2.33 mA
DTIM 10 29.66 mA 20.01 mA 2.19 mA

The same guide lists 5 μA average for deep sleep. That is also a documented test result, not a promise about a complete ESP32 board. DTIM timing is set by the access point: shorter DTIM cycles generally leave less room for Wi-Fi power savings. Compare connection continuity, response needs, retained state, supported wake sources, and average as well as peak current—not only a sleep-current headline.

Configure a deep-sleep wake source

ESP-IDF wake sources are enabled with the relevant esp_sleep_enable_X_wakeup API before calling the sleep-start API. A previously enabled wake source remains enabled after wake unless the application disables it explicitly.

Rank #2
Sale
ELEGOO 3PCS ESP-32 Dev Boards, ESP-WROOM-32, USB-C, WiFi Bluetooth 4.2
  • Dual-Core Performance Up to 240 MHz: Run sensor processing, wireless communication, automation logic and connected-device tasks on a 32-bit dual-core ESP32 platform designed for responsive embedded and IoT projects
  • Built-in Wi-Fi and Bluetooth 4.2: Connect to 2.4 GHz Wi-Fi networks or use Bluetooth Classic and BLE for wireless sensors, smart devices, remote controls, home automation and other connected projects
  • Flexible Power-Saving Modes: ESP32 power-management features support dynamic clock scaling and low-power operating modes, helping developers reduce energy use in compatible sensing, monitoring and connected-device applications, suitable for battery-powered Internet of Things (IoT) devices.
  • USB-C Programming with CP2102: Connect through USB-C for power, sketch uploads and serial monitoring, while GPIO, UART, SPI and I2C interfaces support sensors, displays, motor drivers and other modules (USB-C cable not included)
  • Over-the-Air Update Support: Configure OTA functionality through a compatible ESP-32 software framework to update deployed firmware over Wi-Fi without reconnecting the board by USB for every revision
  1. Choose a trigger that matches the job. Use a timer for scheduled work, a supported RTC GPIO for an external signal, or ULP monitoring when a condition must be checked while the main CPU sleeps.
  2. Check target-specific constraints. Verify the exact ESP32 target, silicon revision, module and board pin routing, wake-source combinations, and required RTC power domains before choosing a pin.
  3. Configure the wake source and required retained resources. Enable the wake API and keep only the RTC memory or peripheral domains needed for the trigger and retained data.
  4. Enter sleep only after preparing the application. If radios are active and the selected sleep mode disconnects them, stop Wi-Fi or Bluetooth using the relevant driver calls before sleep.
  5. Handle wake as a new work cycle. Check the wake cause and restore application state, peripherals, and network connectivity as the design requires.

Available wake sources and their constraints

  • Timer: The API accepts a duration in microseconds, but actual resolution depends on the selected RTC slow-clock source.
  • EXT0: Monitors one RTC IO at a selected logic level and keeps the RTC peripheral domain on during sleep. On ESP32 silicon revisions 0 and 1, EXT0 cannot be combined with ULP or touch wakeup. After an EXT0 wake, the pad is configured as RTC IO; call rtc_gpio_deinit() if you need to use it as ordinary digital GPIO.
  • EXT1: Monitors multiple RTC GPIOs with supported any-high or all-low logic. Pin availability and restrictions depend on the target.
  • Touch: Requires configuring the touch-pad interrupt before sleep and has silicon-revision and power-domain restrictions.
  • ULP: Lets the ULP coprocessor monitor conditions such as sensor, ADC, or GPIO readings while the main CPU sleeps; it requires RTC SLOW memory to remain powered.
  • GPIO wake: Light-sleep GPIO wake may use RTC or digital IO, subject to power-domain details. The current ESP32 deep-sleep GPIO wake API is limited to GPIOs powered by VDD3P3_RTC.

Do not select a wake pin from a generic ESP32 pinout alone. Consult the target’s documentation and the ESP32 datasheet’s IO Pins section for the applicable pin set, then check the board schematic and external pull resistors. Pulls, driven external signals, and RTC-domain choices can create current paths or affect whether wake works reliably.

Set up connected Wi-Fi power saving in ESP-IDF

Use modem sleep when the CPU must keep working

For a connected station, ESP-IDF selects modem-sleep behavior through esp_wifi_set_ps(). WIFI_PS_MIN_MODEM follows DTIM behavior. WIFI_PS_MAX_MODEM uses a configured listen interval; a large interval can cause the station to miss DTIM or broadcast data. Choose an interval that meets the application’s delivery and responsiveness needs, and account for the access point’s DTIM setting.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Sale
ELEGOO ESP-32 Super Starter Kit with Tutorial Compatible with Arduino IDE
  • Powerful ESP-32 Board: Unlock the world of Internet of Things (IoT) and advanced electronics with the heart of this kit: the ESP-32 board. It features a powerful dual-core processor, integrated Wi-Fi and Bluetooth 4.2, making it perfect for building connected, smart devices that communicate with your phone or the cloud. It's fully compatible with the Arduino IDE for easy programming.
  • Super Starter Kit: This kit contains over 35 different modules and electronic components, including sensors, displays, motors, and input devices. From LEDs and buttons to an OLED screen, servo motor, and keypad, you have everything needed to explore a vast range of projects in one box.
  • Step by Step Online Tutorial: Jump right in with our detailed, beginner-friendly tutorial. Access 30+ projects with complete code, clear circuit diagrams, and step-by-step instructions. Learn the fundamentals of electronics, coding, and how to utilize the ESP-32's unique capabilities without any prior experience.
  • Hands-on Learning for All Skill Levels: Perfect for students, makers, engineers, and hobbyists. Start with basic circuits and coding, then progress to intermediate and advanced IoT applications. Build practical projects like weather stations, smart home controllers, remote-controlled devices, and interactive gadgets. The skills you learn are the foundation for real-world innovation.
  • Quality & Great Support: Elegoo is committed to quality. We provide a clear, detailed tutorial guide, refined code, and a well-organized component kit. All modules are carefully selected for reliability and ease of use. Our dedicated technical support team and active online community are ready to help you succeed in your learning journey.

Use DFS or automatic light sleep for eligible idle periods

ESP-IDF power management is configured with esp_pm_configure(), which sets maximum and minimum CPU frequencies and whether automatic light sleep is enabled. Automatic light sleep depends on FreeRTOS tickless idle. If CONFIG_FREERTOS_USE_TICKLESS_IDLE is not enabled, configuration returns ESP_ERR_NOT_SUPPORTED.

Automatic light sleep uses timer wakeup internally. Do not manually configure that timer wake source for the same automatic-light-sleep setup. Also audit power-management locks: a component can request maximum CPU or APB frequency, or disable automatic light sleep. Pair lock acquisition and release, and hold a lock only while its performance or peripheral requirement is active.

Rank #4
ESP-WROOM-32 ESP32 ESP-32S Development Board 2.4GHz Dual-Mode WiFi + Bluetooth Dual Cores Microcontroller Processor Integrated with Antenna RF AMP Filter AP STA Compatible with Arduino IDE (1 PCS)
  • 2.4GHz Dual Mode WiFi + Bluetooth Development Board
  • Support LWIP protocol, Freertos;ESP32 is a safe, reliable, and scalable to a variety of applications
  • SupportThree Modes: AP, STA, and AP+STA
  • Ultra-Low power consumption, Compatible with Arduino IDE
  • 1PCS 30Pin ESP32 Development Board 2.4GHz WiFi Dual Cores Microcontroller Integrated with Antenna RF Low Noise Amplifiers Filters
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Find why measured sleep current is too high

  1. Define what you are measuring. Chip or module current is not the same as current for a complete development board. A regulator, USB interface, indicator LED, sensor, or pull network can dominate a board’s sleep reading.
  2. Compare like with like. Keep the supply and workload consistent, change one firmware setting at a time, and measure representative cycles. Compare average behavior as well as peaks during Wi-Fi association and transmission.
  3. Verify that the intended mode is reached. Check for a busy task or a power-management lock that keeps the device out of idle or light sleep.
  4. Inspect GPIO and retained domains. Check pull states, external drive levels, and RTC-domain retention. ESP-IDF documents rtc_gpio_isolate() for pins whose pull configuration causes current flow during deep sleep.
  5. Keep only necessary RTC resources powered. ESP-IDF powers down RTC domains not required by enabled wake sources by default. RTC SLOW memory is retained by default for variables placed there; review whether the wake design actually needs retained memory or peripheral domains.
  6. Review flash behavior, especially for light sleep. ESP-IDF describes a flash-leakage workaround and supported deep-power-down strategies, but powering down flash can be unsafe or counterproductive depending on sleep duration, wake source, flash hardware, capacitors, and IO state. Confirm the SPI flash supports deep power-down before enabling it.

A USB inline current meter can help compare operating modes on a USB-powered board, but check its range and resolution for the current you need to measure. Do not assume a generic USB meter can reliably resolve microamp deep-sleep current; Espressif’s cited guide does not endorse a particular instrument.

Use the figures as a starting point, then validate your design

Espressif’s ESP-IDF v6.1 documentation says Wi-Fi and Bluetooth connections are not maintained in deep sleep or ordinary light sleep. For connected operation, it points to modem sleep and automatic light sleep. The practical choice is therefore determined by whether offline time is acceptable, how quickly the device must respond, and what state must survive idle periods. After selecting a mode, validate the complete board and workload: radio peaks, external circuitry, wake reliability, and actual sleep entry all matter alongside average current.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Best Value
HiLetgo ESP-WROOM-32 ESP32 ESP-32S Development Board 2.4GHz Dual-Mode WiFi + Bluetooth Dual Cores Microcontroller Processor Integrated with Antenna RF AMP Filter AP STA for Arduino IDE
  • 2.4GHz Dual Mode WiFi + Bluetooth Development Board
  • Ultra-Low power consumption, works perfectly with the Arduino IDE
  • Support LWIP protocol, Freertos
  • SupportThree Modes: AP, STA, and AP+STA
  • ESP32 is a safe, reliable, and scalable to a variety of applications

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.