Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to improve Bluetooth distance measuring using RSSI?

For my project I need to estimate the distance between a Smartphone and a bluetooth module. The Estimation doesn't have to be very precise. I only need to determine the distance with a margin of error of about 50cm.

I did test the RSSI of two bluetooth modules at distance-steps of 10 cm. I measured the RSSI 5 times for each step and got the average of the 5 measurements. The averages are shown in the graph below:

Blue and Red lines resemble the two bluetooth modules

The red and blue lines resemble the two Bluetooth modules. You can see that the results are not very linear. One of the reasons for this is interference, so i searched for ways to tackle the interference issue. Two ways i found are:

  • Signal Noise Ratio(SNR): Understanding ibeacon distancing

  • ratio of the iBeacon signal strength (rssi) over the calibrated transmitter power (txPower). The txPower is the known measured signal strength in rssi at 1 meter away: http://www.princeton.edu/~achaney/tmve/wiki100k/docs/Signal-to-noise_ratio.html

However i don't really understand how the above techniques would be used to get more accuracy. For SNR i need the Noise value, how do i even get the Noise value?

For ratio rssi/txPower, I can get the txPower by simply measuring the rssi at 1 meter from the module. So I know all the needed values. But I don't know what to do from here on out. How do i use these values to get a more accurate distance estimations?

Are there any other techniques i can use to improve accuracy?

like image 990
MeesterPatat Avatar asked Jan 14 '15 09:01

MeesterPatat


People also ask

What is a good RSSI number for Bluetooth?

Bluetooth works with broadcasting signals and that broadcasting power value is around 2–4 dBm — and due to that, the signal RSSI strength will be around -26 (a few inches) to -100 (40–50 m distance).

How accurate is RSSI for distance?

As part of the broadcast message decoding, the BLE software stacks return the Received Signal Strength Indicator (RSSI) value. This value can be used to approximate distance and when measurements from multiple devices are combined, the device position can be estimated with accuracy of 1 to 4 meters (3 to 12 feet).

How is RSSI used to measure distance?

You can calculate the distance information from RSSI value with this formula: Distance = 10^((Measured Power - Instant RSSI)/10*N). N is the constant for the environmental factor. It takes a value between 2-4.

Does RSSI decrease with distance?

Just as predicted, distance and RSSI show a non linear relationship such that the RSSI value decreases with increase in distance.


1 Answers

You are running into the practical limitations on this technology. Getting estimation accuracy of +/- 50 cm may be possible under ideal conditions at short distances (under 2 meters) not at long distances of over 10 meters.

I wrote a longer blog post about the limits here: http://developer.radiusnetworks.com/2014/12/04/fundamentals-of-beacon-ranging.html

To answer your specific questions:

  1. No, there is no practical way to know what part of a single RSSI measurement comes from signal and what part comes from noise. You can take an average over many samples, which partially removes noise if the transmitter and receiver are stationary over the sample interval.

  2. The techniques you ask about do work to give you distance estimate, but they have the limitations of the technology described above.

like image 187
davidgyoung Avatar answered Oct 10 '22 06:10

davidgyoung