AltBeacon
The Open and Interoperable Proximity Beacon Specification
Master of Science in
Engineering in Computer Science
Pervasive Systems 2016/17
Danilo Bernardini
Contacts and links
Email: danilo.bernardini93@gmail.com
LinkedIn: https://www.linkedin.com/in/danilo-bernardini-23979013a/
GitHub: https://github.com/dbernardini/Movies
SlideShare: https://www.slideshare.net/DaniloBernardini/altbeacon-75445169
What is AltBeacon?
● Open and interoperable specification for proximity beacons
● Intended to create an open, competitive market for beacon
implementations
● Defines the format of the advertisement message that beacons
broadcast
● Uses Bluetooth Low Energy (BLE) 4.0
Protocol format
● AltBeacon advertisements are encapsulated as the 28 bytes payload of a BLE
advertising PDU
● The AltBeacon advertisement is made up of a 1-byte length field, 1-byte type field and
2-byte company identifier, followed by 24 additional bytes containing the beacon
advertisement data.
Protocol main fields
Field Name Description Accepted Values
BEACON CODE The AltBeacon
advertisement code
The big endian representation of the value 0xBEAC
BEACON ID A 20-byte value uniquely
identifying the beacon
The big endian representation of the beacon identifier.
For interoperability purposes, the first 16+ bytes of the beacon
identifier should be unique to the advertiser's organizational unit.
Any remaining bytes of the beacon identifier may be subdivided as
needed for the use case.
REFERENCE RSSI A 1-byte value
representing the average
received signal strength at
1m from the advertiser
A signed 1-byte value from 0 to -127
Implementations and tools
AltBeacon Locate: Android Utility for detecting and transmitting as an AltBeacon
Implementations and tools
Android Beacon Library: Android library providing APIs to interact with Beacons
● Notifications when one or more beacons appear or disappear
● Ranging update from one or more beacons at a frequency of approximately
1Hz
● Allows Android 5.0 devices to send beacon transmissions, even in the
background
Implementations and tools
PiBeacon: Raspberry Pi based tool for transmitting and detecting AltBeacons
● Works with multiple BLE proximity beacon
specifications
● Transmit as a beacon with iBeacon and AltBeacon
technology
● Scan for beacons, combined with the power of
the Raspberry Pi, can trigger other actions or
manipulate external devices based on beacon
proximity
Implementations and tools
Linux AltBeacon Reference Implementation: Example code using BlueZ (Linux
Bluetooth protocol stack)
● Transmit and Receive reference scripts
● altbeacon_transmit - Transmit as a BLE proximity beacon with the
AltBeacon standard
● altbeacon_receive - Detect proximity beacons using the AltBeacon
standard
Implementations and tools
Virtual AltBeacon: Linux virtual machine for transmitting and detecting AltBeacons
on any host OS
● Uses the altbeacon_transmit and altbeacon_receive scripts
● Beacon identifiers and other fields are customizable by editing the
altbeacon.conf file
Practical examples
Android application that responds to proximity beacons
Practical examples
Android application that responds to proximity beacons
Practical examples
We can simulate a beacon using Virtual AltBeacon...
Edit altbeacon.conf
Start transmitting
Practical examples
...or we can build a simple application that uses the Android Beacon Library
Thank you!

AltBeacon

  • 1.
    AltBeacon The Open andInteroperable Proximity Beacon Specification Master of Science in Engineering in Computer Science Pervasive Systems 2016/17 Danilo Bernardini
  • 2.
    Contacts and links Email:danilo.bernardini93@gmail.com LinkedIn: https://www.linkedin.com/in/danilo-bernardini-23979013a/ GitHub: https://github.com/dbernardini/Movies SlideShare: https://www.slideshare.net/DaniloBernardini/altbeacon-75445169
  • 3.
    What is AltBeacon? ●Open and interoperable specification for proximity beacons ● Intended to create an open, competitive market for beacon implementations ● Defines the format of the advertisement message that beacons broadcast ● Uses Bluetooth Low Energy (BLE) 4.0
  • 4.
    Protocol format ● AltBeaconadvertisements are encapsulated as the 28 bytes payload of a BLE advertising PDU ● The AltBeacon advertisement is made up of a 1-byte length field, 1-byte type field and 2-byte company identifier, followed by 24 additional bytes containing the beacon advertisement data.
  • 5.
    Protocol main fields FieldName Description Accepted Values BEACON CODE The AltBeacon advertisement code The big endian representation of the value 0xBEAC BEACON ID A 20-byte value uniquely identifying the beacon The big endian representation of the beacon identifier. For interoperability purposes, the first 16+ bytes of the beacon identifier should be unique to the advertiser's organizational unit. Any remaining bytes of the beacon identifier may be subdivided as needed for the use case. REFERENCE RSSI A 1-byte value representing the average received signal strength at 1m from the advertiser A signed 1-byte value from 0 to -127
  • 6.
    Implementations and tools AltBeaconLocate: Android Utility for detecting and transmitting as an AltBeacon
  • 7.
    Implementations and tools AndroidBeacon Library: Android library providing APIs to interact with Beacons ● Notifications when one or more beacons appear or disappear ● Ranging update from one or more beacons at a frequency of approximately 1Hz ● Allows Android 5.0 devices to send beacon transmissions, even in the background
  • 8.
    Implementations and tools PiBeacon:Raspberry Pi based tool for transmitting and detecting AltBeacons ● Works with multiple BLE proximity beacon specifications ● Transmit as a beacon with iBeacon and AltBeacon technology ● Scan for beacons, combined with the power of the Raspberry Pi, can trigger other actions or manipulate external devices based on beacon proximity
  • 9.
    Implementations and tools LinuxAltBeacon Reference Implementation: Example code using BlueZ (Linux Bluetooth protocol stack) ● Transmit and Receive reference scripts ● altbeacon_transmit - Transmit as a BLE proximity beacon with the AltBeacon standard ● altbeacon_receive - Detect proximity beacons using the AltBeacon standard
  • 10.
    Implementations and tools VirtualAltBeacon: Linux virtual machine for transmitting and detecting AltBeacons on any host OS ● Uses the altbeacon_transmit and altbeacon_receive scripts ● Beacon identifiers and other fields are customizable by editing the altbeacon.conf file
  • 11.
    Practical examples Android applicationthat responds to proximity beacons
  • 12.
    Practical examples Android applicationthat responds to proximity beacons
  • 13.
    Practical examples We cansimulate a beacon using Virtual AltBeacon... Edit altbeacon.conf Start transmitting
  • 14.
    Practical examples ...or wecan build a simple application that uses the Android Beacon Library
  • 15.