I'm testing an ESP32‑C6 Zero (Waveshare) and trying to keep the device in sleep mode most of the time to save battery power.
In my code I set all supported power domains to ESP_PD_OPTION_OFF before calling esp_deep_sleep_start(). The minimum current I measure is about 667 µA, powering the module directly at 3.3 V (without LDO).
Is this current draw expected for the ESP32‑C6 Zero module design? Or should it be possible to reach the datasheet values in the tens of µA range (like the bare ESP32‑C6 chip)?
Any feedback or experiences with this module would be very helpful.
Thanks!
Code: Select all
#include "esp_sleep.h"
void setup() {
esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_OFF);
//esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_SLOW_MEM, ESP_PD_OPTION_OFF); //not supported
//esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_FAST_MEM, ESP_PD_OPTION_OFF); //not supported
esp_sleep_pd_config(ESP_PD_DOMAIN_XTAL, ESP_PD_OPTION_OFF);
esp_sleep_pd_config(ESP_PD_DOMAIN_XTAL32K, ESP_PD_OPTION_OFF);
esp_sleep_pd_config(ESP_PD_DOMAIN_RC32K, ESP_PD_OPTION_OFF);
esp_sleep_pd_config(ESP_PD_DOMAIN_RC_FAST, ESP_PD_OPTION_OFF);
esp_sleep_pd_config(ESP_PD_DOMAIN_CPU, ESP_PD_OPTION_OFF);
esp_sleep_pd_config(ESP_PD_DOMAIN_VDDSDIO, ESP_PD_OPTION_OFF);
esp_sleep_pd_config(ESP_PD_DOMAIN_MODEM, ESP_PD_OPTION_OFF);
esp_sleep_pd_config(ESP_PD_DOMAIN_TOP, ESP_PD_OPTION_OFF);
//esp_sleep_pd_config(ESP_PD_DOMAIN_CNNT, ESP_PD_OPTION_OFF); //not supported
esp_sleep_pd_config(ESP_PD_DOMAIN_MAX, ESP_PD_OPTION_OFF);
delay(10000);
esp_deep_sleep_start();
}
void loop() {}