nRF51 current consumption for common scenarios

The following is the estimated nRF51 current consumption during advertising with the DCDC disabled.

Advertising 1:
TX power: +4dBm
adv interval: 20ms (minimum advertising interval in normal adversising mode)
payload: 10 bytes
application processing: 2ms each adv interval.
Average current consumption: 1794 uA

Advertising 2:
TX power: +4dBm
adv interval: 1200ms
payload: 10 bytes
application processing: 2ms each adv interval.
Average current consumption: 33,4 uA

Advertising 3:
TX power: +4dBm
adv interval: 1200ms
payload: 10 bytes
application processing: 0ms each adv interval.
Average current consumption: 25,7 uA

Advertising 4:
TX power: -20dBm
adv interval: 1200ms
payload: 10 bytes
application processing: 0ms each adv interval.
Average current consumption: 19,6 uA

With nRF51 third revision hardware, DCDC reduces current consumption with up to 20% during advertising, see the nRF51822 PS 3.1 figure 11.


Central S120 single link connection (example 1):
Application processing 50 ms every 1 second: 235 uA

Transmitting and receiving packets 1 sec connection interval, RX 6 packets per interval, TX 6 packets per interval, 20 bytes per packet (includes base current +radio RX + radio TX + 16MHz crystal startup and run current + RTC + 32kHz crystal): 83 uA

Total: 318 uA

Central S120 single link connection (example 2):
Application processing 10 ms every 1 second: 67 uA

Transmitting and receiving packets 1 sec connection interval, RX 1 packet per interval, TX 1 packet per interval, 20 bytes per packet (includes base current +radio RX + radio TX + 16MHz crystal startup and run current + RTC + 32 kHz crystal): 22 uA

Total: 89 uA


S110 peripheral connection (example 1):

Connection interval: 1 second
Slave latency: 0
RX payload bytes in each packet: 0 bytes
TX payload bytes in each packet: 0 bytes
Number of packets to send in each connection interval: 1 packet
Number of packets to receive in each connection interval: 1 packet
Master clock 32kHz accuracy: 50ppm
Slave clock 32kHz accuracy: 20ppm
TX power: 0dBm
application processing: 0%
DCDC operation excluded

Current consumption nRF51: 14.8uA

S110 peripheral connection (example 2):

Connection interval: 0.040 seconds
Slave latency: 0
RX payload bytes in each packet: 0 bytes
TX payload bytes in each packet: 0 bytes
Number of packets to send in each connection interval: 1 packet
Number of packets to receive in each connection interval: 1 packet
Master clock 32kHz accuracy: 50ppm
Slave clock 32kHz accuracy: 20ppm
TX power: 0dBm
application processing: 0%
DCDC operation excluded

Current consumption nRF51: 255uA

S110 peripheral connection (example 3):

Connection interval: 1 second
Slave latency: 0
RX payload bytes in each packet: 0 bytes
TX payload bytes in each packet: 20 bytes
Number of packets to send in each connection interval: 1 packet
Number of packets to receive in each connection interval: 1 packet
Master clock 32kHz accuracy: 50ppm
Slave clock 32kHz accuracy: 20ppm
TX power: 0dBm
application processing: 0%
DCDC operation excluded

Current consumption nRF51: 17.5uA

S110 peripheral connection (example 4):

Connection interval: 1 second
Slave latency: 0
RX payload bytes in each packet: 0 bytes
TX payload bytes in each packet: 20 bytes
Number of packets to send in each connection interval: 4 packet
Number of packets to receive in each connection interval: 1 packet
Master clock 32kHz accuracy: 50ppm
Slave clock 32kHz accuracy: 20ppm
TX power: 0dBm
application processing: 0%
DCDC operation excluded

Current consumption nRF51: 42.2uA

S110 peripheral connection (example 5):

Connection interval: 0.040 seconds
Slave latency: 0
RX payload bytes in each packet: 0 bytes
TX payload bytes in each packet: 20 bytes
Number of packets to send in each connection interval: 4 packet
Number of packets to receive in each connection interval: 1 packet
Master clock 32kHz accuracy: 50ppm
Slave clock 32kHz accuracy: 20ppm
TX power: 0dBm
application processing: 0%
DCDC operation excluded

Current consumption nRF51: 941uA


S110 peripheral connection (example 6):

Connection interval: 0.5 seconds
Slave latency: 0
RX payload bytes in each packet: 0 bytes
TX payload bytes in each packet: 16 bytes
Number of packets to send in each connection interval: 1 packet
Number of packets to receive in each connection interval: 1 packet
Master clock 32kHz accuracy: 50ppm
Slave clock 32kHz accuracy: 20ppm
TX power: 0dBm
application processing: 0%
DCDC operation excluded

Current consumption nRF51: 29.4uA

S110 peripheral connection (example 7):

Connection interval: 4 seconds
Slave latency: 0
RX payload bytes in each packet: 0 bytes
TX payload bytes in each packet: 16 bytes
Number of packets to send in each connection interval: 1 packet
Number of packets to receive in each connection interval: 1 packet
Master clock 32kHz accuracy: 50ppm
Slave clock 32kHz accuracy: 20ppm
TX power: 0dBm
application processing: 0%
DCDC operation excluded

Current consumption nRF51: 7.8uA


  • DCDC operation is excluded in all connection examples. With nRF51 third revision hardware, DCDC reduces current consumption with up to 20% during radio activity, see the nRF51822 PS 3.1 figure 11.
  • If using internal 32kHz RC with temperature calibration instead instead of crystal: add ~2 uA.
  • If using internal 32kHz RC without temperature calibration instead instead of crystal: add ~10 uA.
  • Very helpful. Thanks.

    If you have a key fob type or keyboard application where you are rarely sending any data but want quick response time, then the connection interval will be set low but the slave latency high since you can skip connections. If the connection interval is 0.040 seconds and latency is perhaps 25 intervals, what sort of current will you have? Would it be roughly equivalent to a connection interval of 1 second? What do you think are reasonable numbers for interval and latency for a remote shutter release for a camera?

    Thanks, Tom

  • @muhkuhns: The connection interval is 1200ms so the application processing utilization (proportional CPU usage) is 0.002/1.2=0.001667. For 0.001667 CPU utilization the nRF51 consumes 33.4-35.7=7.7uA. So for 0.01 (10ms) utilization you would cost you 7.7uA*0.01/0.001667=46.2uA.

    Another way to calculate this is to look at table 34 in the nRF51822 PS v3.1, which says that the CPU consumes 4.1mA when executing code from RAM. The calculated current consumption with 0.01 utilization is then 0.0041*0.01=41uA.

    If you process for 10ms every 6 seconds then the utilization is 0.01/6=0.002 and the current consumption is 0.0041*0.002=8.2uA. The 4dBm is just TX power of the radio and does not affect the current consumption for the application processing (CPU processing)

  • Looking at advertising 2 and 3 can I conclude that 2ms application processing takes the difference of 33,4-25,7=7,7µA ?

    So for 10ms processing it will be ~80µA + 25µA = ~ 105µA

    And looking at adv 1+2 each, the intervall and the current consumtion is ~factor 60

    Does it mean I can roughly assume 105µA/5 = 21µA average consumption for 10ms processing every 6seconds at +4dBm?

  • Great post thank you!

    To bad there isn't an current consumption calculator like in nRFgo Studio for the nRF8001. That would be very usefull indeed.