RSSI - A Changing DefinitionBy Tom Carpenter On 08/05/2020
If you search for RSSI (Received Signal Strength Indicator) on the Internet, you will find 3.5 million results. The first several pages are filled with results defining and using RSSI in different ways. In this post, I will attempt to reveal the source of confusion and then do my best to clear it all up.
First, one might ask if there is an authority on definitions of terms or acronyms like RSSI. For example, sometimes you will be informed that RSSI stands for Received Signal Strength Indication, but more often you will see it referenced as Received Signal Strength Indicator. Ok, those two are close enough, but sometimes things get a little odd. In the Bluetooth specification (5.2) RSSI is variously referenced as Receiver Signal Strength Indicator, Received Signal Strength Indication, and Received Signal Strength Indicator. But what about the definition of RSSI?
Wikipedia defines RSSI as: a measurement of the power present in a received radio signal.
Oddly, this Wikipedia definition is among the best. The reason? It is so non-specific as to leave it open for all of the varied definitions used by different standards and technical documentation. For example, the ISA100.11a standard states:
RSSI shall be reported as a signed 8-bit integer, reflecting an estimate of received signal strength in dBm. RSSI reports shall be biased by +64 dBm to give an effective range of -192
dBm to +63 dBm. For example, a reported RSSI value of -16 corresponds to a received signal strength of -80 dBm.
Therefore, an RSSI of -16 is not referencing -16 dBm, but rather it is referencing -80 dBm. For this reason, we cannot just define RSSI as the received power in dBm. We must understand how the wireless system in use defines RSSI.
Bluetooth simply links the RSSI to dBm with +/- 6 dB accuracy in some cases; however, it also allows for a remapping of RSSI based on a golden range for receiver signal strength. That is, a device may have what the specification calls a golden range of power levels that is best to receive a signal. Here is the description from the 5.2 specification for your reading pleasure:
A radio receiver may have a "golden range" of RSSI that it prefers the incoming signal to remain within. A device with such a receiver can use the Power Control Request procedure to bring the current RSSI (RSSIcurr) of the incoming signal to a preferred value within its golden range. Nevertheless, it may still be able to receive the signal at a level that is equal to or above a minimum acceptable RSSI (RSSImin) that is lower than the current RSSI. A device can use the Power Control Request procedure to check whether its peer can accept such a reduction in power and, if so, adjust its transmit power based on the response.
To clear up any mud, it's basically saying that you can "bring the current RSSI" to a preferred value, but what does that mean? Well first, under the hood, RSSI is dBm. That's a good way to think about the way the Bluetooth specification references it. However, when RSSI is requested from the HCI controller (which communicates with BR/EDR as well as LE Bluetooth controllers) using the HCI_READ_RSSI command, the RSSI returned for BR/EDR is not actually the signal strength in dBm. Note the following:
The RSSI parameter returns the difference between the measured Received Signal Strength Indication (RSSI) and the limits of the Golden Receive Power Range for a Connection_Handle to another BR/EDR Controller.
In other words, the "returned RSSI" or the contents of the RSSI parameter is the "difference between the measured RSSI and the limits of the" golden range. First, from this we see, as I said, that under the hood, RSSI is dBm (with some allowed error in accuracy). We know this because we are reporting the "difference between the measured" RSSI and the golden range. So the measured RSSI is in dBm. This will become more clear when we explore this HCI controller command in relation to LE (BLE). Second, the value reported in the RSSI parameter is not actually RSSI (wouldn't want to confuse you), but it is the variance between the RSSI and the golden range (am I the only one who loves the goldern range phrase?). When the RSSI parameter from the HCI_READ_RSSI command is positive, it indicates the RSSI is "that much" better than the best signal in the golden range. When the parameter is negative, it indicates the RSSI is "that much" worse than the golden range. When the parameter is 0, it indicates that the signal is somewhere in the golden range.
For example, if the HCI_READ_RSSI command returns 6 and the golden range is between -60 and -70 dBm, then the signal is measured at -54 dBm. However, if the command returns -6 and the same golden range is used, the signal is measured at -76 dBm. Here's the good news, if the command returns 0, the signal is somewhere between -60 and -70 dBm. I don't know where, but it's somewhere in there. The good news is that it really doesn't matter where it is in that range because you can demodulate the signal anywhere in that range, but still, all of this shows just how flexibly RSSI is used.
Now, to be clear, things change completely for BLE in relation to RSSI. In the case of the LE controller (some call it the LE PHY), the HCI_READ_RSSI command simply returns the signal strength in dBm per the following specification statement:
The meaning of the RSSI metric is an absolute receiver signal strength value in dBm to ±6 dB accuracy. If the RSSI cannot be read, the RSSI metric shall be set to 127.
I could spend the next 10,000 words documenting how various standards treat RSSI. Some use the term... some don't. Some use it to be equal to received signal strength in dBm... others, as we have seen, get more creative. But what does all of this mean for the wireless engineering, network administration, programming, and support industry? Well, it means different things to different roles in different contexts.
For example, if you are a programmer building low-level drivers, firmware or software that communicates using one of these various wireless protocols, you must understand how the information is used within that protocol and code your solutions very specifically to the way in which it is implemented. However, if you are a network designer or administrator, you will likely find yourself using the RSSI term in different ways. Indeed, if you see an RSSI report using the specification language from Bluetooth BR/EDR. you will need to understand what those values mean. However, if you are talking to a peer and simply state that, "the RSSI is too low," you are likely just referencing the signal strength in dBm - and that's just fine. We can use a term colloquially and specifically, as long as the context defines what we mean.
I haven't even touched on the use of RSSI within the 802.11 standard, it has changed a lot over the years and would add even more complexity to this post. The main point here is twofold: 1) ensure you know the meaning of RSSI in your protocols and 2) it's OK to use RSSI as a reference simply to signal strength, I'll allow it.Tagged with: RSSI, Received Signal Strength, Received Signal Strength Indicator, dBm