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.

Parents
  • 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: -) )

Reply
  • 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: -) )

Children
  • 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.

  • Advertising and scanning are separate but related functions.

    The Periperal device advertises based on some policy that you decide for the Peripheral's implementation. There are no commands that the smartphone can send to the Peripheral to cause it to start advertising. (Unless something changed in BT5.)

    When you tell the smartphone to start scanning what you are really asking is for the smartphone to listen for advertisements. You are simply telling the radio (Bluetooth Controller) to passively listen for advertising packets. The smartphone will not send out any packets that cause Peripherals to start advertising.

    The smartphone may make some transmissions during this period, but they will be in response to an advertising packet.

    Is that clearer?

  • @ta2, Ah yes, I understood. Then, in the position that smartphone and device can't be connected because of out of range but device's signal is enough to reach to the smartphone, Is there any way to send a data to the smartphone? (The smartphone doesn't have to respond to the device)

Related