Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

ESP32-C6 - high light sleep current #11970

michapr started this conversation in General
Discussion options

Board

ESP32-C6FH4

Device Description

Dev-board

Hardware Configuration

no hardware attached in this time

Version

v3.1.0

IDE Name

Arduino IDE

Operating System

Win 11

Flash frequency

80 MHz

PSRAM enabled

no

Upload speed

921600

Description

Cannot get the device in correct light sleep mode, will get current >250uA instead of the published 35uA

In deep sleep all is working as expected (<10uA). How the deep sleep sample must be modified?

I've tried all sorts of things, but nothing has helped...

Sketch

/*
 _ _ ______ _____ _____
 (_) | | ____| __ \_ _|
 _ __ ___ _____| | |__ | | | || |
 | '_ \| \ \/ / _ \ | __| | | | || |
 | |_) | |> < __/ | |____| |__| || |_
 | .__/|_/_/\_\___|_|______|_____/_____|
 | |
 |_|

www.pixeledi.eu | https://links.pixeledi.eu
ESP32S3 XIAO DeepSleep | V1.0 | 03.2024

https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/system/sleep_modes.html
*/
#include <Arduino.h>
unsigned long previousMillis = millis();
int cnt = 0;
void setDeepSleep()
{
// esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_OFF);
 Serial.println("Going to sleep zzZZZzz");
 Serial.end();
 //ESP.deepSleep(20 * 1e6);
	esp_sleep_enable_timer_wakeup(1000*(uint64_t)4500);
	esp_light_sleep_start(); // replaced deep sleep
}
void setup()
{
 Serial.begin(115200);
}
void loop()
{
 unsigned long currentMillis = millis();
 if (currentMillis - previousMillis >= (1000 * 1))
 {
 previousMillis=currentMillis;
 cnt++;
 Serial.println(cnt);
 }
 if (cnt > 10)
 {
 cnt = 0;
 setDeepSleep();
 }
}

Debug Message

no debug

Other Steps to Reproduce

No response

I have checked existing issues, online documentation and the Troubleshooting Guide

  • I confirm I have checked existing issues, online documentation and Troubleshooting guide.
You must be logged in to vote

Replies: 13 comments

Comment options

@michapr Can you please try latest actual Arduino core and if the behaviour is still there Arduino core 3.2.0-rc2?

You must be logged in to vote
0 replies
Comment options

Yes, it is the same for me with 3.3.0

You must be logged in to vote
0 replies
Comment options

You may need to add esp_sleep_pd_config(ESP_PD_DOMAIN_VDDSDIO, ESP_PD_OPTION_OFF). That may require a longer sleep time. If you can't guarantee that you will be in sleep for seconds (so that you can turn off the flashmem), then you won't be able to get to the lowest consumption levels.

You must be logged in to vote
0 replies
Comment options

Hi @michapr

is this issue still valid considering the comments above?

You must be logged in to vote
0 replies
Comment options

Yes, it's still the same. I cannot use esp_sleep_pd_config(ESP_PD_DOMAIN_VDDSDIO, ESP_PD_OPTION_OFF) because need shorter sleep times.

You must be logged in to vote
0 replies
Comment options

The code can't change how the power domains work. Can you please explain what would be the solution you are looking for from this issue?

You must be logged in to vote
0 replies
Comment options

I understand that there may be no other solution for this chip, but I was somewhat surprised because the data sheet specified much better values for light sleep mode (without restrictions).
In my application—battery-powered sensors—the processor should go into light sleep mode both after the measurement and during the measurement. Deep sleep mode is out of the question because it requires a restart (and reinitializes the sensors).
The same applies to use in conjunction with LoRa modules (for example), where the "waiting time" for the gateway's response can be bridged by a light sleep mode.

So I think there maybe no solution - should look for another chip...

You must be logged in to vote
0 replies
Comment options

How do you measure the current?
It is very hard to measure it right, unless you have some proper tools to measure it like the Power Profiler Kit II from Nordic, or a similar device.

Still it is easy to overlook some unintended leak currents like from voltage regulator, pins pulled up or down, USB to serial adapters, etc.

You must be logged in to vote
0 replies
Comment options

How do you measure the current?

I'm using for all my work the Nordic Power Profiler Kit II.

Still it is easy to overlook some unintended leak currents like from voltage regulator, pins pulled up or down, USB to serial adapters, etc.

I don't think so, because the deep sleep current is <10uA, as expected.

You must be logged in to vote
0 replies
Comment options

OK, so we have established you have the proper tools ;) (Also love my PPK-II :) )
Other difference can still be that there are still parts active and/or pins maybe pulled high or low causing some current draw through those resistors.
250 uA over 3V3 is still in the order of 13 k, so it can still be some pull-up/down resistor.

Other unexpected power consumers can be for example if some internal device is still active which keeps the ABP frequency active.
You may need to look at the Technical Reference manual for this as it is quite elaborate in what may be kept active and what not.
Since the high resolution clock runs internally at 480 MHz (I think also for the C6) via some PLL circuits, I would not be surprised if this draws upto this amount of current (or even more)

You must be logged in to vote
0 replies
Comment options

Does the IDF example give you the expected results?

You must be logged in to vote
0 replies
Comment options

Other difference can still be that there are still parts active and/or pins maybe pulled high or low causing some current draw through those resistors.
250 uA over 3V3 is still in the order of 13 k, so it can still be some pull-up/down resistor.

But in this case the deep sleep current would be >10uA ... (same sketch, only other mode), right?
I also think about any other internal device, that's why was asking about any idea... I thought somebody else also had same issue before.

Does the IDF example give you the expected results?

Yes, if I remember right tried this "official" Light Sleep Example too - but made then all final tests with Arduino IDE (see sketch above)

Somebody know an ESP32 board with a real low light sleeping (and deep sleeping) current?
I had heard that the ESP32H4 was developed for this purpose, but it does not seem to be readily available yet (in the case of light sleep in Zigbee devices espressif/esp-zigbee-sdk#501 (comment)).

You must be logged in to vote
0 replies
Comment options

As this issue became more of a discussion type. I have transferred it to the discussion.

You can still comment on the new discussion type and have a follow-up.

Kind regards.

You must be logged in to vote
0 replies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Chip: ESP32-C6 Issue is related to support of ESP32-C6 Chip Status: Awaiting Response Awaiting a response from the author
Converted from issue

This discussion was converted from issue #10903 on October 30, 2025 02:45.

AltStyle によって変換されたページ (->オリジナル) /