Tackling Bluetooth AoA Complexity for Real-World Applications

We’ve had several customers express interest in developing their own Angle of Arrival (AoA) software, often starting with basic AoA scripts provided by evaluation boards. Unfortunately, these evaluation scripts are usually insufficient for production-level implementations due to a number of critical limitations.

Evaluation board scripts typically apply basic signal processing techniques that struggle with real-world challenges, especially in areas like noise reduction and calibration. Multipath, that’s signals reflecting and arriving in multiple directions, mitigation is often inadequate, making these scripts less effective in complex environments. Simple scripts usually employ straightforward phase interferometry methods that are limited in their ability to handle multipath scenarios. Additionally, they tend to use outdated AoA IQ-to-Angle algorithms, which further affects performance.

Production systems must be capable of managing multiple tags and anchors simultaneously, in real time. Evaluation scripts, however, are generally designed for a single tag and anchor, lacking the logic necessary for multi-device scenarios. They also don’t include advanced features like parallel processing, trilateration or data fusion across multiple anchors, which are essential for achieving 3D positioning.

Evaluation scripts are also designed for controlled conditions, with minimal error checking. They typically lack robust error detection and correction mechanisms essential for reliability in dynamic environments. Furthermore, these scripts do not incorporate fallback mechanisms, such as temporarily lowering accuracy in the presence of short-term radio frequency noise.

A production-ready system also requires integration with broader ecosystems, such as APIs or interfaces for asset management systems or databases, enabling seamless data flow and operational integration.

Key Areas to Address for Production-Ready AoA Systems:

  1. Advanced Signal Processing: Noise reduction is essential for ensuring accuracy in challenging environments.
  2. Multipath Resolution Algorithms: Needed to distinguish direct signals from reflections, enhancing positional accuracy.
  3. Multi-Device Management: Simultaneously support multiple tags and anchors to enable scalability in deployment.
  4. Data Fusion and Trilateration: Combine data from multiple anchors to calculate precise 3D positioning.
  5. Robust Error Handling: Implement comprehensive error detection, logging, correction and fallback mechanisms for consistent reliability.
  6. Performance Optimisation: Achieve real-time processing by optimising code and utilising hardware acceleration.
  7. System Integration: Enable compatibility with enterprise systems by providing appropriate interfaces and data formats.

By addressing these areas, a production-ready AoA system can achieve the reliability, accuracy, and scalability required for effective deployment in complex, real-world environments.

Read about PrecisonRTLS

Bluetooth AoA Direction Finding in the Cloud

We have had many enquiries from ISVs regarding the possibility of using AoA in the cloud. The idea is to use a location engine instance to allow their multiple customers to access AoA direction finding as a service.

Bluetooth AoA Direction finding works by having multiple locators that communicate with an on-site gateway that connects to the location engine. This is radio data so there’s lots of information sent very often. For large sites, there are multiple edge gateways. In most systems with more than a few assets, the gateway throughput becomes limited by the gateway hardware and the location engine processing input is limited mainly by the CPU capability.

The location engine has to do a lot of work. It implements computationally intensive radiogoniometry and anti-interference algorithms using data from multiple gateways.

In most cases, with large numbers of assets, the gateways and location engine are working near full capacity with the latency of the whole system being balanced against the number of assets.

While such a system can work in the cloud, the bandwidth and latency of the connection to the cloud means that it usually isn’t technically and financially viable. Sharing such a system across customers is even less viable. Instead, standalone systems have to be set up on-site to provide optimum performance.

Be aware that some ‘toy’ evaluation, as opposed to production, AoA systems perform the radiogoniometry and anti-interference algorithms at the gateway. While might work for a few assets, the gateway usually doesn’t have the processing power to scale to a production environment. Also, the gateway is only processing the radiogoniometry and anti-interference algorithms using data it has seen. Production grade radiogoniometry and anti-interference algorithms need to consider data from multiple gateways.

Read about PrecisionRTLS™

2D vs 3D Bluetooth AoA Direction Finding

Current AoA locators only have antennas in one plane which means they can only provide angles in two (elevation and azimuth) dimensions. A locator therefore sees assets as being somewhere along an imaginary line or ray emanating from the locator.

If the height, perhaps of a worn lanyard, is known and tends to not change much then it’s possible to estimate the 3D location. Obviously, if the person climbs some steps for kneels down then the location becomes less accurate in all dimensions.

The other solution is to use multiple locators to triangulate two or more locator lines. This is more accurate because it doesn’t rely on a known average height and provides the opportunity to use more than two locators to increase accuracy still further.

3D provides the best accuracy. 2D location allows use of fewer locators with the trade off of less accuracy. For example, the four locators in the Minew AoA kit can be placed in different rooms or areas rather than covering an overlapping area. 2D location also has the implicit advantage of supporting more beacons because the locators and subsequent systems are doing less work.

Read about PrecisionRTLS™

Bluetooth Direction Finding Antenna Arrays

Bluetooth direction finding Angle of Arrival (AoA) uses multiple antenna in one device that uses the phase difference of signals received at different antenna to determine the angle and hence location of a beacon.

We are seeing a variety of designs but most use printed circuit board patches for antennas for reasons of cost and compactness.

All these designs use a radio frequency switch that switches each antenna, in turn, to just one Bluetooth chip to save cost and complexity. You can see this in some of the designs as tracks leading from each antenna to one chip and then one track from that chip to the Bluetooth system on a chip (SoC). The switch is very fast, of the order of 1 microsecond, to capture the same origin signal across all antennas.

Take care to purchase production-ready hardware. While there are currently many antenna array designs, some are just prototype or reference boards not intended for production. The software accompanying prototype or reference boards also tends to be non-existent and in cases where it does exist, it won’t scale to more than a few beacons.

In practice, a location engine employing AoA radiogoniometry is required to process the radio signals from the Bluetooth SoC. The radio signals are also wirelessly noisy and have to be processed to mitigate reflections, interference and signal spread delays. Additional processing is needed to triangulate the angles from multiple locators. All this isn’t trivial given that the algorithms are computationally expensive and have to be executed extremely quickly to support a large number of beacons.

Minew AoA Kit

Read about BluetoothLocationEngine™
Read about PrecisionRTLS™

Inside the Minew LR1 Locator

The Minew AR1 locator has multiple antenna that receive special constant tone extension (CTE) advertising from beacons.

The Minew antenna consists of 12 PCB patches. If you imagine a radio signal hitting the antenna array from the left hand side, the antennas to the right will receive the signal slightly later. The phase difference can be use to determine the angle.

Martin Woolley’s excellent Bluetooth Direction Finding Technical Overview explains the theory. The main concept is based on simple trigonometry:

In practice, if you do this across just two antenna and with one sample the result has very poor stability. Instead, you need to consider all the antenna patches, over time, as well as perform analysis in multiple directions. This requires use of advanced radiogoniometry techniques.

Minew AoA Kit

Read about PrecisionRTLS™

Minew AoA Direction Finding Kit in Stock

We now have Minew AoA Direction Finding Kit and beacons in stock. The AoA kit consists of a G2 gateway, 4 locators, 3 beacons and interconnecting cables. It covers an area of 400m². Multiple kits can be used to cover larger areas.

The gateway outputs antenna IQ data that’s sent to your server or BeaconZone’s LocationEngine™ for generation of angles.

Read about PrecisionRTLS™

How Accurate is Bluetooth Direction Finding?

Bluetooth direction finding promises sub-meter accuracy. In practice, the accuracy varies depending on factors such as the locator hardware quality, radio signal noise, surfaces causing radio reflections, the accuracy of locator placement and beacon orientation. The sophistication of the location engine software in mitigating some of the aforementioned factors can improve the accuracy.

As a guideline, our Location Engine with the Minew G2/AR1 tends to find beacons with a maximum angular error range between 6° to 10°, depending on the above factors. The error in position due to an error in angle gets magnified with distance from the locator. Hence, the accuracy also depends on the distance between the locator and the beacon.

Here are graphs of error vs distance for 6° error and 10° error:

The above accuracies are for hardware such as the Minew G2/AR1 with PCB antennas 50mm apart. It’s expected that greater accuracies might be achieved with hardware having greater inter-antenna distances.

It can be seen that the sub-meter promise has caveats. We have some tips to help reduce angular errors. Averaging data, over time, also reduces angular error with the trade-off of increased latency of detecting location changes. As with all locating technologies, headline performance claims need to be carefully examined and are only achievable in particular situations.

Read about PrecisionRTLS™

Practical Bluetooth AoA Direction Finding Tips

Bluetooth Angle of Arrival (AoA) uses the phase difference of the radio signal hitting multiple antenna to calculate the elevation and azimuth angles to the beacon.

The accuracy is affected by physical aspects and the way the signals are processed. It varies from the order of a few centimetres to about a metre.

Here are some tips to maximise AoA accuracy:

  • Avoid metal objects close to the locators. Try getting better accuracy by adding boxing above locators to move them away from items such as metal beams.
  • Try to arrange that you have locators on all sides of a beacon. You ideally need locators all around the beacon. Accuracy is poor when the angle between beacon and locator is very large. This includes outside the perimeter of the locators where the angles get progressively larger.
  • The best, of the order of centimetres, accuracy is obtained when the beacon is close to a locator. If accuracy is particularly important, consider dropping the locators down with tall ceilings. Don’t drop too far as remember, from the last tip, accuracy is poor when the angle between beacon and locator is very large.
  • For an x, y z location, the worst accuracy is on up-down z axis. This is because all the locators are usually placed at the same height.
  • Accuracy is best when there’s line of sight between the beacon and locator. This favours the placing of locators on the ceiling/roof and beacons on top of items such as pallet loads.
  • While the physical room usually can’t be changed, be aware when testing that an enclosed space such as an office has more reflections and hence less accuracy than, for example, a warehouse.
  • For most systems, adding more locators in the same area produces more location angles that can be used to calculate a more accurate beacon position. Also try to stagger the locators so they are not in line. More data also means systems can also average the data to mitigate radio noise. However, more data means the location engine supports fewer beacons.
  • Another way to average more data, without stressing the location engine, is to filter over time. However, this increases the latency when receiving location updates.
  • Accuracy varies depending on the beacon orientation. The orientation that gives the best accuracy for one direction, say x, isn’t necessarily the best for y. While there’s usually nothing you can do about this, in some controlled scenarios you can arrange fix the beacon orientation to improve accuracy in a particular direction.
  • Too many beacons, in the same area, advertising too regularly causes Bluetooth packet collisions and loss of radio signal reaching locators. Large beacon populations require a longer beacon Bluetooth periodic advertising period that also has the affect of allowing the system to support a larger maximum number of beacons.
  • Accurate site and anchor measurement is important. Inaccurate initial measurement is a common cause of poor system accuracy. Use a laser measure. If you finding it difficult to measure the x, y location of a locator high up, fix a plumb bob line and measure the location at floor level.

Read about PrecisionRTLS™

Why We Created Our Own Bluetooth Engine

In the post on Bluetooth (BLE) vs Ultra-Wideband (UWB) for Locating we mentioned how Bluetooth 5.1 direction finding solutions have been slow to come to the market and how the products that so far appeared all had shortcomings such we weren’t able to recommend them to our customers.

We spent a considerable amount of time (and cost) evaluating AoA solutions and were disappointed with what we found. While the hardware is generally good, the accompanying location engine software was very poor. This was perhaps understandable because software is not necessarily within a hardware manufacturer’s competence.

A location engine converts radio signals from multi-antenna hardware into x, y z location. There are many ways to implement a location engine using different radiogoniometry algorithms of different accuracy and computational complexity. The location engine also needs to filter the incoming data to mitigate the affects of multi-path reception, polarization, signal spread delays, jitter, and noise. It needs to be flexible to using just one locator or multiple locators for more accuracy. It needs to be performant to support the maximum throughput and hence the maximum number of beacons.

In our evaluations, the location engine wasn’t included in some solutions and where it did exist, it didn’t meet the above requirements. We found evaluation kits to be expensive and in some cases were ‘toys’ that demonstrated the principles but weren’t suitable for production. Most systems had vague performance specifications and it wasn’t clear how well they would scale. Most solutions used dongles for copy protection and some had resource limits linked to payment. Documentation tended to be poor, incomplete and require NDA for something that wasn’t at all commercially sensitive. APIs to access the location engine data tended to be incomplete. Systems were inflexible to beacon input rates and assume everyone needs 100ms updates that kills beacon battery life and severely limits the maximum number of tracked assets. Some only supported 2D rather than 3D locating. Some systems relied on applications polling rather than more efficient streaming the output data. The provenance of the software was unknown and whether it was secure, reliable and free of malware.

The above limitations caused too many uncertainties such that there was no way we could specify, demonstrate and supply to clients. It’s for this reason we created our own location engine that’s performant, flexible, accurate, reliable, secure and documented.

Analysis of location angles for a 12 antenna locator
The peak shows the most likely location

The location engine can be used on its own or as part of PrecisionRTLS™ for plotting onto floorplans, alerts and access to historical data.

Bluetooth AoA Direction Finding

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).

Read about PrecisionRTLS™