A beacon only advertises
Every Bluetooth Low Energy device can announce itself by advertising: sending short packets on the advertising channels for any scanning device to hear. A beacon is a device built to do only that. It broadcasts the same small identifier over and over, and phones that hear it learn that they are near it.
The beacon does not know who is listening. It does not open a connection, push a message or receive one. All the meaning is on the phone side: an app knows which identifiers belong to it and what to do when one appears, such as showing information about the exhibit or shop section the beacon is mounted next to.
The Bluetooth SIG lists advertising as the Bluetooth LE feature for presence, separate from the features for direction (direction finding) and distance (RSSI and Channel Sounding). That is a fair summary of a beacon: it tells a phone that something is nearby, not exactly where it is.
iBeacon
iBeacon is Apple’s beacon format, built into iOS through the Core Location framework. Each beacon is programmed with three values:
- A proximity UUID, a 128-bit value that identifies one organisation’s or one app’s beacons.
- A major value, a 16-bit unsigned integer that groups beacons sharing a UUID, such as all the beacons in one store.
- A minor value, another 16-bit unsigned integer that tells beacons within a group apart.
Only the UUID is required, but Apple recommends programming all three. An app can then watch for a whole set of beacons by giving only part of the identity.
Apple splits detection into two steps to save power. Region monitoring listens passively for beacons that match, and tells the app when it enters or leaves a region. The system can even launch an app that is not running when a matching beacon is detected, if the app has region monitoring authorisation and the location updates background mode. Ranging then measures how close the beacons are, but only in relative terms: far, near or immediate. Apple says ranging does not offer a precise distance and that apps should not rely on signal strength to compute one.
An iPhone can act as an iBeacon too, by advertising the beacon data through Core Bluetooth, but only while the app is in the foreground. Apple suggests dedicated beacon hardware for anything else.
Eddystone
Eddystone is Google’s open beacon protocol, published on GitHub. Its design goals include working with both the Android and iOS Bluetooth APIs. Every Eddystone frame carries the 16-bit Eddystone service UUID 0xFEAA; the specification says this is included to allow background scanning on iOS devices, which only finds services it is explicitly scanning for.
Eddystone defines several frame types:
- Eddystone-UID broadcasts a 16-byte beacon ID made of a 10-byte namespace and a 6-byte instance.
- Eddystone-URL broadcasts a compressed web address that any client with internet access can open.
- Eddystone-TLM carries telemetry about the beacon itself.
- Eddystone-EID broadcasts an ephemeral identifier, using what the project describes as a cryptographically secure method so that only authorised people can decrypt it.
Eddystone also defines a GATT configuration service, so a beacon can report its capabilities to an app and have its broadcast data changed.
What beacons are good for, and their limits
Beacons suit “you are near this” moments. Apple’s examples include welcoming people as they arrive at a sporting event, pointing out sale items as a shopper reaches each section of a department store, and showing information about the artwork a museum visitor is standing next to. The beacon needs no connection to anything; the phone and its app do the work.
They also have clear limits:
- Proximity, not position. A beacon tells a phone that it is close, with a rough sense of how close.
- Public broadcasts. Anyone scanning can hear a beacon’s identifier and use it. Eddystone-EID’s ephemeral identifiers are one answer to that.
- Platform rules apply. On Android, an app that declares
neverForLocationon its scan permission may have some beacons filtered from its results; Bluetooth permissions on Android, explained covers why. - One way only. A beacon broadcasts; it does not carry a conversation.
Beacons and phone-to-phone discovery
The advertising that makes a beacon work is the same mechanism two phones use to find each other. The difference is what happens next. A beacon stops at the broadcast. Two phones that want to exchange data use the advertisement to spot each other and then open a connection, which How do two phones find each other over Bluetooth? walks through. When an app needs precise distance or a tap-to-share gesture instead, BLE vs NFC vs UWB compares the options.