SparkFun Forums 

Where electronics enthusiasts find answers.

All things pertaining to wireless and RF links
By jirwin
#198683
I've been trying to figure out why the power consumption on the breakout is higher than expected. I've discovered that I can obtain expected micro-current levels only if I program the device using a Segger and erase the pre-installed Softdevice and Sparkfun bootloader. Any application that is installed through the bootloader seems to have a minimum current of about 500 uA when the processor is sleeping, whereas when I erase the Softdevice and bootloader, I can obtain about 4 uA when sleeping.

1. For all the tests, I've removed the AP2112K LDO voltage regulator, because other posts indicated that it consumed significant (mA) current
2. I've powered the device with a 3V battery on the 3.3 v pin
3. Calling sd_softdevice_disable() has no effect
4. Manually disabling all the peripherals has little to no effect. Sometimes it has the opposite effect, for instance disabling the UART actually increases the power consumption.
5. Disabling the FPU does have a minor effect when the CPU is active, reducing the current from about 9 mA to 7 mA, but has no effect on the current when the CPU is sleeping.

The only thing I can imagine is that the SoftDevice and/or bootloader are keeping some peripheral active, even when I attempt manually to disable all peripherals. Does anyone have any idea what that might be, and can it be disabled by my application to reduce power consumption?

My initial application is an environmental sensor beacon which averages about 25 uA when using a BME280 and the nRF52832. I obtain that by erasing the Softdevice and bootloader, but it puzzles me why I have to do that. When installed through the Sparkfun bootloader, the exact same code averages about 800 uA.