NRF52832 Power Consumption

I’m creating a custom board using NRF52832 in order to create a BLE device that will store and transmit data.
Ble device uses GATT Characteristics for data transmission.
For data storage I use LittleFileSystem.

My project will be a wearable device, so I’m trying to achieve months of battery life (if possible). I saw that the NRF52832 chip can achieve lower power consumption than 0.5mA using ble.

I’ve found the following step to improve the power consumption of the board:

int main(void)
{ 
  //Enable DCDC Regulator
  NRF_POWER->DCDCEN = 1;
  //Start Bluetooth Functionalities 
  thread.start(BluetoothThread);
  shouldSleep = false;
  while(1){
     // if System OFF must be enabled
    if (shouldSleep == true)
    {
      NRF_POWER->SYSTEMOFF = 1;
    }
    // Enter LOWPWR mode (LOWPWR is recommended for most applications)
    NRF_POWER->TASKS_LOWPWR = 1;
    // Enter System ON sleep mode
    __WFI();
    __SEV();
    __WFI(); 
  }
}

I want to reduce the power consumption as much as possible, but the best I got was 1.5mA, which is way too much compared to BLE examples using Segger Embedded Studio.

As you can see in the screenshot above, power consumption has a large spike (5mA) at the beginning of the wake-up process (triggered from an interrupt pin signal). Furthermore, the wake-up takes way too long until the first advertising. Is it a normal thing to happen or did I miss something?

I am more familiar with C++ and mbed os, that’s why I want to find the best solution with this approach.

All suggestions are welcome.

you probably wanna look at this bug BLE power consumption using CORDIO stack too high · Issue #10669 · ARMmbed/mbed-os · GitHub . It links to an feature branch with ongoing power consumption work.

1 Like

Hi Argiri,

I am not sure if you found the solution but check out Eventflags (EventFlags - API references and tutorials | Mbed OS 6 Documentation) for sleeping in system on mode.

I am using a custom nrf52832 device sleeps at 30μΑ (it is not consistent, I am still trying to figure out why, it doesn’t sleep in every cycle) (mbed os 6.14)

Kind regards,
Rafaella