In my application I have a current consumption of ~20µA. When I enter bootloader to perform DFU I initialize my peripherals the same way as in my application and I have added nrf_pwr_mgmt_run() to the loop_forever() function in the bootloader.
static void loop_forever(void)
{
while (true)
{
//feed the watchdog if enabled.
nrf_bootloader_wdt_feed();
app_sched_execute();
if (!NRF_LOG_PROCESS())
{
nrf_pwr_mgmt_run();
// wait_for_event();
}
}
}
I also run nrf_pwr_mgmt_init() and it is initiated without error. I still see a current consumption of 2.49mA in between BLE transactions when I should be in sleep during DFU. The connection interval is set to 100ms.
Is there anything special needed to be albe to go to sleep during DFU in the bootloader? I thought that would be default behaviour but as I saw such a high current consumption I added pwr_mgmt to the bootloader but it didn't change anything.