LQ and RSSI in TBS Crossfire

LQ and RSSI can be confusing for first time TBS Crossfire users. In this tutorial I will try to explain what the differences are between LQ and RSSI in Crossfire. I will also show you how to set it up in Betaflight and OpenTX on the Taranis TX to monitor your link quality and range.

RSSI and LQ are useful for estimating the range of your RC signal during flight.

If you are a new Crossfire owner, check out my guide on how to setup TBS Crossfire with Betaflight and Taranis X9D.

Differences between LQ and RSSI

RSSI​ is an indicator of received signal strength, measuring the power present in a received radio signal.

Besides RSSI, Crossfire receivers can also output LQ, which stands for “Link Quality”. It’s based on the percentage of signal data received.

You can also output a combined RSSI/LQ value. The RSSI/LQ value will always show the worse value between the two. This is useful if the used OSD only has one input for radio link statistics.

What is LQ?

The Crossfire LQ is scaled from 0% to 300%, not 0% to 100% like other traditional signal indicators. This is because of the increased data link in Crossfire.

Traditional remote controls can only do 50Hz, which means 50 commands per second. The Crossfire can transmit at 150Hz maximum, that’s 150 commands per second. If we assume 50 commands per second is 100% link quality, then 150 commands per second would be 300%.

Why use LQ for monitoring Link Quality?

To know the range limit based on RSSI, you also need to know the noise floor. Heavy noise level can screw up the RC link all the same regardless how strong the signal is. Noise floor depends on many factors including the environment and the electronic components in your quadcopter.

The general recommendation is to use LQ over RSSI and signal to noise ratio (SNR) as your primary metric for whether your radio link is healthy or not.

In many situations I’ve found to have bad RSSI while LQ is still high and working well.

LQ just seems to be more reliable for me than RSSI. You can also use RSSI/LQ if you want to be more conservative about range.

Display LQ in Taranis OpenTX

Assign Channel to Output LQ

Execute the “Crossfire” LUA script on your Taranis. (How do I do that?)

Scroll down to “Channel Map” and pick a spare Dst. channel and change it to “LQ”, for example channel 8.

crossfire lua script channel lq rssi

Display it on OSD

You can display this value on Betaflight OSD.

Go to the “Receiver” tab in Betaflight Configurator, select the Aux channel you are using for LQ. For Ch8, you should pick “AUX 4”. (minus the throttle, yaw, pitch and roll channels)

display lq rssi betaflight aux channel

In the OSD tab, you also need to enable RSSI to display the value on screen and that’s it :)

Setup Low LQ Warning in Tarains

LQ in Crossfire can output a wider range than OpenTX can interpret (0-300%). Therefore it’s split into 2 separate values in OpenTX (sensors in the telemetry tab): RLQY and RFMD.

RLQY stands for Received Link Quality. It’s the amount of the transmitted signal received by the receiver in percentage (0% to 100%).

RFMD means the Received Frequency Mode, and there are 3 RF modes:

  • RFMD = 2 , 150Hz Mode,
  • RFMD = 1, 50Hz Mode
  • If RFMD = 0, 4Hz Mode (no telemetry)

Basically RFMD 2 is the Low latency mode for short distance flying and it provides the fastest update rate of 150Hz. Crossfire goes into RFMD 1 when you go for long range. If signal gets really weak, it will go into RFMD 0 and drop the update rate to 4Hz without telemetry.

By the way LQ can drop for a split second when it changes mode.

Here are what the logical switches are doing:

  • L01 – this switch is triggered when we are in RFMD 1 or 0
  • L02 – This is the warning switch. it’s turned on if L01 is on, and LQ is lower than 80%. There is a 0.5 second in case it’s just a glitch when mode is changing
  • L03 – This is the critical warning switch. It’s turned on if L01 is on, and LQ is lower than 70%. There is also a 0.5 second delay for the same reason

taranis opentx logical switch rfmd rqly play warning

Here are the Special Functions that play the audio warnings:

  • SF1 – it plays the sound “Warn1” when L02 is switched on (80% LQ)
  • SF2 – it plays the sound  “Siren” when L03 is on (70% LQ)

You can use function “Play Track” to play any audio files you upload to the radio, here is a tutorial to teach you how.

taranis opentx special functions play low lq rssi warning

!1x at the end of a function means it won’t play when you turn on the radio, and it only plays it once.

What’re the Ideal LQ and Lowest LQ

When you are in RFMD 2 (150Hz), the maximum LQ will be 300%. But really, the percentage of LQ in this mode is kind of irrelevant and you can ignore it. Because the system will switch to  RFMD 1 (50Hz) if it requires better link quality.

You should start to pay attention to LQ in RFMD 1. If the signal quality continues to deteriorate it will change to the super slow RFMD 0 which only gives you 4Hz of update rates. It’s probably not great for acro flying on a quad, but should be okay to bring a wing/plane home.

A healthy long range link (RFMD 1) should stay above 90%.

LQ of 70% of lower is considered bad, If you see this you should turn back asap! If it’s consistently lower than that then you should check your antenna and frequency setting for potential setup errors.

39 thoughts on “LQ and RSSI in TBS Crossfire

  1. Airmaxx23

    What does the “Warn1” sound like? I can’t find the sound file anywhere to hear it so I know what to listen for.

  2. Nathan


    Do you know if it’s possible to have a numerical value of rqly from a PDB steele/ kiss FC v2 ?
    I just have the reception symbol for the moment but I prefer having the value on the osd (like in betaflight)…

  3. gino carpio

    i have crossfire running with a TBS tango. my rssi for some reason is reading 25. never see it at 100. ch 8 is on LQ and rssi is on ch 4. but the scaling is way off. i plug it and immidiately its on 22-24rssi


  4. Dikto Vally

    Hi Oscar, thanks for tutorial, its really help me with my crossfire, just one to know if we can set failsafe in special function when L03 is active? And how to set it ? Apreciate your reply.

    1. Oscar Post author

      You can probably trigger failsafe in Betaflight with an AUX channel.
      You can make this AUX channel from L03 in the Taranis? (Mixer page)

  5. Tim Eckel

    Talking with the TBS Crossfire engineer, you should be using the RSNR sensor for RSSI, not as discussed on this page.

    The formula should be: RSSI = (max(RSNR, 40) + 4) * 2.25

    Scale will be 0 to 99 with a warning at a RSNR of 0dB (or 9 using the above RSSI formula).

    1. CaptainPilou

      Hi Tim,
      I applied this formula to data I collected from my logs and am a bit confused. My values of RSNR goes from 0 to 60. When RSNR=50 for example, according to the formula, my RSSI would be (60+4)*2.25=144, which is out of the range 0-99. Am I misunderstanding the formula? Thank you

    2. CaptainPilou

      It looks like the formula should be rather using MIN. As a result, it seems much more relevant to have RSSI=(MIN(RSNR,40)+4)*2.25. @Tim Eckel, could you please confirm with the Crossfire engineer you’ve been in touch with? Thx a lot

  6. I. V.

    I saved all my moneys to get me a crossfire micro bundle and I saved all my moneys again to build a catalyst machineworks merica with a f405 Mamba flight controller. I have bound the receiver with the tx and I am transmitting between the two. I can arm and fly but I have rssi issues. I set my LQ on channel 12 which is aux 8 in my flysky nirvana, and I can see that aux 8 is at 2000 on the receiver tab of betaflight, so I know that its working. also in my sensors txlq and rxlq are both 100. I have rssi checked in the configuration tab, as well as telemetry, but still my rssi value never increases more than 40 or 50. I have never seen 99 on this quad. My antenna placement is not bad either, my receiver is not blocked by a lot of carbon, and I am just lost as I don’t know what to do at this point. I even tried another receiver.any ideas?

    1. John

      I am having this same issue… I have crossfire nano receivers in multiple quads / wings and only one quad is behaving this way. I updated my full sized crossfire module to the latest firmware and rebound the nano on the trouble quad and no change. Any help would be appreciated.

    2. Jackonesia fpv

      Hello sorry for the translation I also have the flysky nv14 I think the trouble comes from a place in input the weight option only goes to 100 while on the taranis it goes much further then on the flysky the value is just divided by 2 I think the problem will be fixed in a future update

  7. Andre

    Does anyone know how I could get Link Quality to show on my OSD (Betaflight) using HeliNation Talon F7 FC and Crossfire Nano.It is connected to UART4

  8. James Oldfield

    Hi Oscar, I’m trying to set up the logical switches section on the taranis but don’t have the option for rmfd or rqly. I have the crossfire working fine in my quads I just need rssi for my wing that doesn’t have a fc and no osd. Is there any reason these options aren’t there? Cheers James

    1. Jacob

      I have this same issue – but the rmfd and rqly aren’t showing up for my quad. Using the flightone revolt v3 FC. (If you know how to get it to work for my quad)

  9. Toper

    Hi Oscar,
    i just write a tuto on the “We are FPV” blog here wearefpv.fr/tuto-crossfire-taranis-qx7-20180726/, and i have a question: why do you set a spare channel to “Lq” ?

  10. Mark Pfeifer

    I’ve been getting intermittent haptic warnings on my Taranis even though I was well within range with 99% LQ showing in the OSD. Do you think it is just the system switching between the two modes? Does your set up method above eliminate the warnings when switching modes or is this just something we need to get used to and understand?

      1. Josh

        I’m seeing the same as Jesse. on OpenTX 2.2.2 with all updates done (as far as I know) to crossfire lua, crossfire tx and nano rx, if it matters. I see one “!-” and then just numbers.. no option for “!” and a subsequent number value.

  11. Jan

    Oscar, so I have my crossfire set to LQ/RSSI on channel 8, not running teranis. Using osd, would it be better to just run LQ only through the osd ?

  12. William Jarvis

    Great post, really helpful. Am I right in thinking that it’s best to use 8 channels max with crossfire? I accidentally put LQ on channel 12, would this cause a more latent output?

  13. James (not a robot)

    Thanks Oscar. You are the first I have come across who explains the “!” before the x1 in the special functions warnings.

    Many thanks.

  14. schim

    Oscar! This is really good info! I only use TBS crossfire a few weeks now (activly after the winter).
    It’s great to get this telemetry – confidence with good set up alarms. Now I have my RSSI monitored and I get notification if I fly out to far (I use the smaller crossfire TX).
    thanks, RCSchim

    1. Oscar Post author

      Thank you Mario :)
      It’s indeed important to understand how to read the values and set this up correctly for long range :)

    1. Mike

      Hi, if the LQ is 0-300%, and Betaflight shows 0-99% in the OSD does it scale the 0 to 300 into 0 to 99? I.e. 50 would represent 150% LQ? Or does it show 99% into the LQ drops below 99%?



  15. titanium

    Great explanation gathered in one place :D Thx !
    These drops when changing mode are sometimes annoying as we are not able to display the TX transmit power on the OSD.
    I sometime dream we have a second field in betaflight to display it as we have the value in the taranis …

    1. Juanma

      I would second that, a way to display custom telemetry values like the RFMD in the Betaflight OSD. Is there any Github task to do that? Maybe it’s worth to take a look and create one?

  16. Thomas Houser

    I recently setup my Taranis and BF OSD for CF LQ. I am using the TBS Fullsize Crossfire TX and the Nano receiver. I selected Ch12 on the Nano for LQ and Aux 8 in BF configurator. The problem I’m having is it appears “Stuck” at 49 in the BF OSD and Configurator when checked. I am using the Brain FPV Radix which uses it’s own “Special Sauce OSD”. So.. really don’t know where to look to resolve the issue. Is it a Crossfire issue or a Radix OSD issue??


    1. Oscar Post author

      What does RSSI say in Confirgurator Setup page? You can also confirm in OpenTX.
      In the Configuration tab of BF, check the RSSI_ADC option is NOT checked on.

    2. David M Butz Jr.

      Tom, I had the same issue. I found that if I turned off RSSI_ADC in the configuration tab of betaflight that it would read 99 intead of 49.


Leave a Reply

Your e-mail address will not be published. Required fields are marked *

Are you Robot? *

For prompt technical support, please use our forum IntoFPV.com. I check blog comments weekly.