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

When smartphone range is shorter than a peripheral(nRF5X), is there any way to receive an advertisement from the peripheral?

Hi, I made a device with using NRF51822, named 'allb' the wearable device for babies. http://myallb.com

We're planning to make a new version of it with using nRF52840, which has a wider range and Bluetooth 5.0. But my question is that many smartphones do not have a chip that has long range. So, the range of nRF52840 would be much longer than the smartphones.

In this situation that they can't communicate each other, the connection between them will be disconnected. Question, I want to make the smartphone to receive a data even in that situation(Opposite is not necessary).

How can I achieve that? Sending Advertisement can be possible in this scenario? Is the advertising also needed a connection for both sides? (Then, it won't help to resolve my problem)

Or is there any other way?

Thanks.

  • I think you should be fine. Advertising packets are unicast and do not require an acknowledgment.

    You might have issues if you need to connect the devices or if you have additional information in a Scan Response. For both of these scenarios the device receiving the advertisement must respond with a Connection or Scan Request. If the device receiving the advertisement doesn't put out a signal strong enough to reach the advertiser, then a Connection or Scan Request will fail.

    But again, as long as you are sending out information that you hope someone will hear, a non-connectable advertising packet (BLE_GAP_ADV_TYPE_ADV_NONCONN_IND) should be fine.

    Also be sure to setup the Flags element in your advertising packet correctly. I think you will want the value 0x02 - indicating LE general discoverability only, but I haven't done one for awhile. (I'm sure someone will correct me if I have it wrong: -) )

  • Hi,

    In this situation that they can't communicate each other, the connection between them will be disconnected.

    If the phone does not support BLE 5 Long Range(CODED PHY/125kbps), you can still establish the connection between the phone and the nRF52840 using the normal PHY(1Mbps) defined in BLE 4.2. With the SoftDevice you can selected your preferred PHY, and you will get an event on the nRF52840 if the phone supported BLE Long Range(CODED PHY) or not.

  • Hi Sigurd, I know that. I don't think you understood my question correctly or my description was bad. The situation I said above is that they can't communicate because it's out of range. It does not relative with BLE 5 Long Range but I only want to know if the smartphone that has shorter connection range than peripheral can receive the data from the peripheral when it's out of range to make a connection. (with using advertising or something) @Sigurd

  • Hi, I tested the advertising but it seems like that the smartphone get advertising data when it requests 'scanning' itself first. Then, If that 'scanning' signal does not reach to the peripheral, the peripheral does not send an advertising data? I'm confused.

  • Does your device need to know that the smartphone received the data?

    If your answer is "no", then I think my response below is correct.

    If your answer is "yes" - your device needs to know that the data was received by the smartphone, then the warning in the second paragraph of my response applies, and Sigurd's comments could be a solution to "paragraph two".

    To continue on this line of thinking, the smartphone would need to send some kind of response to your device. That means you'll either need a connection, or use a Scan Request/Response mechanism to pass acks back and forth.

    If you need the ack from the smartphone then the latter (Scan/Response) could be easier than making a connection.

    Rather than clutter up this comment, if you do need the ack from the smartphone, I can outline my Scan Request/Response method at your request/convenience.

Related