I am trying to get to lowest possible deep sleep consumption for my Heltec Wifi Lora V3.2 module. With following code I am getting around 135 µA and I think it is possible to be at 15 µA. I would super grateful if anyone here could help me and see what else I can do or turn off? Here is my deepSleep code:
void gotoDeepSleep(uint32_t seconds) {
// Power management for LoRa and peripheral components
Serial.printf("[%s] Preparing for deep sleep for %lu seconds\n", getCurrentTime().c_str(), seconds);
Serial.flush();
// If display is disabled, turn it off completely
if (!displayEnabled) {
display.displayOff();
}
VextOFF();
// Power down LoRa module
Radio.Sleep();
SPI.end();
// Set all LoRa pins to analog to save power
pinMode(RADIO_DIO_1, ANALOG);
pinMode(RADIO_NSS, ANALOG);
pinMode(RADIO_RESET, ANALOG);
pinMode(RADIO_BUSY, ANALOG);
pinMode(LORA_CLK, ANALOG);
pinMode(LORA_MISO, ANALOG);
pinMode(LORA_MOSI, ANALOG);
// Disable I2C bus for MPU6050
Wire1.end();
// Disable voltage monitoring
digitalWrite(ADC_CTRL, LOW);
// Disable WiFi and Bluetooth
esp_wifi_stop();
esp_bt_controller_disable();
// Configure wake sources
esp_sleep_enable_timer_wakeup(seconds * 1000000ULL); // Timer wake
esp_sleep_enable_ext0_wakeup(GPIO_NUM_0, 0); // Button wake on LOW
// Enter deep sleep
esp_deep_sleep_start();
// Code below only executes if deep sleep failed
Serial.printf("[%s] Sleep failed, forcing restart in 10 seconds\n", getCurrentTime().c_str());
delay(10000);
ESP.restart();
}