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

Low power, 2 bytes of data broadcast to 1+ listeners every 2+ minutes.

Dear Nordic,

I'm trying to make a Bluetooth device that only needs to transmit 2 bytes to tablet/smartphone apps running on android, iphone or ipad. The 2 bytes only need sent every 2 minutes. There is no return communication. It is just a broadcast from the Bluetooth device to any handsets within range. I do not need long range.

  • I think this means that my device doesn't need to connect
  • I think that if I do not establish connections then I will be able to support the broadest range of smartphones / tablets.
  • I read that there can be connection problems with some old smartphones/tablets and problems with bonding etc. (Please correct me if I am wrong.)

I want the simplest, most broadly supported solution that is also low power (lasting a year on a coin-cell would be great)

I think I should use and nrf52 series chip and I think I just need to add some data to the advertising. 

  1. Does this sound reasonable?
  2. How should I set up the advertising? 

Since the data can change I expected to do something like this

  1. Configure the advertising to advertise once, 
  2. Send the advertising with the 2 byte data attached somehow. (how?)
  3. Sleep for 2 minutes.
  4. Repeat.

I think there are other ways that this could be done so I want to verify if this sounds reasonable.

Thanks for your help, all assistance is appreciated.

-Jason

  • Hi Jason, 

    Your understanding is correct. And your approach makes sense.

    You don't need to establish a connection to send data from the BLE device to the phone. You put your data in the advertising packet and the phone can scan and get the data. 

    There are some note about your approach: 

    - You can achieve very low power consumption if the interval is 2 minutes. But if you only send one packet every 2 minutes, there is a chance that the phone wouldn't catch the message because it may not scan all the time. I would suggest to do multiple transmission of the advertising packet in 5- 10 seconds every 2 minutes. This way you increase the chance the phone can catch the data without drawing too much current. 

    - To do advertising, you can use our softdevice API directly or use the advertising library provided in our SDK. I would suggest you to get familiar with our nRF5 SDK. There are multiple examples that show you how to do advertising. The closest one to your application could be the ble_app_beacon. If you want to use the softdevice API directly instead, you can have a look at my guide here. It's pretty old guide but the fundamental should be the same. 

  • Excellent, thank you. I'll check this out tomorrow. 

Related