According to the datasheet of the ESP32 S3, the power consumption in deep sleep mode (RTC) is around 7µA. This page explains how we measure the real current consumption of the ESP32-S3-DevKitM-1 A comparison of the measurements of different ESP32 cards can be found on this page.
These measurements has been done with the following versions:
We used a Matrehit Energy multimeter that can measure direct curent from 10nA.
The source code used for switching from deep sleep mode to normal mode is presented below. The ESP32 remains in normal operation for 10 seconds, then switches to deep sleep mode for 10 seconds before starting again.
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
#include "esp_log.h"
#include "led_strip.h"
#include "sdkconfig.h"
#include "esp_system.h"
#include "esp_sleep.h"
#define TIME_TO_SLEEP 10 // Wake up / deep sleed duration
#define uS_TO_S_FACTOR 1000000 // Factor from microseconds to seconds
void app_main(void)
{
// Display wake up message in the console
printf("Wake up\n");
// Wait TIME_TO_SLEEP seconds
vTaskDelay(TIME_TO_SLEEP * 1000 / portTICK_PERIOD_MS);
// Display a message in the consol before deep sleep
printf("Go to deep sleep\n");
// Set the deep sleep duration
esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR);
// Go in deep sleep mode
esp_deep_sleep_start();
}
The board has been powered in 3.3V. That's important because there is a regulator that consumes power to convert from 5V to 3.3V.
Voltage | Wake up | Deep sleep | |
---|---|---|---|
Current | @3.3V | 31.7mA | 8µA |
Power | @3.3V | 105mW | 0.026mW |
When powered in 3.3V, in normal mode, the current is about 31.7mA. In deep sleep mode the current is 8µA. As you can see, this consumption is closed from the 7µA specified in the documentation of the ESP32:
Note there a zero Ohms resistor on the PCB. To reach this power consumption, you have to remove the resitor:
Here is the resistor on the PCB:
If the resistor is not remove, the consumptions are the followings:
Voltage | Wake up | Deep sleep | |
---|---|---|---|
Courant | @3.3V | 29.8mA | 0.93mA |
Puissance | @3.3V | 98mW | 3mW |
Courant | @5V | 30.5mA | 1.01mA |
Puissance | @5V | 100mW | 3.33mW |
Here is a video of the current measurement:
The main reason is probably the power led which is always on, because it is connected to the power supply:
Second point is the USB interface, based on CP2102N chip. The chip is powered by the output of the regulator. Even if USB is not connected, the interface is powered. The current can reach 1.3mA when held in reset. This also increases the global power consumption of the board.
The voltage regulator is an SGM2212-3.3 DC-DC linear regulator (Low Quiescent Current, HighPSRR, Low Dropout Linear Regulator).
In conclusion, if you are working on an application that requires a sleep mode with a strong constraint on power consumption or autonomy, it is a very good choice, one of the best I have tested. If power consumption is a key point of your project, check this page.