RSSI-based locating issues in LoRaWAN networks

Learn why RSSI-based locating is problematic in LoRaWAN networks due to the variable nature of radio environments, interference, and the limitations of RSSI in accurately determining link range and signal quality. This article explains the challenges and offers insights into more reliable methods for improving location accuracy in LoRaWAN applications.

LoRaWAN background

Long Range Wide Area Network (LoRaWAN) is an open networking protocol that enables devices to communicate using a type of proprietary wireless technology known as Long Range Radio or LoRa.

LoRa was designed by Semtech and is characterised by its approach to signal modulation using a technique known as chirp spread spectrum (CSS).

A fixed channel bandwidth is selected, determined by spectrum availability and the application’s performance and data rate requirements. For example a 125 KHz bandwidth is most commonly used across Europe in LoRaWAN networks. The data rate of any given LoRa transmission is further determined by a so-called spreading factor in the range SF7 (lowest amount of spreading) to SF12 (highest amount of spreading).

The choice of bandwidth and spreading factor effectively determines the symbol period used, where a lower spreading factor has a lower symbol period (less time per symbol, higher data rate) and a larger spreading factor a larger symbol period (more time per symbol, lower data rate). Moreover, the choice of spreading factor also determines the processing gain obtained through the chirp modulation scheme when a receiver demodulates the signal.

Receive sensitivity and signal-to-noise ratio

The receive sensitivity is a very important characteristic of the system as a whole since it influences the total available link budget (more on this later) and becomes a key consideration when selecting components such as antennas, switches, power amplifiers etc, to assure that radio communications works reliably over a given range.

The influence of the choice of spreading factor can be readily seen when looking at the quoted receiver sensitivity figures for devices that implement LoRa. For example in an SX126x receiver:

Required RX Signal Power @ Sensitivity (dBm) in 125 KHz bandwidth Spreading Factor
-138 SF12
-125 SF7

Thermal noise

It should be noted here that the thermal noise power in the receiver will be fixed for the 125 KHz channel bandwidth in accordance with the formula N = kTB where k is Boltzmann’s constant 1.38 x 10-23 J/K, T is the temperature (in Kelvin) and B is the bandwidth (in Hz):

N (dBW) = 10 x log10(1.38-23 x 293 x 125000) = -152.9 dBW

However, it is more conventional to quantify this in dBm (i.e., noise power in mW) so we can just subtract 30 to get -122.9 dBm.

In additional to thermal noise power, we will have other fixed losses in the receiver implementation typically characterised by a receiver noise figure. This would typically be of the order 5 dB to 6 dB so our radio might have a noise floor of about -117 dBm in 125 KHz bandwidth.

Notwithstanding the radio noise figure, we can see that the quoted sensitivity signal power of -138 dBm is actually well beneath the thermal noise level. What does this mean? It means that the signal is undetectable through pure spectral analysis i.e., the signal is buried in the noise! The only way the signal can be recovered is to pull it out of the noise, which is effectively what the chirp spectrum demodulator does.

Signal-to-noise Ratio

The concept of SNR (Signal-to-Noise Ratio) is worth referencing at this point and is defined as:

SNR (dB) = Received Signal Power (dBm) - Noise Power (dBm)

Indeed the minimum decodable SNR of a SF12 signal is around -20 dB. And as the spreading factor is decreased we see a commensurate increase in the minimum decodable SNR. The following table shows minimum decodable SNR for different spreading factors:

SF Minimum decodable SNR (dB)
12 -20
11 -17.5
10 -15
9 -12.5
8 -10
7 -7.5

Note that it is more convenient to talk about SNR here for comparing different spreading factors since it is a property that is inherent in the design of LoRa and the processing gain of chirp spread spectrum systems and quite independent of the specific performance of a given radio receiver implementation.

Link budget

The classical link budget equation is formulated as:

Link Budget #1

Link Budget (dB) = TXpower + TXgain + RXgain - RXsensitivity [1]

[1] TXgain and RXgain should include the antenna gain normally expressed as dBi.

In LoRaWAN networks the power at which transmissions can be made is limited through regulation, since the RF spectrum is shared across many different applications, to manage interference. In the European 868 MHz band such transmissions are limited to +14 dBm EIRP (Equivalent Isotropic Radiated Power) which basically means the output power of both the transmitter and antenna combined shall be limited to +14 dBm.

With this in mind, the classical link budget calculation can be re-formulated as:

Link Budget #2

Link Budget (dB) = EIRP + RXgain - RXsensitivity [2]

[2] RXgain should include the antenna gain normally expressed as dBi.

Assuming a zero gain RX antenna and 125 KHz this yields a link budget of 14 + 0 - -138 = 152 dB using SF12 and 14 + 0 - -125 = 139 dB using SF7.

In summary, such a LoRaWAN system may have a link budget between 152 dB and 139 dB depending on the operating data rate. The available link budget governs the range and reliability of radio communications and is spent through:

  • Propagation losses such as free space path loss, losses from absorption through atmospheric conditions, buildings, foliage etc.
  • Multi-path fading phenomena e.g., signal reflections from large structures such as buildings, vehicles etc.
  • Interference from other users

As such the operating performance of a LoRaWAN radio link can be hugely variable since there is no fixed set of radio conditions that all users can expect to see.

Adaptive Data Rate (ADR)

To this end, the LoRaWAN standard encourages the use of an adaptive data rate (ADR) feature. This feature aims to adapt the link (spreading factor and transmit power) to the most optimal settings based on the above hugely variable factors of propagation loss, fading and interference.

The primary aim of ADR is to optimise the network experience for all users. This means using the minimum resources required for reliable radio communications and to limit the overall interference in the network. Ideally, every LoRaWAN user’s transmissions would be received at a level just above the minimum decodable SNR, with some safety margin added for instantaneous channel effects, such as multipath fading. To do this a LoRaWAN gateway measures the SNR of every received packet and periodically instructs the user to modify their spreading factor and/or transmit power.

Received Signal Strength Indicator (RSSI)

A further characteristic of any radio transmission is the RSSI or Received Signal Strength Indicator. This is typically expressed as a power measurement in dBm and can be defined as:

RSSI (dBm) = Received Signal Power (dBm) + Noise Power (dBm) + Interference Power (dBm)


It should be noted that, unlike SNR, this is a measurement of all received power in the channel band of interest. This means it has the following characteristics:

  • The noise floor of the radio is always the minimum power level the can be indicated at any given time i.e., it is the power we would measure if we connect a series termination resistor to the antenna port of the receiver. In our above example system this might be -117 dBm.
  • Since the spectrum is shared across many different users and applications RSSI will include the power received from all other applications' transmissions i.e., interference. The amount of interference will depend largely on the deployment location and can be modelled stochastically but will be very different between, say, a rural deployment versus a dense urban deployment.
  • For designated users of the network, it shall include the combined signal power received of those users' transmissions (since different LoRa SF can be used orthogonally). Note that this signal power may not be readily detectable through an RSSI measurement, particularly in the case where ADR is being used since the signal may be below the noise floor.

A further consideration is the resolution at which an RSSI measurement can be made. Most LoRa receiver implementations measure RSSI to a resolution of 1 dB.

LoRaWAN location services

A common method of locating users in a LoRaWAN network is based around the following principle:

  • Each gateway’s installation location is known precisely e.g. via a GNSS receiver
  • Multiple gateway’s “hear” the same transmissions from their respective locations
  • Each gateway provides their own report of each transmission to the network e.g., the RSSI of the received transmission.
  • The network performs some form of multilateration by estimating the link range of the transmission at each gateway to resolve the probable location of the transmission

It should be noted that this isn’t the only method but is common since it requires no further hardware, as such, to be added to a baseline implementation of the LoRaWAN standard.

Deriving link range from RSSI

Many white papers have been written on the topic of deriving link range from RSSI and most start with an assumed relationship between link range and RSSI that is expressed in the following terms or similar:

Pathloss #1

Pathloss (dB) = EIRP (dBm) + RXgain (dB) - RSSI (dBm) [3]

[3] Pathloss is the signal loss between TX and RX antennas, so we must account for any antenna RXgain

This approach has been taken with WiFi, Bluetooth and many other unlicensed spectrum radio technologies. However, as we will come to see, there are a number of problems with this characterization for LoRaWAN networks. But, on the surface, this is merely stating that the path loss experienced by a given transmission is simply the radiated power of that transmision, plus the antenna gain, less the RSSI at the receiver.

The link range can then be derived by solving the Free Space Pathloss (FSPL) formula for distance, d, where:

Free Space Path Loss

FSPL (dB) = 20log10(d) + 20log10(f) - 147.55, where d=distance (m) and f=frequency (Hz)

Note that a more generalized path loss model would also account for other losses by introducing an additional loss component, L, which can be set either by using empirical measurements or running channel model simulations. This would then become:

Pathloss #2

Pathloss (dB) = 20log10(d) + 20log10(f) - 147.55 - L = EIRP + RXgain - RSSI

We can plot a graph of the theoretical values one might see for a single radio link assuming no uplink interference (here, RXgain and L has been set to constant values based on empirical measurement on a system developed by Icoteq Ltd):


In this graph the signal power is swept across a full range of levels from minimum decodable SNR to very high SNR. The RSSI is then derived from the signal power assuming a nominal fixed radio noise floor and no interference and a 1 dB resolution of measurement capability at the receiver.

As can be seen from the graph the RSSI and Signal Power plots deviate significantly and only align once the signal power is around +10 dB above the noise floor of the radio. Practically speaking, using RSSI alone to derive link range is not possible for signals with lower SNRs. In the above example, this would only yield a theoretically accurate estimate for links within about 1.3 km of the receiver.

Another point to note here is that, as the SNR becomes negative, the slope of the signal power curve becomes asymptotic meaning that any significant error in SNR measurement will result in a gross link range estimation error (not to mention the resolution of the SNR measurement may only be 1 dB). Of course, there are many other reasons that could skew the accuracy of true link range (e.g., many deployments will not always have line-of-sight radio transmissions) so we concentrate here on purely line-of-sight transmissions.

Improved derivation of link range

An improved derivation for LoRaWAN would be to simply add the noise power back into the SNR. Thus we would have:

Received Signal Power #1

Received Signal Power (dBm) = SNR (dB) + Noise Power (dBm)

However, this approach can run into limitations of the reporting range of SNR e.g., -22 dB to +14 dB in many LoRa modem implementations. So it becomes necessary to consider both RSSI and SNR to overcome this. In fact, we can account for this as follows:

Received Signal Power #2

If RSSI < RSSIthreshold then:

Received Signal Power (dBm) = SNR (dB) + Noise Power (dBm) [4]


Received Signal Power (dBm) = 10log10(RSSIlinear - Noise Powerlinear - Interference Powerlinear) [5]

[4] The choice of RSSIthreshold will depend on the levels of noise and interference power.
[5] We have to convert logarithm scale numbers to linear to perform addition or subtraction.

Note that the Noise Power term becomes practically negligible once the SNR is 10 dB or higher and can be therefore discounted in the RSSI-based equation. The Interference Power, as discussed earlier, will depend on the deployment scenario and overall traffic conditions in the band which can be derived through modelling or empirical measurements.

It should be noted that this is the only formulation of signal power that has any real hope of working across a range of different operating conditions in light of how LoRaWAN networks work in practice. However, this approach can never be perfect as one can not fully account for all radio channel conditions at any given moment. As such, the SNR measurement can be impacted by instantaneous channel fading which can have a very large influence on any derivation of link range, particularly at lower SNR levels since the slope of the link range curve is asymptotic.

To combat this one could employ averaging over many transmissions to ameliorate such radio channel effects but this may not be practical in some situations i.e., too much drain on battery life, does not allow for mobility of the user.


LoRaWAN networks and their associated protocols have been designed to work in highly variable radio environments which, by their nature, are very difficult to characterize and predict in advance. Moreover, the operating settings of the radio links that run within LoRaWAN networks are dynamically adapted to limit interference and optimise the overall network performance.

Many white papers and studies have proposed using RSSI-based locating methods and applying them directly to LoRaWAN networks. These methods do work, to some degree, in radio systems designed to operate with positive SNR radio links (e.g., WiFi, Bluetooth). However, it can be seen that with just some basic analysis, such methods are unlikely to work well in a LoRaWAN network without prior adaptation and, even then, will be subject to significant accuracy errors at lower SNRs.