Optimal BLE beacon burst advertising over short duration

My custom connection-less BLE sensor beacons (nRF52833) will advertise a simple event e.g., opening a door on trigger-only.  Up to ten or more such beacons may be sensing at once, but triggered beacon ADV are rather infrequent and rarely collide.  I’m considering ADV with 20ms interval during 100ms to permit effective continuous scanning by a smartphone (Android/iOS) or a separate gateway as well as +8dBm Tx Power for range.  In regard to beacon battery, the Nordic Online Power Profiler (https://devzone.nordicsemi.com/power/w/opp/2/online-power-profiler-for-bluetooth-le) shows total event charge at +4dBm on nRF52832 of 7.03 µC - 13.65 µC (0-31 byte payload) that should be ok given sparse Tx.  I also expect to use 1M PHY for its support on most smartphones and adequate bit rate.

Anyone experienced with similar 20ms burst advertising over short advertising time for optimal low-latency and ~0 missed events?  Data supporting different beacon ADV interval / duration in my use case?  Are there technical restrictions that I don’t know about?

Thanks much!

  • Hi,

    Gateways may differ, but if you are making the gateway yourself then I expect you to have full control over the scanning. What you need to consider then, is Android and iOS.

    In Android, there are three scanning settings:

    Low power: 500 ms scan every 5 seconds.
    Balanced: 2.5 seconds scan every 5 seconds.
    Low latency: 100 % scan duty cycle.

    Your advertising should be such that you will hit the scan periods for the scan settings used. In general, you should time advertising and scanning such that you get at least a couple of overlaps, in order to be resilient against general packet loss.

    For iOS, you have the Accessory Design Guidelines found from Apple's developer pages. For scanning advertisements, the same numbers would apply as the guidelines for advertising interval with the intent of connecting. The advertising guidelines are made for maximizing the chance of getting a connection, which requires successfully transferring at least one, possibly more, advertisements.

    In the end, you should test this yourself to see if you get the numbers you want, and/or if it is possible to get better numbers and still get the quality of communication that you want.

    Regards,
    Terje

  • I will use Android and iOS low-latency BLE scanning modes where scan window = scan interval for 100% duty cycle.  (According to another forum post, I believe that changing frequency to the next advertisement channel after each scan interval introduces a few hundred us period during which the scanner can't receive any advertisement packet... so really <100% duty cycle)

    My proposed 20ms interval during 100ms ADV has 5-6 expected overlaps and my app would do great on latency if usually picking up the 1st or 2nd packet (20-40ms) from my connection-less sensor beacons at ~50m range.  I promise that testing will follow, but based on field experience with typical smartphones scanning as described in outdoor environments, do you guess that 20ms interval and/or 100ms duration should be increased or decreased?  LE 1M PHY and +8dBm Tx Power also good ideas?

  • Hi,

    Sorry for the long delay over the holidays.

    While switching times do mean duty cycle is less than 100 %, for most intents and purposes you can calculate with 100 % duty cycle. On smartphones, there is another important factor: Other 2.4 GHz activity (most noteworthy Wi-Fi) which will reduce time available for BLE activity. (The phone will be time switching between the protocols.)

    5-6 advertising packets should usually suffice, yes, but it depends on the environment. 50 m is a long distance, though, which most likely will have packet loss in any conditions, even with +8 dBm. It's hard to tell whether the 100 ms duration is enough. I am afraid you'll need to do testing in order to figure out what works for your use case and what parameters to change.

    1M is the "standard" phy supported by all smartphones. Long range (coded phy) give longer range but at the expense of longer transmission times (more vulnerable to packet collisions) and supported by few phones. You might figure out you want coded phy for 50 meter range, depending on the environment.

    Another option is range extenders, as higher TX power should definitely help. In the case of non-scanable advertisements, communication goes only in one direction, so increased TX power at the beacon end should suffice. In the case of two-way communication you need TX power in both end, or good LNA (low-noise amplifier) together with high TX power in one end. The nRF21540 front-end module is doing both.

    Regards,
    Terje

Related