mootin
mootin

Reputation: 11

Bluetooth RSSI value fluctuation

I'm trying to use RSSI values to create a positioning system in my home.

I'm using the neXenio library as a base, the only changes I have made from this have been implementing logging to a database: https://github.com/neXenio/BLE-Indoor-Positioning

I'm using 4 Minew I7's for the beacons and they are currently set to broadcast just iBeacon type adverts at 300ms. They are positioned in a square shaped room and a cross type layout and each beacon is around 2.2m apart. There are no obvious obstructions other than normal living room furntiure. For each test run I do I place my phone in the centre of the room and gather data for around 10-15 minutes at a time. Data gets sent to a database for me to look at after.

The issue I'm having is the singal strength fluctuates massively all the time, to the point the data is basically unusable. Graphs from a typical test run.

Should there be that much difference when the phone is completely still ? I'd expect there to be some slight differences from just the nature of signal propagation but not this much.

Is this to be expected or can these be improved upon somehow ? If this is expected then I will have to look at combining some other sensor data to help improve accuracy.

Thanks

Edit:

After running some more tests, I compared values over time (I had previously only compared rssi,distance and mac address). This has led to find a consitant osscilation pattern Newest test run.

This has also led me to this overstack question: Is there an explanation for the regular oscillation experienced in Bluetooth RSSI

If I am only advertising iBeacon type adverts then this wouldn't apply? But it seems strange how it matches me issue.

Upvotes: 1

Views: 2188

Answers (3)

EKNATH KULKARNI
EKNATH KULKARNI

Reputation: 404

Its practice approach, I tried and implemented.I got the proper results, so that`s why writing the solution. If possible try the same. I implemented it on one BLE router and one Beacon tag. I need to do the calculation for up to 3 meter means 3*3.2 foot. I minimized the fluctuation with out using the kalman filter.

For above implementation we need to go through the steps as follows,

Step 1. Keep Beacon tag at 1M of distance and take 10 [Max] number of readings of rssi & store it in one excel.

Step 2. Keep Beacon tag at 2M of distance and take 10 [Max] number of readings of rssi & store it in second excel.

Step 3. Keep Beacon tag at 3M of distance and take 10 [Max] number of readings of rssi & store it in third excel.

Now you have 3 excel. Take one excel and observe the rssi value, compute the median for the same. Same thing need to calculate for other two excels.

My Becon tag freq is 4 dbm. I got the readings of RSSI from above excel as listed below:

From one excel: -58
From two excel: -64 From third excel: -70

As you see, there is difference of 6 as I change the meter.

Now I written logic by using above results like if value is fluctuating between -58 to -64 then it is represented as 1 m. same for 2m & 3m. But this is not the proper way to do the calculation.

So I used the log for the

calculation like for the value between -58 to -64

result = log(rssi*-1,58). i.e 58 as base.

actual distance = result *1(meter)*3.2(ft)

Same for 2 meter, but for 2 m base of log is 64

result = log(rssi*-1,64). i.e 64 as base.

actual distance = result *2(meter)*3.2(ft)

Same for 3 meter, but for 3 m base of log is 70

result = log(rssi*-1,70). i.e 70 as base.

actual distance = result *3(meter)*3.2(ft)

This can be done by programming. I got the proper results with stability of rssi signal.

Upvotes: 1

Mcz22
Mcz22

Reputation: 86

You can't do much with currently used devices. Even if you stabilize the signal statically, there will be a lot of noise during movement. You can try to:

  • thicken the signal to 100 ms. Urfotunately, this will affect battery consumption,

  • BLE transmits packets on 3 channels (37, 38, 39). The antenna probalby isn't tuned to all 3 the same. If you have the option to change the advertising channels, try to test on different settings.

  • if you have option of soldering or connecting an external anntena, direcational antennas may be helpful for indoor positioning system.

There are many methods to stabilize the rssi signal. If you are interested in this topic, I recommend looking at the articles:

https://scholar.google.com/scholar?hl=pl&as_sdt=0%2C5&q=stabilization+rssi+method&btnG=

In my opinion, this mothod will be most useful to you:

https://www.wouterbulten.nl/blog/tech/kalman-filters-explained-removing-noise-from-rssi-signals/ https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5461075/

AoA and AoD methods may also interest you:

https://www.bluetooth.com/blog/new-aoa-aod-bluetooth-capabilities/

I hope this will be useful

Upvotes: 1

Emil
Emil

Reputation: 18472

RSSI values fluctuate a lot and there is not much you can do about that. That's why the new features in Bluetooth 5.1 were created that use other techniques than signal strength for positioning. Unfortunately the adoption has been slow.

Upvotes: 1

Related Questions