I am currently running ble_peripheral/ble_app_blinky using the nRF52840 Dongle and S140 nRF52 6.1.1. I have removed the lines for CONNECTED_LED and ADVERTISING_LED to get a more accurate reading of the power consumption for Bluetooth. I am currently measuring the current of the entire board with a Fluke 177 multimeter with the power coming from 5V via VBUS.
- I set both minimum and maximum connection interval to 10ms
- I changed the connection interval from 0 to 99
- I modified ble_evt_handler() to not advertise upon being disconnected
- I enabled dcdc mode right before advertising_start() in main()
I am measuring 310uA when advertising with the default 40ms interval. When connected to my iPhone via nRF Connect, it uses 170uA. When disconnected and not advertising, it uses 20uA.
Nordic's online profiler tool estimates 11uA with my parameters. 170uA seems a bit high and almost an order of magnitude off from the estimates. I understand that's including other things on the chip though given 20uA at idle, I would assume that with Bluetooth it would use at 40uA or something on that order. Are there other things I can do/disable to lower power consumption?
I intend to use the nRF52840 dongle as a controller for a Bluetooth keyboard so the device needs to be connected for the most part. A lot of power optimization guides suggest setting NRF_POWER->TASKS_LOWPWR to 1. Is that something that I can do? Where in the code would I do that?