There are many scenarios that require accurate tracking of assets and people. Logistics can ensure efficient use of equipment and improve workflows. Manufacturing can locate valuable plant tools, parts and sub-assemblies, improve safety and enable efficient asset allocation. Healthcare can track high value equipment, monitor the location of medicines, save time searching for equipment and monitor vulnerable patients. Facilities can track valuable assets, monitor lone workers, check occupancy levels and automatically locate people or students for safety and evacuation.
New AoA direction finding brings sub-metre tracking to Bluetooth where the main alternative was previously expensive, proprietary ultra-wide band (UWB). AoA direction finding uses receivers, called locators, that have multiple antenna. The differences in phase of the signal arriving from a beacon to each antenna are used to determine the direction.
One locator can be used to determine the location or multiple locators can be used to triangulate a more accurate beacon position.
You can’t use just any beacon. It needs to send a Constant Tone Extension (CTE) for a long enough time to enable the receiver to switch between all the antennas.
Martin Woolley’s excellent Bluetooth Direction Finding Technical Overview provides a deeper explanation of the theory.
The calculation of data from the antennas to angles is called radiogoniometry. This can be performed by the the same microcontroller hardware that’s receiving the radio data, by a gateway or by a separate location engine on a local server or in the cloud. The problem with using the same microcontroller is that it is slow and doesn’t scale well to larger numbers of beacons. Also, it doesn’t know about other locators and so can’t do triangulation when multiple locators see a beacon.
There are many ways to implement the location engine using different radiogoniometry algorithms of different accuracy and computational complexity. The location engine should also filter the incoming data to mitigate the affects of multi-path reception, polarization, signal spread delays, jitter, and noise. It also needs to be performant, ideally using compiled rather than interpreted code, to support the maximum throughput and hence the maximum number of beacons. It should also also provide a streaming rather than polling API to pass data onto system and applications such as real time locating systems (RTLS).