RSSI equation and it's variables

Hello,

I would like to understand more about a topic which has been covered here many times. Since I haven't found an answer I wanted to dig a bit deeper than the RSSI vs distance and discuss how does the SD calculate RSSI in detail? 

I have a case of different RSSI readings in different environments which is totally normal. The tricky thing is that our RSSI is the same value on 12m as it is few cm away from nRF52832 scanning chip. And it's roughly -62! That's not just on nRF52832/52840 but phones also exhibit this behaviour. This is a difference in RSSI range between two places we are testing in is visible on the plot below:

The site on left a big open space with some metal, non heated space (it's cold but above 0°C) with wrought 30 BLE emitters. The one on right is office space with normal temperature with hundreds of BLE advertisers.

Since RSSI uses a noise floor as reference I decided to change it with DTM firmware and emitted a constant carrier on CH 37-39 to see what happens in the office space. And the results looked like in this screenshot.

Difference in range is clearly visible, CH37 being the worst offender. Unfortunately I cannot do a similar test on target site. 

The reason for writing this message is to maybe understand the RSSI calculation method in more detail than:

RSSI = Prx/PO
where:
• P rx is the received power in watts (W) or decibels (dBm).
• PO is a reference power, often taken to be

And also to see if variables used to calculate the value can be exposed and compensated? For example if BLE channel noise map could be used in side of the application this would make it possible to correct the scanned values, this would be some start. For example can ble_gap_evt_qos_channel_survey_report_t be used for this somehow?

We don't expect RSSI to be ideal or always the same. But same values over >10m distances makes you wonder...

Parents Reply
    1. SD s132_nrf52_7.2.0 and nrf5_sdk_17.1.0_ddde560
    2. 52832-AAE1
    3. I established a connection not in the actual environment but in my dev setup where RSSI behaves normally. Indeed RSSI difference can be observed. In the attached screenshot first range from the vertical line is not connected, second is when i kept a idle BLE connection to the device. Short interruption was caused by script which measured the RSSI and not the actual device

    Update 2023-02-21:

    We did some checks starting with RSSI viewer and comparison between office (works ok) and target site (has problems). Clearly the target site has strong WiFi but it's not advertising channels so it should not affect the RSSI on channels 37-39?

    Target:

    Office:

    Also when connected with BLE on target site there was no significant RSSI difference in advertisements.

Children
  • Hi,

    The RSSI detector will measure the energy in the channel but some energy from the adjacent channel will also we part of this. It doesn't distinguish between different modulation. So all energy that falls in the channel will be measured. It can also fluctuate a lot if you have reflections of the received signal.

  • Hello, Thank you for the answer. I am aware of these effects and that other radios like WiFi will also get detected by RSSI detector on some channels. What I am trying to understand is how RSSI is calculated for CH 37-39 so that I see the same signal on 1 and 10-20m distances in one environment and what could cause such effect. Reflections wouldn't make the signal so strong on big distance or even if it would it would fluctuate more but it's steady ~65dBm on 1m and on 10m in some settings.

    nRF52840 is slightly more responsive so the value change a bit more with distance but still not as you'd expect. 

    Could this be related to low ambient temperature which is +/- 0°C given that it's winter and the space is not heated?

Related