This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Which nRF52840 registers can be deactivated to achieve lowest power possible?

Hello everyone,

I am developing a simple BLE node with an I2C sensor on it. Basically I just need to send over BLE the measurements made by that I2C sensor every minute or so. Fortunately, I managed to make it work using the arduino nano 33 BLE board (which is based on a nRF52840), and everything seemed fine until I started to measure current consumption.

The problem I am facing is that the system draws 1.13 mA when I set all BLE configurations and start advertising, and 0.85 mA as soon as I end the BLE process. I know it is not too much, but honestly, I was expecting to get significant lower readings. At first, I suppoused the sensor was the responsible for draining such ammount of current, but when I removed it, I kept having the same 1.13 mA measure.

That is when I decided to go directly to the arduino page to look for a solution, but instead of it, I found that there are a lot of users having this same problem. Unfortunately, the only solution that is available right now is this shutdown command.

NRF_POWER->SYSTEMOFF = 1;

Finally, I decided to sneak into the C files available at the arduino board core, and found that the mbed OS arduino uses has some interesting files on a folder named nRF_SDK_15. So my thoughts are, is there a way to reduce the current consumption I am having by shutting down some non-escencial registers, watchdogs and timers using those NRF_POWER commands?

Thanks in advance,

Julio.

Related