Page 1 of 1

ESP32-C5 Light-Sleep minimal power consumption

Posted: Mon Aug 11, 2025 7:33 am
by nikolays@ar-sw.com
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?

Re: ESP32-C5 Light-Sleep minimal power consumption

Posted: Wed Aug 13, 2025 2:59 am
by qingqingxu
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)?

Re: ESP32-C5 Light-Sleep minimal power consumption

Posted: Wed Aug 13, 2025 7:47 am
by nikolays@ar-sw.com
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

Re: ESP32-C5 Light-Sleep minimal power consumption

Posted: Thu Aug 14, 2025 2:39 am
by qingqingxu
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?

Re: ESP32-C5 Light-Sleep minimal power consumption

Posted: Thu Aug 14, 2025 1:55 pm
by ScarlettSchmeler17
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.