8 years, 5 months ago.

Lower power Mode Nordic nRF51822

Hi all,

Trying to get the nRF51822 into a lower current consumption mode using mbed compiler at the moment taking around 20mA idle.

According to: https://devzone.nordicsemi.com/question/1316/what-is-the-power-and-clock-model-of-peripheral-in-nrf51/

There are sleep modes available but i have seen no one reference them for mbed?

If anyone has any ideas would be great, thanks.


Question relating to:

The nRF51822-mKIT is a low cost ARM mbed enabled development board for Bluetooth® Smart designs with the nRF51822 SoC. The kit gives access to all GPIO pins via pin headers …

3 Answers

8 years, 5 months ago.

As long as bluetooth is used on the mkit for the nrf51822, there's not really much room for power control available in the current version of the BLE api.


In regards to not needing the bluetooth, is there a way to turn off radio, and other peripherals in mbed, just as a start point to get current consumption down?

posted by Andrea Corrado 26 Sep 2014
8 years, 5 months ago.


The BLE_Beacon example on mbed consumes 35uA of average current; and that's because the radio peaks at 15mA of current for around 2ms for every advertisement. But this should give you an idea of what's possible.

We made some changes recently to lower baseline power consumption; in particular:

  • the system now starts with low-frequency clock by default (instead of using the external 16MHz clock). The high frequency clock is kicked into action automatically by the soft-device when needed; but now it doesn't remain active all the time. This by itself lowers the baseline consumption significantly.
  • We make an effort to avoid using wait(), which is currently synchronous and wastes a lot of power.
  • We've also re-implemented the Ticker APIs to use the RTC instead of a high-frequency timer. This makes a tradeoff between precision and power; and we believe power trumps over precision in the context of BLE.

Users are free to enable high-frequency timers explicitly if needed. If an application requires the use of high-frequency clock (for instance to do serial communication at high baud rates), then it must enable the high-frequency clock by writing into the appropriate control registers (please refer to the datasheets of the nRF51822). It would help to turn off the high-freq. clock at the earliest opportunity.

Users may also experiment with reducing the transmit power of their radio; there's an API for this. Connection intervals and connection latency are also available for modification, and play a very important role in power consumption.

Hi, thanks for the reply, running this with mKIT i still get 26mA consumption. In terms of measuring consumption i am supplying 3.3V to the mKIT using external source onto the +- headers, could this be causing the issue?

Even with "NRF_POWER->SYSTEMOFF=1;" i consume 17mA??

posted by Andrea Corrado 26 Sep 2014
8 years, 5 months ago.

Sounds like your board is running in debug mode. Try to do your power measurements when running from a battery and not from usb.

yes, please try to isolate the interface chip from the power measurements. measuring power supplied by USB will not yield useful values.

posted by Rohit Grover 13 Oct 2014