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 LocationEngine™ 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.

LocationEngine™ is designed in integrate into 3rd party systems to provide x, y, z and also area where locators cover more than one area. We 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 LocationEngine™ 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 LocationEngine™, 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.

Read about PrecisionRTLS™

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 PrecisionRTLS™

Sensoro Beacons No Longer Manufactured

We have been informed by Sensoro that the SmartBeaconAA and SmartBeaconAA Pro are no longer being manufactured. We have just sold out of our stock so these beacons are no longer available.

SmartBeacon AA Pro

The SensoroAA Pro was a great, robust, waterproof beacon with a great battery life. If you you are now looking for something similar from an alternative manufacturer we suggest you consider the Minew i3.

Research into Bluetooth Beacon Security

There’s recent useful research into Bluetooth beacon security from The University of Hong Kong. The paper on Security and Privacy of Wireless Beacon Systems explains how widespread deployment of Bluetooth beacons can cause them to be an attractive target for adversaries.

The paper covers security issues and privacy concerns and classifies the possible types of attack.

The three main reasons for attacks are for free riding services, user profiling or service disruption.

Understanding adversary motives, capabilities and the potential impact allows for defence mechanisms and planning for remedial actions.

Measuring Distance with Bluetooth LE

There’s a useful recent Webinar at Nordic Semiconductor on Measuring distance with the Nordic Distance Toolbox. The Nordic Distance Toolbox (NDT) provides ways to measure the distance between two Nordic SoCs. An SoC (System on a Chip) is the main chip found in beacons and Nordic is one of the main manufacturers.

The webinar covers the theory of distance measurement based on radio phase, RSSI, Round Trip Timing (RTT) and processing such as Inverse Fast Fourier Transform (IFFT). Practical performance is measured and the conclusions are:

  • Phase based ranging gives best accuracy but is range limited maximum range is limited to 8 to 10m (in the office environment)
  • RTT gives lower accuracy (Standard deviation 3.8m) but can be used up to the maximum Bluetooth connectivity range that can be several 100 metres
  • High precision with a median 3 filter gives the best accuracy (Standard deviation of 37cm)

The presentation PDF is also available.


Using the SoC radio to determine distance is power-hungry, relatively complex to develop and, as the above shows, doesn’t result is very good accuracy. If you want to measure distance it’s simpler, more accurate and more battery-efficient to use a dedicated hardware-based distance sensor. For example, the IBS03R uses a dedicated time of flight (TOF) sensor to achieve accuracy of +-25mm and a battery life of 1.8 to 2.8 years.

New Bluetooth LE Book

There’s a new book Develop your own Bluetooth Low Energy Applications by Koen Vervloesem. It introduces Bluetooth Low Energy and shows how to programming with Python and the Bleak library on a Raspberry Pi or PC, with C++ with NimBLE-Arduino on Espressif’s ESP32 development boards and with C on Nordic Semiconductor’s nRF52 boards.

Koen has a blog where you can read an abridged version of the book. He explains Bluetooth Low Energy, the Bluetooth stack, advertising and connecting. You can also view the samples on GitHub.