Saturday, June 6, 2026
HomeDroneLQ, RSSI and SNR — RC Link Signal Indicators Explained for ExpressLRS...

LQ, RSSI and SNR — RC Link Signal Indicators Explained for ExpressLRS and Crossfire


LQ, RSSI, and SNR are all important metrics for ensuring a reliable radio link in FPV drones using ExpressLRS or Crossfire. While they all provide valuable information, they measure different aspects of the connection. Understanding the differences between LQ, RSSI, and SNR can help pilots monitor signal health during flight, estimate how much further you can fly, even help you to troubleshoot radio equipment when there’s a connection problem.

Some of the links on this page are affiliate links. I receive a commission (at no extra cost to you) if you make a purchase after clicking on one of these affiliate links. This helps support the free content for the community on this website. Please read our Affiliate Link Policy for more information.

Further Reading:

What is RSSI?

RSSI stands for Received Signal Strength Indicator. It measures the strength of the received signal and is useful for estimating how much range you have left during a flight.

RSSI is measured in dBm (decibel-milliwatts), which is a logarithmic scale, rather than mW (milliwatts), which is linear.

RSSI starts at 0 as the highest possible value. As you fly farther away and the signal gets weaker, the number becomes more negative. -130dBm is often quoted as the hard limit, but in reality the lowest usable RSSI is a lot higher, which depends on factors such as packet rate, frequency, and modulation mode.

Best signal (0dBm) → Worst signal (-130dBm)

Expresslrs Packet Rates Sensitivity Limit Rssi Dbm

Why use dBm instead of mW?

That’s because receivers can detect incredibly weak signals that are awkward to express in mW.

For example: 0.000000000001mW = -120dBm

It is simply much easier to use dBm when dealing with numbers that would otherwise have so many zeros.

Here is a simple conversion table between dBm and mW:

Power (dBm) Power (mW)
-130dBm 0.0000000000001mW
-110dBm 0.00000000001mW
-90dBm 0.000000001mW
-70dBm 0.0000001mW
-50dBm 0.00001mW
-30dBm 0.001mW
-10dBm 0.1mW
0dBm 1mW
10dBm 10mW
20dBm 100mW
100dBm 10000000000mW

In Betaflight OSD, you have two RSSI options:

  • RSSI (percentage)
  • RSSI dBm

I recommend using RSSI dBm, because it gives you the true signal strength. Modern RC systems such as ExpressLRS, Crossfire, and Tracer support RSSI dBm reporting, while older systems such as FrSky and Spektrum may only support RSSI in percentage.

Pro Tip:

With ExpressLRS diversity receivers (those with two antennas), you may see a second number after RSSI dBm, separated by a colon, for example: -50:2, The first number is RSSI dBm; The second number indicates which antenna is currently being used.

What is LQ?

Betaflight Osd Expresslrs Link Quality Rfmd

LQ stands for Link Quality (sometimes known as LQI). It measures the percentage of uncorrupted data successfully received. In ideal conditions, LQ should be 100%.

LQ is usually displayed in the format:

RFMD:LQ. For example: 29:100.

  • The first number is RFMD (RF mode)
  • The second number is the actual link quality percentage

If you came from ExpressLRS 3.0 you might find the RFMD no longer makes sense. That’s because in ExpressLRS 4.0, the developer changed the RFMD numbers.

Here’s a look up table on how to interpret RFMD, frequency band, packet rate, and modulation mode in ELRS V4. For example, if you see 29:100, that means you are using 500Hz packet rate on 2.4GHz LoRa. If you are still using ELRS V3, please refer to the Wiki for the old table.

RFMD Band Lua Packet Rate Sensitivity Limit
0 900 MHz 25Hz 25Hz LoRa -123dBm
1 900 MHz 50Hz 50Hz LoRa -120dBm
2 900 MHz 100Hz 100Hz LoRa -117dBm
3 900 MHz 100Hz Full 100Hz 8ch/12ch/16ch LoRa -112dBm
5 900 MHz 200Hz 200Hz LoRa -112dBm
6 900 MHz 200Hz Full 200Hz 8ch/12ch/16ch LoRa -111dBm
7 900 MHz 250Hz 250Hz LoRa -111dBm
10 900 MHz D50 50Hz DVDA LoRa -112dBm
11 900 MHz K1000 Full 1000Hz 8ch/12ch/16ch FSK -101dBm
21 2.4 GHz 50Hz 50Hz LoRa -115dBm
23 2.4 GHz 100Hz Full 100Hz 8ch/12ch/16ch LoRa -112dBm
24 2.4 GHz 150Hz 150Hz LoRa -112dBm
27 2.4 GHz 250Hz 250Hz LoRa -108dBm
28 2.4 GHz 333Hz Full 333Hz 8ch/12ch/16ch LoRa -105dBm
29 2.4 GHz 500Hz 500Hz LoRa -105dBm
30 2.4 GHz D250 250Hz DVDA FLRC -104dBm
31 2.4 GHz D500 500Hz DVDA FLRC -104dBm
32 2.4 GHz F500 500Hz FLRC -104dBm
33 2.4 GHz F1000 1000Hz FLRC -104dBm
34 2.4 GHz DK250 250Hz DVDA FSK -103dBm
35 2.4 GHz DK500 500Hz DVDA FSK -103dBm
36 2.4 GHz K1000 1000Hz FSK -103dBm
100 Gem-X 100Hz Full 100Hz 8ch/12ch/16ch LoRa Dual Band -112dBm
101 Gem-X 150Hz 150Hz LoRa Dual Band -112dBm

For Crossfire, RFMD is much simpler:

  • RFMD = 2 → 150Hz
  • RFMD = 1 → 50Hz
  • RFMD = 0 → 4Hz

Crossfire can also dynamically adjust packet rate to maintain a stable control link. However Betaflight advises against using Dynamic packet rate as it may interfere with RC smoothing as explained here.

What is SNR?

SNR stands for Signal-to-Noise Ratio (sometimes called RSNR, or relative signal-to-noise ratio). It compares the actual signal level to the background noise.

The higher the SNR, the better.

If SNR is low, it’s means:

  • RF interference is heavy;
  • or/and signal is too weak

But what SNR is considered good and bad? Well, the ideal SNR range depends on frequency and packet rate. According to ELRS wiki:

For 2.4GHz

Packet Rate Bad SNR Good SNR
500Hz Below 5.0dB Above 9.5dB
333Hz Full Below 5.0dB Above 9.5dB
250Hz Below 3.0dB Above 8.5dB
150Hz Below 0.0dB Above 8.5dB
100Hz Full Below 0.0dB Above 8.5dB
50Hz Below -1.0dB Above 6.5dB

For 900MHz

Packet Rate Bad SNR Good SNR
200Hz Below 1.0dB Above 3.0dB
100Hz Full Below 1.0dB Above 3.0dB
100Hz Below 1.0dB Above 2.5dB
50Hz Below 1.0dB Above 1.5dB
D50 Below 1.0dB Above 3.0dB
25Hz Below -3.0dB Above 0.5dB

For Crossfire, the typical SNR value is usually much higher than for ELRS, often around 4 times higher.

Not all modulation modes support SNR in ExpressLRS. For example, in FLRC modes such as: F1000, F500, D500, D250, SNR will simply stay at 0.

LQ, RSSI and SNR — Which Is the Most Important?

LQ, RSSI, and SNR are all useful metrics for judging your radio link quality and range limit. Ideally, it is best to display all of them in your OSD.

When checking signal health, I would say LQ is the most important, because it is the most direct indicator of how reliable your link is at any given moment.

However, LQ does not drop linearly with range like RSSI does. It often stays high until you get close to the limit, then suddenly falls off very quickly.

That is why RSSI is also very important. It tends to decrease more gradually and predictably, which makes it better for estimating how much range you have left.

But RSSI alone is not enough, because it does not account for the noise floor. That is why SNR is useful. Heavy RF interference can ruin your RC link even if the signal itself is still reasonably strong. Noise level depends on many things, including:

  • the environment, such as cell towers
  • the electronics on your drone, such as your VTX or FPV air unit

A Useful Analogy

A good analogy for this is to think of the receiver as the person you are trying to talk to in a noisy restaurant, with you being the transmitter. When you are talking, the volume of your voice is RSSI, the other person can hear you and understand everything you are saying, in this case LQ would be 100%. What really matters here is not how loudly you speak, but how many words the other person can hear and understand. So even if your voice is loud enough to be heard (high RSSI), the other person may still not understand you if the restaurant is too noisy (low SNR). In that case, you can end up with high RSSI but poor LQ.

That is why all three indicators matter.

Interpreting Them Together

Here is a practical way to think about these signal indicators:

LQ RSSI SNR What Does It Mean?
High High High Healthy radio link
High Low / Approaching the edge of your range, or possibly a faulty antenna
High High Low Link still holding up, but noise may become a problem soon
Low High Low Strong signal, but heavy noise/interference is corrupting packets
Low Low Low Range limit reached, turn back now or risk failsafe

The Minimum LQ

Ideally, LQ should stay at 100% throughout most of your flight, but it is normal for it to fluctuate in the 90s. LQ measures the percentage of data packets that successfully reach the drone. For example, an LQ of 50% means only half of the data packets are getting through.

Even so, the quad is usually still flyable. At a 500Hz packet rate with 50% LQ, you are still receiving 250 commands per second, which is still far faster than older protocols such as SBUS, which only runs at 50Hz. However, if you are flying at 50Hz packet rate with 50% LQ, only 25 commands per second are getting through, and you will likely start noticing jittery or delayed responses to your stick inputs.

The exact LQ threshold at which you should react is subjective and depends on how much risk you are willing to take. You definitely should not wait until LQ drops so low that the drone becomes difficult to control. Also, unlike RSSI, which tends to decrease more gradually, LQ can drop very quickly once it starts falling.

A dropping LQ is a warning sign. It usually means one of the following:

  • you are approaching the limit of your radio range
  • you are experiencing heavy interference
  • something else is wrong with the link

Personally, if I see LQ consistently below 90%, I immediately check RSSI dBm. If RSSI dBm is also low, for example within 10dB to 15dB of the sensitivity limit, it is probably a good idea to turn back. If RSSI remains high, I continue to watch LQ closely to see whether it recovers. If LQ keeps dropping, I turn back, because that usually points to worsening interference or deteriorating link quality.

You should definitely turn back if LQ falls below 50%, because at that point the increase in latency will make control more difficult, and you may be close to a failsafe.

The Minimum RSSI

The lowest RSSI depends on the packet rate and frequency of the signal. Lower packet rates and lower frequencies generally have better sensitivity.

For example, the lowest theoretical RSSI value for 2.4GHz at 500Hz is -105dBm, while for 915MHz at 25Hz it is -123dBm, which is one reason lower-frequency, lower-packet-rate modes are better for long-range flying.

It is important not to underestimate what even a few dBm means, because every 6dB roughly doubles the range.

For example, in ExpressLRS, dropping the packet rate from 500Hz (-105dBm) to 150Hz (-112dBm) effectively doubles the range (and a bit more). I have a separate tutorial explaining how to use dB to estimate range in FPV: https://oscarliang.com/calculate-fpv-range/

Here is a table of the lowest RSSI values (sensitivity limit) for each RF mode (from the ExpressLRS Wiki). If RSSI drops below these limits, you will get a failsafe.

Modes Sensitivity Limit
D250/D500/F500/F1000 -104dBm
500Hz/333Hz Full -105dBm
250Hz -108dBm
150Hz/200Hz/100Hz Full -112dBm
100Hz -117dBm
50Hz -117dBm
25Hz -123dBm

You can also find the sensitivity limit directly in the ExpressLRS Lua script when selecting a packet rate.

Expresslrs Elrs Lua Script V2 Interface App

So what’s the lowest RSSI you should allow to avoid failsafe?

In practice, you should not let RSSI drop all the way to the sensitivity limit. Always leave some safety margin. I personally use 10dBm of headroom above the sensitivity limit.

For example, if your packet rate is 500Hz LoRa on 2.4GHz, the minimum RSSI limit would be -105dBm. In that case, you should probably turn back when you see around -95dBm in your OSD, using 10dBm as your safety margin.

Some experienced pilots may use a smaller margin and push the link harder (and because they understand the capability of their gear), but if you want to play it safe, 10dBm is a good starting point.

Also note that RSSI dBm does not take RF noise into account, which is why it is important to also check SNR and LQ. If RSSI is high but SNR and LQ are low, then noise or interference is likely the culprit.

TX Power

Expresslrs Lua Script Tx Power Setting

You can manually set a fixed TX power in the ExpressLRS Lua script, or you can use Dynamic Power and let the system decide for you.

With Dynamic Power, ExpressLRS adjusts the transmitter power based on SNR:

  • if the signal gets weak or noisy, it increases power
  • if the signal is strong and clean, it reduces power

Dynamic Power is a good way to save radio battery while still maximizing range when needed. If you use Dynamic Power, there is a TX Uplink Power OSD element you can display, which shows the actual transmit power being used.

That said, some long range pilots still prefer to use a fixed TX power. The reason is simple: when Dynamic Power kicks in, your RSSI and SNR can jump up and down. You may not want the system constantly changing link indicators while you are trying to judge interference and estimate range.

It is also important to understand that doubling TX power does not double your range. To double the range, you would need to increase TX power by about 4 times. At higher power levels, this quickly becomes impractical because of the downsides, such as:

  • overheating the TX module
  • reduced efficiency
  • reduced reliability
  • increased interference to nearby pilots or FPV gear

It is generally best to start with a low power setting and only increase it when necessary.

Someone in the community (I won’t name names) proved that it is possible to fly 2km on just 10mW at 500Hz packet rate. If they had used 150Hz instead, they could probably have reached 4km. It just goes to show that you do not need much power — ExpressLRS is seriously solid.

Display LQ, RSSI and SNR in OSD

In the Receiver tab in Betaflight, set both:

  • RSSI Channel = Disabled
  • RSSI_ADC = Disabled

Betaflight Configurator Setup Expresslrs Receiver Link Quality Rssi 2024

Then in the OSD tab, enable:

  • Link Quality
  • RSSI dBm Value (not RSSI Value)
  • RSNR Value

Betaflight Osd Enable Rssi Dbm Link Quality Lq Snr Rsnr Elements

I recommend having LQ, RSSI dBm, and RSNR all displayed in your OSD, because they each tell you something different about your radio link.

Lq Rssi Dbm Snr Explained Tutorial Guide Expresslrs Radio Link Rc

LQ, RSSI and SNR Alarms in OSD

You can also enable OSD alarms for RSSI dBm, LQ, and SNR in Betaflight.

First, enable the Warnings element in the OSD tab and place it near the center of the screen so you do not miss it when a warning is triggered.

Betaflight Osd Enable Warnings Element

Then, on the right side of the OSD tab under the Warnings section, enable:

  • Link Quality
  • RSNR
  • RSSI dBm

Betaflight Osd Enable Rssi Dbm Link Quality Lq Snr Rsnr Warnings

You can change the thresholds for these warnings using the CLI:

set osd_rssi_dbm_alarm = -98
set osd_link_quality_alarm = 70
set osd_rsnr_alarm = 4
save

For RSSI dBm, I personally use a margin of 10dB above the sensitivity limit of the packet rate. For example, for 250Hz, sensitivity limit is -108, so I’d set the RSSI dBm alarm to -98. The default value is -60 which is way too high in my opinion and will give you a premature warning.

For LQ and RSNR I just use the default values.

Bench Test

To check whether your ELRS radio link is working correctly, you can perform this simple bench test.

  1. Set TX power to the lowest level in the Lua script (10mW or 25mW, depending on your TX module)
  2. Power on your radio and drone
  3. Place your radio about 1m (3ft) from the drone (receiver antenna)
  4. Make sure the radio antenna and receiver antennas are aligned in the same orientation
  5. Check in the OSD, or on the radio’s telemetry page, what the RSSI dBm is (or the 1RSS telemetry value)

For 2.4GHz, a value between about -25dBm and -40dBm is considered good. For 900MHz, a value around -20dBm suggests the hardware is working properly.

Expresslrs Radio Link Drone Receiver Antenna Bench Test Rssi Dbm

If your value is lower than this (a more negative number), it may indicate that something is wrong, such as:

  • a faulty antenna
  • a disconnected antenna
  • damaged RF hardware

Setup Low LQ Warning in EdgeTX

In your radio, go to model setup, press the “PAGE” button to scroll to the Telemetry page. Set “Low alarm” to 50, and “Critical alarm” to 20. Make sure “Disable alarms” is unchecked.

That’s it.

You should get a voice warning when LQ drops below these values.

Edgetx Rssi Lq Telemetry Critical Warning Low Alarm

Edit History

  • Apr 2018 – article created
  • Jan 2020 – added instructions for displaying LQ in Betaflight 4.1
  • Jan 2021 – updated for BF 4.2,
  • Mar 2022 – updated URL, rewritten for ExpressLRS release
  • Mar 2023 – updated guide for ExpressLRS 3.0
  • May 2026 – updated guide for ExpressLRS 4.0
RELATED ARTICLES

Most Popular

Recent Comments