Beacon Pro broadcasting rules

Introduction of Beacon Pros marks a change of how beacons broadcast their advertising packets. Starting with Beacon Pros we divide all possible advertising packets into four groups:

Thanks to the new Nordic Semiconductor nRF52 Series chipsets Beacon Pros use separate virtual BLE broadcasters to send packets from each group. Because of that, packets from different groups have different MAC addresses, so by 3rd party scanners they are treated as packets sent by unrelated beacons.

Having packets that are treated by scanners as coming from different sources allows us to make all iBeacon and Eddystone packets non-connectable (ADV_NONCONN_IND), but at the same time we keep Beacon Pros easily configureable through Secure Profile which is the only connectable (ADV_IND) packet broadcasted by Beacon Pros. This way we increase compatibility and discoverability of standard advertising packets (iBeacon, Eddystone) while maintaining the ability to configure Beacon Pros at will, just like any other device. In order to provide compatibility with iOS and Android devices, Beacon Pros are capable of responding to Scan Requests with a Scan Response packet that is associated with connectable Secure Profile packet. Secure Profile is also the only packet that can't be disabled on Beacon Pros. It is also the only packet broadcasted when a Beacon Pro is in a Power Saving mode, no matter how many other packets were enabled for normal operations.

The advertising interval on Beacon Pros works mostly the same way as on other beacons – it sets a time period between each packet, so the time between the same packet might vary depending on a number of different advertising packets enabled on a beacon. The only exception is Secure Profile packet – it is broadcasted with a separate, fixed interval of 500 ms. It's possible that the Secure Profile packet's broadcasting schedule might interfere with the schedule of iBeacon and Eddystone packets' advertising interval. In these instances Beacon Pro will automatically adjust the broadcasting time of Secure Profile packet or iBeacon/Eddystone packets, making sure there are at least 100 ms between them.

Location Engine
Since there is no way to bind Beacon Pro's iBeacon or Eddystone advertising packets with each other and with it's Secure Profile (different MAC addresses), Location Engine reports each packet as a separate sighting of different devices. Since iBeacon and Eddystone packets are non-connectable, so they don't trigger scan requests on Gateways and don't send scan response packets with additional data, they are assigned their own Tracking IDs in form of their virtual BLE broadcasters' MAC addresses. Detections of Secure Profile packets are, on the other hand, reported with Beacon Pro's Unique ID as a Tracking ID. Because all of that a single Beacon Pro can be reported from 2 to 4 times, depending on the number of active packets.

Android SDK
When Android SDK detects an iBeacon or Eddystone packet coming from a non-Beacon Pro beacon (nRF51-based) it automatically associates it with data from a corresponding scan response packet. Because of that IBeaconListener or EddystoneListener report all possible information about a beacon in IBeaconDevice/IEddystoneDevice object. But since we can't use MAC addresses to link data from Secure Profile and iBeacon/Eddystone packets on Beacon Pro together, these listeners will report devices only with iBeacon/Eddystone data, but without information like Unique ID, battery level, etc. There is a special Beacon Pro-specific listener to get this data - SecureProfileListener - but for the same reason it won't be able to get iBeacon/Eddystone identifiers.

- 2017-12-11 09:24:32 UTC
Was this article helpful?
3 out of 3 found this helpful



This site uses cookies. By continuing to browse the site you are agreeing to our use of cookies. Review our cookies information for more details.