Implementing Bluetooth AoA Using Software Defined Radio (SDR)

There’s new research from Poznan University of Technology, Poland on Angle of arrival estimation in a multi-antenna software defined radio system: impact of hardware and radio environment.

The researchers implemented Software Defined Radio (SDR), on an inexpensive USRP B210, using the Root Multiple Signal Classification (Root-MUSIC) algorithm to provide Bluetooth AoA. Consideration was given to errors caused by the hardware and the radio environment.

Hardware errors were mainly synchronization errors. The accuracy of the AoA was affected by the degree of multipath propagation and filtering was found to improved accuracy. An implementation with two antennas and the Root-MUSIC AoA algorithm was able to achieve less than 10m estimation error in most environments.

Read about BluetoothLocationEngine™

Inside the PC028-E USB Beacon

The PC028-E beacon is so light, weighs only 3g and with the case on feels like there’s nothing inside. Opening the case, here’s what’s inside:

pc028_pcb_smaller

You can see the TI CC2541 in the middle and antenna at the right hand side. The USB connections, only used for power, are labelled on the PCB. You could actually solder power wires onto them and use the PCB as a module in a larger project.

View USB Beacons

Using Bluetooth LE with React Native

There’s a useful new article at Stormotion on how to use Bluetooth LE with React Native. The article explains the difference between Bluetooth LE and Classic Bluetooth and details the differences between the two main libraries when integrating Bluetooth LE into React Native apps.

The article also provides information on what apps to use to test Bluetooth LE and has insights on how to avoid the common problems.

Detecting Malicious Bluetooth Trackers

There’s new research from University of Washington on BLE-Doubt: Smartphone-Based Detection of Malicious Bluetooth Trackers University of Washington (PDF).

Stalkers can hide Bluetooth beacons on targets’ clothing or in vehicles so as to monitor their locations. The researchers created an open-source method of detecting maliciously deployed Bluetooth beacons.

The algorithm detects malicious devices within a few minutes. The software scans for Bluetooth advertisements and stores a history so that an alert can be created if a beacon is following the same route as the user.

iBeacon, Altbeacon, Eddystone, Tile, Chipolo, Spot, and AirTag are all detected with AirTags the greatest challenge due to rotation of their MAC addresses between every two hours and once a day and their erratic and unpredictable advertising.

The app doing the scanning causes heavy smartphone battery use. The smartphone lost between 5% and 10% of its battery per hour during active scanning.

View Tracker Beacons

The Problems of Using Bluetooth RSSI

There’s some older but nevertheless useful research from Chung-Ang University, Seoul, Republic of Korea on A Measurement Study of BLE iBeacon and Geometric Adjustment Scheme for Indoor Location-Based Mobile Applications.

The research looks into detecting beacons on smartphones and using the received signal level (RSSI) to infer distance. The aim was to understand the nuances of the variation of signal to be able to create an automatic attendance checker system.

The researchers looked into the differences between iOS and Android phones, the affect of device placement height, differences between iBeacons from different manufacturers, the affect of reducing to minimum transmit (Tx) power, indoors versus outdoors and the affect of obstacles and WiFi.

iOS showed notably shorter maximum distances of 85 meters and the difference between the maximum distances of iOS and Android turned out to be very large. RSSI readings on Android phone decreased more gradually with distance while iOS showed a sudden drop in RSSI after 10 meters. RSSI readings on the Android platform had more temporal (stability) variation than iOS.

The researchers found it difficult to create a model that could take into account all the variations of RSSI. They said:

We believe that our work provides evidence on the challenges for designing an indoor localization system using commercial-off-the-shelf (COTS) iBeacons devices.


The researchers were trying to create a very accurate RSSI-based system that could use any smartphone and any beacon manufacturer. This isn’t possible. Instead, accuracy has to be compromised, hardware restricted or a different technique used.

Most RSSI systems such as these use gateways rather than smartphones to perform Bluetooth scanning. This removes the smartphone model variability. Using only one beacon model reduces variability.

Newer Bluetooth Direction Finding provides a newer way than RSSI to obtain much better accuracy.

Bluetooth RSSI Measurement for Indoor Positioning

There’s a research paper by researchers from Taiwan on A practice of BLE RSSI measurement for indoor positioning. The paper looks into received signal strength (RSSI) to distance conversion, the significance of antenna plane (orientation) and measurements in two different situations, a low noise classroom and a more noisy manufacturing site workshop.

Techniques employed included developing a signal propagation model, trilateration, modification coefficients and Kalman filtering.

The hardware used included an Arduino Nano 33 (Bluetooth 5) and Linkit 7697 (Bluetooth 4.2). Over 1.6 million samples were collected generating over 13Mb of data.

“Multiple factors affected the RSSI, such as the device performance, antenna direction and radio wave refraction”

A positional accuracy of 10cm was achieved in ideal conditions dropping to meter level accuracy in more challenging setups and environments. The sensitivity of the (ceramic) antenna was found to fluctuate widely with orientation/topology. The researchers concluded that the key factor for reliable indoor positioning, based on RSSI, is maintaining good signal measurement quality.

Beacon Advertising While Connected

We have had enquiries asking whether beacons can advertise while they are connected to. Beacons usually just advertise. However, when you setup via the manufacturer configuration app or in special cases, devices (or apps) fetching beacon values requires a (Bluetooth GATT) connection. During this time, beacons stop advertising. This means that, during this time, other devices, and hence apps, can’t see the beacon and can’t connect.

Bluetooth GATT Connection

Beacons are based on standard Systems on a Chip (SoC) provided by one of four manufacturers : Dialog, Nordic, Texas Instruments and NXP. These manufacturers provide standard base software/firmware that is used by the beacon manufacturers. There was a time when the base software didn’t support advertising during connection. More recently, advertising during connection has been become possible but no beacons, we know of, support this yet. Note also that even when beacons do eventually support this, devices, and apps, won’t be able to connect if a connection is already in progress. The advertising will be set as non connectable.

Bluetooth AoA IQ to Location

Bluetooth direction finding uses locators that have multiple antennas. The antennas tend to be flat patches on a printed circuit board (PCB).

The antennas receive the same radio signal but at slightly different times based on the incident angle. This causes a phase difference in the received radio signal at each antenna.

Software is needed to process the radio signals from the antennas and calculate the incident angle. The radio signals are measured in terms of in-phase and quadrature components (IQ).

Processing the IQ signals isn’t easy because it requires taking account of the relative position of the antennas on the PCB, delays in switching between the antennas (there is only one radio receiver) and the use of complex-number arithmetic. The result is a power spectrum, the peak of which is the expected azimuth and elevation of the radio signal in two dimensions.

The finding of the peak also isn’t easy because it requires looping over lots of values to find the maximum. This is computationally time consuming especially as this has to be done many times per second for multiple locators.

Our BluetoothLocationEngine™ is the first independent software to provide scalable IQ to location processing. It provides industry-leading accuracy, performance, security and reliability for Bluetooth® AoA direction finding. It’s currently compatible with the Minew AoA Kit but we are working with other manufacturers to support further hardware.

BluetoothLocationEngine™ is designed in integrate into 3rd party systems to provide x, y, z and also area where locators cover more than one area.

We also supply PrecisionRTLS™ that uses this data to plot onto plans/maps, provide alerts and store historical data for later reporting.

Contact us about setting up a trial

2D Bluetooth Direction Finding

Our BluetoothLocationEngine™ supports 2D as well as 3D locating. 2D is where only x and y are output and z, the height, remains constant. The advantage of 2D location is that it requires fewer locators (the hardware containing multiple antennas), only one per zone or room, rather than four or more. Also, the gateway and subsequent software receives correspondingly less data so, at the limit of throughput, many more assets can be supported.

Bluetooth Direction Finding, 2D Locating

2D is only suitable if the z, the height, is known and doesn’t change much. For example, a beacon on a lanyard has restricted and fairly constant z. Conversely, a pallet in a tall warehouse might have a large variation in z and hence is not suitable for use with 2D locating.

As fewer locators are being used, the accuracy is poorer, of the order of a few metres rather than sub metre, than with 3D location. This kind of accuracy is sometimes an acceptable trade-off for less, lower-cost, hardware and a larger maximum number of assets.

In our BluetoothLocationEngine™, the system is configured for 2D by setting a value in a configuration file and also supplying the typical z. This z is output in place of a calculated z. This value of z is actually used in calculations to provide x and y. This means if z does happen to change significantly from the value you have specified, the accuracy of x and y will be correspondingly poor.

Another aspect of 2D location is that it’s more sensitive to inaccurate initial measurement, usually performed using a laser measure, of location of the locators. When more than one locator is used in 3D locating, locator measurement error is less significant because the system calculation also depends on the location of other locators whose location measurement might be more accurate. With 2D location, the calculation is wholly reliant on the accurate measurement of one locator.

Bluetooth 5.1 Angle-of-Arrival Antenna Array Design

There’s new research from University of Porto, Portugal on Design and Experimental Evaluation of a Bluetooth 5.1 Antenna Array for Angle-of-Arrival Estimation.

Experiments were conducted on a circular antenna array in an anechoic chamber and in a real-world environment to evaluate the quality of the retrieved data. The setup included four beacons advertising a Constant Tone Extension (CTE).

The researchers used a combination of ways to process the data including a non-linear recursive least square method, an unscented Kalman filter, non-linear least square curve fitting, a Gaussian filter and Multiple Signal Classification (MUSIC).

The paper explains how reducing computational complexity is critical in order to achieve real-time processing on edge devices. Accuracy is affected by noise originating from multi-path effects, differences in oscillators between transmitter and receiver, behaviour of the RF switch and slight variations in impedances of the antenna tracks between antenna pairs. There’s much more noise in the real-world environment than in the anechoic chamber.

The researchers conclude that they found it difficult to reduce the error in the obtained phase measurements and identify which packets were reflections.


This paper demonstrates that processing of AoA IQ data is non-trivial. Processing in real-time for a more than a few assets is a challenge. This is why, while many AoA reference kits’ can be used to demonstrate AoA, the accompanying software often isn’t scalable to the required number of assets.

Read about BluetoothLocationEngine™