Nrf52840 low power BLE consumption

I am using this code to advertise and measure the power consumption.

My chart cannot seem to go lower than 250 uA. This is measured by powering the board via V3.3 which bypasses the LDO (should consume less).

According to “official documentation”, advertising should take way less, at around 2uA.

I disabled all pins (if I disable more, the consumption goes up, probably due to flash not being deactivated anymore).

Documentation mentions that if it’s hundreds of uA, then some peripherals are drawing unnecessarily.

Do you see anything suspicious?

Update: adding suspendLoop() brings the whole consumption (while advertising) to 55uA

The documentation you link is about the CPU. But there are more devices on the board, like the regulator and the sensors. All of them my consume some amount of current. You have to look at their data sheets and see, if they can be put into a low current state as well. Maybe a LED is still on, then it must be switched off. 250µa at 3v3 would be the current through a 13k resistor. So for a full populated board 250µs does not seem much. With a 2000mAh battery that would result in about a year stand-by time.

Thanks Robert.
I started playing with advertising intervals and surprise surprise that’s where the power goes.
The documentation mention “between connect events”. I interpreted it “while advertising” but that’s apparently not the case. When the radio is not transmitting, I measure 4uA which is great. Also because the Radio is still on and a peer can connect almost immediately.
Another trade off I considered is to manually time advertising using an external RTC and put the MCU to deep sleep. But doesn’t seem a great tradeoff.

Thanks for sharing your findings!