Page 1 of 1

BLE connection in Light Sleep mode - ESP32C3

Posted: Tue Feb 25, 2025 1:17 pm
by nogema
Hi everyone,

I am currently trying to implement a low power mode on my custom board to reduce as much as possible its consumption because it runs with a battery. My device needs to maintain the BLE connection at all times. I am developing with ESP-IDF v5.2.3 and VSCode on an ESP32-C3-Mini.

With the Power Save example (https://github.com/espressif/esp-idf/tr ... power_save) I managed to reduce as much as possible the consumption, especially by using the Modem Sleep mode and Dynamic Frequency Scaling.
However, I only reached 8 mA which is still high. I have already adjusted the advertising interval and connection parameters and TX power.

It seems I cannot use :

Code: Select all

esp_light_sleep_start()
because it disables all peripherals and so cuts the BLE connection and even with :

Code: Select all

esp_sleep_enable_bt_wakeup()
my device connects, disconnects, connects, etc.

Is there a way to keep the BLE modem enabled AND the BLE connection active while still reducing the consumption ?

Best regards,

Re: BLE connection in Light Sleep mode - ESP32C3

Posted: Thu Feb 27, 2025 1:38 pm
by nogema
After deeper researches, all the use cases for BLE and sleep mode are about :
- wake up the chip
- connect to a device via BLE
- get some data via BLE
- execute the main task
- (disconnect and) go into sleep mode (which disconnects)

Nothing about maintaining the connection

Re: BLE connection in Light Sleep mode - ESP32C3

Posted: Thu Feb 27, 2025 6:49 pm
by MicroController
Using an external 32kHz crystal you should be able to keep Bluetooth 'connected' during light sleep.

Re: BLE connection in Light Sleep mode - ESP32C3

Posted: Wed Mar 05, 2025 1:46 pm
by nogema
After added an external 32kHz crystal on my custom board, and flashed the "power_save" (https://github.com/espressif/esp-idf/tr ... power_save) example, I get :
  • with the External 32 kHz crystal :
    • Disconnected : 8 mA
      Connected : 6.5 mA
    with the Main crystal :
    • Disconnected : 10 mA
      Connected :8 mA
    with the External 32 kHz crystal and all GPIO disabled :
    • Disconnected : 7.5 mA
      Connected : 6 mA
Does this mean I cannot reduce the consumption because of my custom board ?