Understanding the technology is crucial to making well-informed decisions. Therefore,
before we cover all differentiators of today’s Bluetooth LE (Bluetooth Low Energy)
hardware, we must set the groundwork and clear out some common misconceptions
about beacon technology.
What is a beacon and how does it work?
A beacon (or a tag, as we’ll discuss later in this chapter) is a small wireless device that
works based on Bluetooth Low Energy.
It’s kind of like a lighthouse: it repeatedly
transmits a constant signal that other devices can see. Instead of emitting visible light,
though, it broadcasts a radio signal that is made up of a combination of letters and
numbers transmitted on short, regular intervals. A Bluetooth-equipped device like a
smartphone, gateway, or access point can “see” a beacon once its in range, much like
sailors looking for a lighthouse to know where they are.
The information that beacons broadcast is called an advertising packet. The advertising
packet contains basic information about the device (its ID, the firmware it runs on, and
the battery level), as well as its transmission power, calibrated RSSI (Received Signal
Strength Indicator) at 1 meter, and, depending on the vendor and the device, other bits
of data, like sensor readings.
In some cases, such as path finding, beacons can transmit the location data but this is
not used frequently. The location data of the beacon is calculated based on three
combined factors:
  • its transmission power (the power at which it broadcasts the signal)
  • its reference RSSI (the strength that the signal achieves at this set transmission power
  • at the range of one meter from the beacon)
  • the actual RSSI (the signal strength at the location where the signal was picked up by a receiver)
As you can see, the beacon data is pretty useless if there’s no device that can capture it
and no piece of software that can interpret it. This is why any beacon-based project
requires at least two more components: a receiver and an application.
A receiver is a Bluetooth-enabled device that “listens” to beacon signals in its range and
passes all the information it grabs to the application. The application computes the data
and translates it into whatever it was programmed to show.
This is hopefully an easy-to-understand but generic setup. To show you how this
usually works in the real world, we need to draw an important distinction between a
beacon and a tag.