Bluetooth 5.1 has a new thing in it that makes real-time location services possible. That includes proximity solutions and positioning systems. Two new Bluetooth technogies make this possible: Angle of Arrival and Angle of Departure.
Proximity solutions are for example point-of-interest information, e.g. an application telling you something about the exhibit you’re looking at in a museum. Positioning systems includes asset tracking and indoor positioning (wayfinding inside a building).
Bluetooth capabilities fall into profiles. So there is the Proximity Profile, the Find Me Profile (also proximity), Indoor Poisitioning Profile. Bluetooth beacons (used for point of interest information and RTLS) are not in fact standardized by the SIG. iBeacon for example sits between Bluetooth ADV packets (that are sent even if there is no connection) and carries an ID. Based on these IDs and signal strength, positioning can be done. Competing solutions started popping up, e.g. EddyStone. However, a limitation is that you only have (fairly inaccurate, a couple of meters) range information, so no real positioning. Adding an angle adds a lot more accuracy. This can be used for item finding, obviously. But also for the POI information, you don’t get confused when you’re in a room full of exhibits: the direction tells you which nearby exhibit you’re really looking at.
Angle of Arrival (AoA) uses an antenna array to determine the angle from which the signal is received. Angle of Departure (AoD), conversely, transmits packets with directional information. Antenna arrays can be linear, rectangular, or circular. Accuracy is a lot higher: 10cm with triangulation. Triangulation is even possible with a single beacon: by measuring both the vertical and horizontal angle, and estimating the height above the floor as the third parameter.
The antenna array works by measuring the phase of the signal arriving on each antenna. If two antennas are at a different distance from the transmitter and it’s not an exact multiple of the wavelength, then the signal will have a different phase when it arrives. How much the difference is depends on the angle of arrival compared to the line between the two antennas. So based on the safe difference, we can calculate the angle. IQ sampling is used to measure the phase differences. Since he didn’t understand this himself, Martin made an animation that shows it. See the video.
Bluetooth uses frequency modulation within each of its 37 channels. But for direction finding, you need to know the frequency. Therefore, the AoA standard defines a special subframe that contains all ones. These will all be at the same frequency. It is called the Constant Tone Extension. Whitening is skipped to make sure it is really all ones. That is appended at the end of the frame, after the CRC. So it can be used in all frames, even if the receiver doesn’t support AoA. Those receivers will just ignore the CTE.
The core standard defines the CTE and also the requirements on IQ sampling, e.g. the timing. The host controller interface is extended to tell the controller to start/stop this extension. This works both in connection-oriented and connectionless links. For connectionless, you have to use periodic advertising, because the receiver needs to know the timing of the signal. When enabled, the controller will regularly send IQ reports to the host. These contain an array of measurements. It is up to the applications to do something with that. The Bluetooth SIG is unlikely to standardize much about what to do with the IQ reports.