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

nRF8001 broadcast vs connection

Hello!

I am looking for the best solution in terms of power consumption to transmit data with the nRF8001 and have a few questions:

1) I read in another discussion that the broadcast mode is more power consuming because data has to be sent in 3 channels. Is that right?

2) I guess for a connection there are also more pakets needed than just the data? Is there overhead to setup and keep the connection alive?

I am thinking about how much overhead is needed for a connection vs the data x 3 for broadcast mode?

3) The current between the connection/broadcast events is the same (2µA in the datasheet)? So just the active sending would make a difference in terms of power consumption.

Thank you very much!

Parents
  • Hi Philipps,

     

    Is there particular reason you would need to use the nRF8001 chip ? It's a very old connectivity chip we have, with limitation in the throughput as well as the power consumption. If not, you can consider the nRF5 series, we also have connectivity solution for the nRF5 chip. 

    Regarding your question. 

    1. Yes advertising packet usually sent in 3 channel, however, in nRF5 series you can configure to send on only one channel. 

    2. No, it's not true. You need overhead with advertising packet as well. 

    3. I assume you were looking at 2uA idle current. Yes, the main part of power consumption is when the radio is active. 

  • Hello Hung Bui,

    The nRF8001 is already implemented in the PCB and cannot be changed now. I will have a look on the nRF5 series for the future, thank you!

    What is the best option in terms of power cunsumption to send data?

    nRF8001 sleep - wake up - connection - send data - disconnect - sleep again?

    Is there a difference between connect and bond function?

    In broadcast mode it can happen that the receiver doesn't receive all the data because there is no handshaking or similar, right?

    Thanks for your help!

  • Hi Philipps, 

    It depends on how long often do you need to send data. If you need to send data very frequently , then disconnect and put the chip to sleep that often might not be the best way. 

    You can keep the chip in a connection and still have low power consumption because the chip will also enter sleep mode (not lowest power sleep mode) and wake up only to a connection event. 

    The main difference between connect and bond is the link is not encrypted when doing connect. 

    When in broadcast mode (advertising mode) the advertiser has no information if the receiver exist or is scanning or not. Yes, there is no handshaking (except for a scan request to request second advertising packet , but the application wouldn't receive this event). 

  • Hi Hung Bui,

    The current for this sleep mode between the connection event you described is 2µA, is that right?

    I need to send about 20 x 20 bytes every 15 or 30 seconds.

    I can reduce the connection interval for transmitting data and between sending I can set it to the maximum to save energy, right?

    If I change the connection interval between the data transmitting to 4seconds, nRFgo Studio shows a current consumption of 8.58µA. Is this a realistic value for the current consumption for just keeping the connection alive?

    If I would close the connection and put the nRFgo to sleep mode it would just need 0.5µA, right?

    Thank you!!

  • Hi Philips, 

    2uA idle current is correct. It's the consumption when you are in a connection and between connection events.

    The current consumption provided by nRFGo Studio is estimation based on our spec. The actual current consumption may varied but it should be close to. 

    But be aware that having 4seconds connection interval make the device much less responsive.  If there is any interference causing a drop packet, it will take another 4 seconds for retransmission. In addition, if you want to send data, it will be super slow. I would suggest to use Slave Latency, meaning the slave can sleep if it doesn't have data to send and can resume with higher data rate when there is data to be sent. 

    If you put the chip to sleep (disconnect and then sleep) it will be 0.5uA sleep current. But you would need to re-establish connection when you wake up, and it would take up some time for the central to catch the advertising packet, establish connection, encrypt the link (if needed) before you can transfer data. 

     

     

Reply
  • Hi Philips, 

    2uA idle current is correct. It's the consumption when you are in a connection and between connection events.

    The current consumption provided by nRFGo Studio is estimation based on our spec. The actual current consumption may varied but it should be close to. 

    But be aware that having 4seconds connection interval make the device much less responsive.  If there is any interference causing a drop packet, it will take another 4 seconds for retransmission. In addition, if you want to send data, it will be super slow. I would suggest to use Slave Latency, meaning the slave can sleep if it doesn't have data to send and can resume with higher data rate when there is data to be sent. 

    If you put the chip to sleep (disconnect and then sleep) it will be 0.5uA sleep current. But you would need to re-establish connection when you wake up, and it would take up some time for the central to catch the advertising packet, establish connection, encrypt the link (if needed) before you can transfer data. 

     

     

Children
No Data
Related