This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

The meaning of RSSI value of ESB packet.

Hi,

In ESB protocol, the have a RSSI field in nrf_esb_payload_t structure., and I can use this field to get radio receive signal strength.

Does the larger the value, the better the signal?  Ex. if the RSSI values are 50 and 70, which radio signal is better?

If I want to get a error-free RF communication,, what is the minimum RSSI value?

Thank you,

Chianglin

Parents
  • Hi 

    RSSI values should be negative, not positive, and the rssi value in the nrf_esb_payload_t structure is stored as a signed 8-bit integer in order to handle negative values.

    Do you mean RSSI values of -50 and -70, or will the function actually return positive values?

    When the values are negative as normal a higher value means a stronger signal, which means -50 is better than -70 because -50 > -70.

    Completely error free RF communication is hard to guarantee unless you put your devices in an RF chamber that blocks interference, but in general the packet loss will increase the closer the signal gets to the RX sensitivity of your radio. 

    The RX sensitivity is also a negative value, and is documented in the product specification. As you can see it is around -90 dBm for most of the radio modes, which means as the RSSI gets closer to -90 you will see more and more packet loss. 

    Interference makes this more unpredictable, and if you have interference with a signal strengt of -60 dBm hitting your receiver then you will see a lot more packet loss once the signal strength of your signal is -60 dBm or lower. 

    Best regards
    Torbjørn

  • Hi Torbjørn,

    Thank you for your detail explain.

    In your previous mail, the RSSI should be a negative value, but why the RSSI which get from rx_payload.rssi is a positive value? please find following image

    Does the "sign" had been ignore?

    So, if the RSSI is close -90, then it will cause many lose packet.  Packet lose will also happen when strength is near -60dBm, does it right?

    When RSSI range is between -85 ~ 65, the communicate quality is more better?

    Thank you

    Chianglin

Reply
  • Hi Torbjørn,

    Thank you for your detail explain.

    In your previous mail, the RSSI should be a negative value, but why the RSSI which get from rx_payload.rssi is a positive value? please find following image

    Does the "sign" had been ignore?

    So, if the RSSI is close -90, then it will cause many lose packet.  Packet lose will also happen when strength is near -60dBm, does it right?

    When RSSI range is between -85 ~ 65, the communicate quality is more better?

    Thank you

    Chianglin

Children
  • Hi Chianglin

    My apologies, I forgot that the RSSI register stored a positive value, not a negative value. The ESB library simply passes the register value along, and doesn't convert it to a negative number. 

    Essentially the RSSI is negative, but is stored as a positive number, which means when you read a value of 60 for example the RSSI is -60dBm.  For more information see the RSSISAMPLE register documentation.

    chianglin said:
    So, if the RSSI is close -90, then it will cause many lose packet.  Packet lose will also happen when strength is near -60dBm, does it right?

    I just used -60 as an example, this value does not have any particular significance. My point is that the signal strength of the data you want to receive has to be higher than the signal strength of the interference in the area, otherwise your packet will be drowned by the interference and you won't be able to receive it. 

    Best regards
    Torbjørn

Related