ESP32 Deep Sleep Current: What the Datasheet Says vs What You'll Actually Measure

You put your ESP32-S3 into deep sleep, wired up your multimeter in series, and read the number: 10 mA. Maybe 12 mA. You blinked, rechecked your code, re-read the datasheet, and tried again. Still milliamps. The datasheet says 7 µA. You’re off by a factor of 1,000.
Your code is fine. Your wiring is fine. Your meter is telling you the truth.
The number on the datasheet is also true. It just describes a different thing than what’s sitting on your bench. The ESP32-S3 datasheet spec is for the chip alone, pins measured directly, all peripherals off, on Espressif’s test fixture. Your dev board has a voltage regulator, a USB-to-serial bridge, and a power LED that keep burning milliamps while the ESP32 sleeps peacefully.
This article breaks down exactly where those milliamps go, names the guilty components, and gives you 3 fixes that don’t require designing a custom PCB.
What the ESP32 Datasheet Actually Says About Deep Sleep
The ESP32-S3 datasheet (Section 4.7, “Current Consumption”) lists these numbers:
+---------------------------+------------------+
| Sleep Mode (ESP32-S3) | Datasheet Typ. |
+---------------------------+------------------+
| Deep sleep (RTC on) | ~7 µA |
| Deep sleep (RTC off) | ~1 µA |
| Light sleep | ~240 µA |
| Modem sleep | ~15 mA |
| Active (Wi-Fi TX) | ~310 mA peak |
+---------------------------+------------------+
Source: ESP32-S3 Datasheet v1.6, Section 4.7That ~7 µA figure is measured at the chip’s VDD pins. On Espressif’s own evaluation setup. With all GPIO floating or held. With the RTC memory retained so you can wake up and remember why you went to sleep.
On a bare ESP32-S3 module with a low-quiescent-current power supply, you can hit this number. But it describes the chip, not your dev board, and that distinction is where the frustration lives.
ESP32 Power Consumption in Deep Sleep: What You’ll Measure on a DevKitC-1
On a stock ESP32-S3-DevKitC-1 (the official Espressif dev board, v1.1, using the ESP32-S3-WROOM-1 module), expect 5 to 15 mA in deep sleep. That’s normal. Here’s where it goes:
USB 5V
│
▼
┌──────────────┐
│ AMS1117-3.3 │ ◄── Quiescent current: ~5 mA (always on)
│ (LDO) │
└──────┬───────┘
│ 3.3V rail
├──────────────────┐
│ │
┌────▼─────┐ ┌─────▼──────┐
│ ESP32-S3 │ │ CP2102N │
│ (asleep) │ │ USB-UART │
│ ~7 µA │ │ ~2-5 mA │
└──────────┘ └────────────┘
│
┌────▼─────┐
│ Power LED│ ◄── ~2-3 mA (always on)
└──────────┘Three components. Three constant drains.
The voltage regulator (LDO). LDO stands for “low-dropout regulator,” a simple chip that converts 5V from USB down to 3.3V for the ESP32. The AMS1117-3.3 on the DevKitC-1 has a quiescent current of about 5 mA. “Quiescent current” just means what the regulator draws to keep itself running, even with zero load. It doesn’t care that your ESP32 is asleep. 5 mA, all day, every day.
The USB-UART bridge. The CP2102N (from Silicon Labs) handles USB-to-serial conversion so you can flash and monitor your board over USB. When powered, it draws 2 to 5 mA even with no active serial communication. It just sits on the 3.3V rail, awake and waiting for data that won’t come.
The power LED. That little red or green LED labeled “PWR” on the board? Wired straight to the 3.3V rail through a current-limiting resistor. 2 to 3 mA, constantly, just to tell you the board has power.
These components exist for good reason. They make development easy: plug in USB, upload code, see the light, know it’s working. But none of them help once you’re running on battery. Together they’ll drain a 500 mAh LiPo in about 2 days while the ESP32 does nothing.
Three Fixes That Don’t Require a Custom PCB
Ordered from easiest to slightly more involved. Each one stacks on top of the last.
Fix 1: Power via the 3.3V pin, bypass the LDO
The biggest single offender is the AMS1117. You can sidestep it entirely.
If you have a power source that already outputs regulated 3.3V, wire it directly to the board’s 3.3V pin and GND. Three common options:
- A small buck-boost converter
- A pair of alkaline batteries through a voltage regulator
- A LiFePO4 cell at 3.2V nominal
This feeds the ESP32 and the 3.3V rail without going through the onboard LDO. Savings: roughly 5 mA.
One critical caution: don’t connect USB and your external 3.3V supply at the same time. You’ll backfeed the LDO and potentially damage your power source, the regulator, or both. Unplug USB before connecting external power. Plug USB back in for programming, but disconnect external power first.
Fix 2: Remove the power LED
Five minutes with a soldering iron. Locate the LED on the board, usually labeled “PWR” or “ON” on the silkscreen. It’s a small surface-mount component next to a tiny resistor.
You have options:
- Desolder the LED itself (easiest if you have a fine-tip iron and tweezers).
- Desolder the series resistor next to it instead (same effect, sometimes easier to grab).
- If you’re not comfortable desoldering, use an exacto knife to cut the thin PCB trace leading to the LED. A single clean score through the copper breaks the circuit.
Savings: 2 to 3 mA. This is reversible; you can resolder the component or bridge the trace with a blob of solder later.
Fix 3: Use a low-quiescent-current regulator
The AMS1117 wastes 5 mA just existing. A Pololu D36V6F3 (3.3V step-down regulator) has a quiescent current around 10 to 15 µA. An HT7333-based breakout board is even cheaper at about 4 µA quiescent.
Wire it from your battery to the regulator’s input, then from the regulator’s 3.3V output to the dev board’s 3.3V pin. This replaces the entire onboard power path with something designed for low-power operation.
With Fix 2 and Fix 3 combined, your deep sleep current drops to the 50 to 200 µA range. The remaining draw comes from the USB-UART bridge, which still sits on the 3.3V rail. To truly eliminate that, you’d need to cut its power trace or move to a bare module. For most hobby projects, though, 100 µA is more than good enough.
+---------------------------+-------------------+
| Configuration | Approx. Deep |
| | Sleep Current |
+---------------------------+-------------------+
| Stock dev board | 5-15 mA |
| + Bypass LDO (Fix 1) | 2-8 mA |
| + Remove LED (Fix 2) | 1-6 mA |
| + Low-Iq reg (Fix 3) | 50-200 µA |
| Bare module, optimized | ~7 µA (datasheet) |
+---------------------------+-------------------+To hit the ~7 µA datasheet number, you’d need a bare ESP32-S3-WROOM-1 module on a custom PCB with a properly selected regulator and no parasitic loads. That’s a real option once you’ve proven out your firmware on the dev board and are ready to build for production.
When 200 µA Is Plenty (and When It Isn’t)
Quick math. A typical 18650 lithium cell holds about 2,500 mAh.
At 10 mA deep sleep (stock dev board): your battery lasts about 10 days just sleeping. Factor in periodic wake-ups for sensing and Wi-Fi transmission, and you’re realistically looking at a week or less.
At 100 µA deep sleep (with fixes applied): that same cell lasts over 2 years in sleep alone. A sensor that wakes every 15 minutes, takes a reading, and transmits it can realistically run 6 to 12 months on a single charge.
At 7 µA deep sleep (bare module, custom PCB): battery life is effectively limited by self-discharge, not your circuit.
For a backyard weather station, a garden soil moisture sensor, or a mailbox notification sensor, 100 µA is more than enough. You’ll probably recharge it out of curiosity long before the battery dies.
If you’re building something that needs to run for 5+ years on a coin cell (a cold-chain tracker, a livestock tag, something deployed at scale) then the dev board was never the right form factor. That’s where bare modules on custom PCBs matter. If you’re heading in that direction with BLE-based devices, Hubble’s device SDK and integration guides cover the firmware side of getting an ESP32-based device onto a network with minimal power overhead.
Your Meter and the Datasheet Are Both Right
The gap between 7 µA and 10 mA isn’t a mystery, and it isn’t your fault. The dev board is doing exactly what it was designed to do: make development convenient. It was never designed to be the thing you strap to a battery and deploy.
Three hardware tweaks (bypassing the LDO, pulling the power LED, swapping in a low-quiescent regulator) get you from 10 mA down to under 200 µA without touching a schematic tool. That’s a 50x to 100x improvement for maybe $3 in parts and 30 minutes of work.
When you’re ready to go from dev board to bare module on a custom PCB, the datasheet numbers become your real target. Until then, stop doubting your code. It was right all along.
Hubble Network connects your low-power BLE devices to satellite infrastructure—no gateways, no cellular modems, no extra power budget. See how it works →