ESP32-C5 Light-Sleep minimal power consumption

nikolays@ar-sw.com
Posts: 2
Joined: Mon Aug 11, 2025 5:53 am

ESP32-C5 Light-Sleep minimal power consumption

Postby nikolays@ar-sw.com » Mon Aug 11, 2025 7:33 am

Hello,

I am working with an ESP32-C5-WROOM-1 module and trying to achieve the Light-sleep minimal current consumption listed in the datasheet (Table 6-9), specifically 0.06 mA.

My setup:
- Chip/module: ESP32-C5-WROOM-1 on DevKitC
- ESP-IDF version: v5.5
- Power supply: USB via DevKitC
- Measurement method: jumper J5 with Otii


At the moment, I have reached value of 175 uA.

sdkconfig changes

Code: Select all

#
# Power Management
#
CONFIG_PM_SLEEP_FUNC_IN_IRAM=y
CONFIG_PM_ENABLE=y
# CONFIG_PM_DFS_INIT_AUTO is not set
# CONFIG_PM_PROFILING is not set
# CONFIG_PM_TRACE is not set
CONFIG_PM_SLP_IRAM_OPT=y
CONFIG_PM_RTOS_IDLE_OPT=y
CONFIG_PM_SLP_DISABLE_GPIO=y
CONFIG_PM_SLP_DEFAULT_PARAMS_OPT=y
CONFIG_PM_LIGHTSLEEP_RTC_OSC_CAL_INTERVAL=2
CONFIG_PM_POWER_DOWN_CPU_IN_LIGHT_SLEEP=y
CONFIG_PM_POWER_DOWN_PERIPHERAL_IN_LIGHT_SLEEP=y
# CONFIG_PM_LIGHT_SLEEP_CALLBACKS is not set
# end of Power Management

CONFIG_FREERTOS_USE_TICKLESS_IDLE=y
CONFIG_FREERTOS_IDLE_TIME_BEFORE_SLEEP=3
CONFIG_ESP_SLEEP_POWER_DOWN_FLASH=y
main.c from example + pm_config:

Code: Select all

static void light_sleep_task(void *args)
{

    while(1)
    {
        esp_light_sleep_start();
    }
}

void app_main(void)
{
    esp_pm_config_t pm_config = {
        .max_freq_mhz = 80,
        .min_freq_mhz = 80,
        .light_sleep_enable = true
    };
    
    esp_pm_configure(&pm_config);
    example_register_timer_wakeup();
    xTaskCreate(light_sleep_task, "light_sleep_task", 4096, NULL, 6, NULL);
}


Can I reduce energy consumption even more in Light Sleep mode?
Attachments
Снимок экрана 2025-08-11 141823.png
otii power consumption
Снимок экрана 2025-08-11 141823.png (238.36 KiB) Viewed 416 times
light_sleep.rar
LightSleep project
(79.97 KiB) Downloaded 18 times

qingqingxu
Posts: 4
Joined: Fri Jul 18, 2025 3:07 am

Re: ESP32-C5 Light-Sleep minimal power consumption

Postby qingqingxu » Wed Aug 13, 2025 2:59 am

I also met the same question, can't achieve the current in the datasheet.(0.06mA)
By the way, can you achieve the current in the datasheet(0.25mA, peripheral clock disabled)?

nikolays@ar-sw.com
Posts: 2
Joined: Mon Aug 11, 2025 5:53 am

Re: ESP32-C5 Light-Sleep minimal power consumption

Postby nikolays@ar-sw.com » Wed Aug 13, 2025 7:47 am

current in the datasheet(0.25mA, peripheral clock disabled)?
As far as I understand, the call

Code: Select all

 esp_light_sleep_start();
It will do it for me. I get about 175uA instead of 250uA(datasheet)
Also, if disable console output(UART0), energy consumption is reduced to ~ 125uA

qingqingxu
Posts: 4
Joined: Fri Jul 18, 2025 3:07 am

Re: ESP32-C5 Light-Sleep minimal power consumption

Postby qingqingxu » Thu Aug 14, 2025 2:39 am

So, I want to know how to close peripheral clock to achieve 0.25mA in the datasheet?
And how to configure code to achieve 0.06mA in the datasheet?

ScarlettSchmeler17
Posts: 1
Joined: Thu Aug 14, 2025 1:49 pm

Re: ESP32-C5 Light-Sleep minimal power consumption

Postby ScarlettSchmeler17 » Thu Aug 14, 2025 1:55 pm

Hello,

I am working with an ESP32-C5-WROOM-1 module and trying to achieve the Light-sleep minimal current consumption listed in the datasheet (Table 6-9), specifically 0.06 mA.

My setup:
- Chip/module: ESP32-C5-WROOM-1 on DevKitC
- ESP-IDF version: v5.5
- Power supply: USB via DevKitC
- Measurement method: jumper J5 with Otii


At the moment, I have reached value of 175 uA.

sdkconfig changes

Code: Select all

#
# Power Management
#
CONFIG_PM_SLEEP_FUNC_IN_IRAM=y
CONFIG_PM_ENABLE=y
# CONFIG_PM_DFS_INIT_AUTO is not set
# CONFIG_PM_PROFILING is not set
# CONFIG_PM_TRACE is not set
CONFIG_PM_SLP_IRAM_OPT=y
CONFIG_PM_RTOS_IDLE_OPT=y
CONFIG_PM_SLP_DISABLE_GPIO=y
CONFIG_PM_SLP_DEFAULT_PARAMS_OPT=y
CONFIG_PM_LIGHTSLEEP_RTC_OSC_CAL_INTERVAL=2
CONFIG_PM_POWER_DOWN_CPU_IN_LIGHT_SLEEP=y
CONFIG_PM_POWER_DOWN_PERIPHERAL_IN_LIGHT_SLEEP=y
# CONFIG_PM_LIGHT_SLEEP_CALLBACKS is not set
# end of Power Management

CONFIG_FREERTOS_USE_TICKLESS_IDLE=y
CONFIG_FREERTOS_IDLE_TIME_BEFORE_SLEEP=3
CONFIG_ESP_SLEEP_POWER_DOWN_FLASH=y
main.c from example + pm_config:
In my free time, I play on https://mostbet.net.in/aviator/ to clear my head from coding.

Code: Select all

static void light_sleep_task(void *args)
{

    while(1)
    {
        esp_light_sleep_start();
    }
}

void app_main(void)
{
    esp_pm_config_t pm_config = {
        .max_freq_mhz = 80,
        .min_freq_mhz = 80,
        .light_sleep_enable = true
    };
    
    esp_pm_configure(&pm_config);
    example_register_timer_wakeup();
    xTaskCreate(light_sleep_task, "light_sleep_task", 4096, NULL, 6, NULL);
}


Can I reduce energy consumption even more in Light Sleep mode?
Hi,
One thing I rarely see mentioned in threads like this is that the DevKitC itself, not the ESP32-C5 module — can be a big reason why you never hit the datasheet light-sleep numbers. The onboard USB-to-UART chip (CP2102/NCP210x or similar), LDO regulator quiescent current, power indicator LED, and even the leakage through ESD diodes can easily add tens or even hundreds of microamps. If you really want to get close to the 0.06 mA in Table 6-9, you’ll need to either cut those off the board (literally remove LEDs, isolate VCC pins to the USB chip) or move the module to a minimal custom PCB powered directly from a low-Iq regulator or a clean battery source. The datasheet numbers are for the bare module in ideal conditions, not for a development board via USB.

Who is online

Users browsing this forum: ChatGPT-User, Qwantbot and 3 guests