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

nrf51822 Power Calculator

Hi Guys,

I would like to set up my nrf51822 to make a connection once a GPIO button is pressed and send some data. I've been using this sheet to try and calculate what my battery life would be, but I have some questions regarding it.

-If I press a button and advertise to connect, it does not include the pairing time or I don't know where to look for it?

-The sheet clearly indicates the payload for advertising but I'm not able to see the amount of data that one can send once connected.

-Advertising and Connected has a Peripheral line in its calculation. For advertising its 0uA and for connected is 10.5uA. I'm not sure what to select here, and I'm not sure why this is 0uA in advertising when in sleep. Surely it does draw some current?

-Finally in the advertising calculations there is line for " Post-processing APP" which is set to 0. Would it be possible to explain the post processing?

I'm very new to BLE and not familiar to all these terms, but I need to make some calculations before starting with a new design to ensure battery life.

Thanks Hano

  • -If I press a button and advertise to connect, it does not include the pairing time or I don't know where to look for it?

    The excel sheet provided is not provided By Nordic, so I am perhaps not the best person to give specifics about it, but quickly evaluating the model with some common parameters it seems that the model provides a pretty good estimate, at least for advertising and simple connection cases when using S110 softdevice. You can further compare the model in this excel sheet with some common scenarios that are given on this blog post.

    The pairing procedure is apparently not present in this model, nor is the service discovery proceidure, or the connection parameter update procedure. There are lot of scenarios that can make a model like this complicated, but this one is very basic.

    For the advertising, there are calculations for 3 transmissions, which is accurate because that is what really happens in BLE when advertsing, because there is sent one packet on each advertising channel, and there are three channels.

    For the connection part, the model is limited to one packet received and one packet transmitted. You can not modify how many packets are transmitted or received in each connection interval, nor can you modify how many payload bytes are transmitted and received. It looks to me the model is transmitting one packet and receiving one packet each connection interval without any payload. This is the scenario when there is no data exchange ongoing, then this is the packet transmission in order to keep the connection alive.

    It is perhaps not very difficult to add payload to the model since nRF51 BLE transmission is 1Mbps, so it takes one microsecond to transmit one bit. So if you add 20 bytes of payload to a packet then you can add 20*8=160 us to the length of the TX period.

    -The sheet clearly indicates the payload for advertising but I'm not able to see the amount of data that one can send once connected.

    The nRF51 is able to tranmsit/receive up to 6 packets per connection interval, and there are maximum 20 bytes per packet. Theoretical data rate specification is stated in the S110 Softdevice Specification v2.0, chapter 13 about BLE data throughput. CPU somewhat puts limit on the throughput, see section 12.3.4 in the S110 Softdevice Specification.

    -Advertising and Connected has a Peripheral line in its calculation. For advertising its 0uA and for connected is 10.5uA. I'm not sure what to select here, and I'm not sure why this is 0uA in advertising when in sleep. Surely it does draw some current?

    I would advise to look at the nRF51 current consumption guide, to see what relevant information you can get from there

    -Finally in the advertising calculations there is line for " Post-processing APP" which is set to 0. Would it be possible to explain the post processing?

    The post processing varies with how much payload data is sent in each connection interval. I can reveal that normally when you have no payload data the length of the post-processing period is around 280 us. When sending 20 bytes of payload data (one full packet) then the post-processing period is 470 us. I measured this once on a typical BLE application (heart rate example from the nRF51 SDK 9.0.0 probably), but pre-processing time is also application specific.

    -I'm very new to BLE and not familiar to all these terms, but I need to make some calculations before starting with a new design to ensure battery life.

    Again, I would advise to look at the nRF51 current consumption guide, to see what relevant information you can get from there

Related