LQ and RSSI in TBS Crossfire

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

If you are new to Crossfire, check out my guide on how to setup TBS Crossfire with Betaflight.

What is RSSI

RSSI​ (Received Signal Strength Indicator) is an indicator of received signal strength, measuring the power present in a received radio signal.

while this is a useful parameter for someone who is experienced, for MOST pilots this reading will only confuse you, especially if you are coming from Frsky who uses RSSI as their indicator for link.

What is LQ

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

The Crossfire LQ is scaled from 0% to 300%, not 0% to 100% like RSSI.

A Crossfire LQ between 300 and 200 means it’s in 150 Hz Mode, between 200 and 100 it‘s 50 Hz Mode and then it switches to 4 Hz Mode below 100 LQ. If your LQ drops below 70% you should turn back immediately!

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.

Why Use LQ Instead of RSSI for Crossfire

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 components in your drone.

A good analogy for this is to think of the Crossfire Receiver as the person you are trying to talk to in a noisy restaurant, and you are the Transmitter. When you are talking (RSSI), the other person can hear you and understand everything you are saying (LQ). What really matters is not how loudly I speak, but how many words you can hear and understand.

If you are not so familiar with how RSSI works we recommend to use LQ as your primary metric for determining 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 (New Way)

Since Betaflight 4.1, displaying LQ or RSSI from Crossfire is made super easy. You no longer need to assign LQ or RSSI to an AUX channel in the receiver (LUA script). It just appears in Betaflight now, all you have to do is:

  • In configuration tab, Disable RSSI_ADC
  • In Receiver tab, RSSI Channel, select Disable
  • In OSD tab, you can now select Link Quality, RSSI in dBm, or RSSI

Previously in older Betaflight versions, LQ would only show a maximum of 99%, but it didn’t show 100-300 range, and so you couldn’t see the fluctuations between 150hz mode and 50hz mode.

Since BF4.1, LQ is displayed in separated RFMD value (0-2) followed by the LQ value (0-99).

While the RFMD value is at 2 (150Hz latency mode) you don’t even need to worry about the LQ value. Once the RFMD values drops down to 1 (50Hz latency mode) you need to start paying attention to the LQ value because anything below 80 while in RFMD 1 is warning territory and 70 is in the critical danger zone (you need to turn back immediately). If you ever see an RFMD value of 0 then your quad is already falling from the sky.

Keep in mind that small losses in 150Hz mode are perfectly normal, they should remain within 10% on normal flying.

That’s it!

Note that you need Crossfire firmware version 2.94 or newer for this to work. Otherwise you will get 0 LQ and RSSI.

If you use an older version of Betaflight prior to BF4.1, then you’d have to following the instructions below.

Display LQ (Old Way)

Prior to Betaflight 4.1 you have to use this method. You can also use this if you are using DJI FPV System as LQ doesn’t work.

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 :)

The value will stay at 99 most of the times, because LQ is ranged between 0 to 300, and RSSI is only designed to display 0-99.

When it drops below 99, it’s already in 50Hz mode, you should be looking at this number closely. And when you see it drops to 70, you should turn back.

Setup Low LQ Warning in OpenTX Radio

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.

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.

RSSI Is Not Useless

Normally you can display one of them, or both of them if you want. I personally prefer to use LQ over RSSI, but sometimes it’s useful to have both measurements. For example:

  • low LQ, high RSSI –  lots of interference around you
  • high LQ, low RSSI – an indicator that maybe something is wrong with your antennas
  • low LQ, low RSSI – reaching the range limit of your gear

Edit History

  • Apr 2018 – article created
  • Jan 2020 – added tldr section, added instructions to display LQ for Betaflight 4.1
  • Jun 2020 – updated for BF 4.2 – changed how LQ is displayed in OSD

54 thoughts on “LQ and RSSI in TBS Crossfire

  1. Rob Hafey

    I had to get a new replacement receiver from TBS. After setup everything worked except I had the stuck at 49 problem (all settings in BF and in the Tango 2 were the same). My issue was that the receiver Dst Channel 8 wasn’t set to LQ (see above). This cause my LQ to be stuck at 49. Thanks Oscar for the great articles.

    Reply
  2. jeremy

    Hi,

    I’m currently trying to setup the LQ and RSSi signal on my betaflight 4.1.6 but nothing happen. I tried the old and the new method but no result could you help me :) ?

    Thanks and keep going your website is perfect

    Reply
    1. Oscar Post author

      Just focus on LQ, as long as it’s above 70 you’re fine.
      low RSSI might suggest you have problematic antennas.

      Reply
  3. Jeremy Holt

    Hey I tried doing these steps and I have the rssi showing up on osd but my link quality just has one digit. It has a 9 and it never changes even though rssi drops as expected. I am running bf 4.0.4

    Reply
  4. Brandon

    Crossfire nano connected to FC via sbus 3 wires. Using dst channel 8 for LQ on nano rx. Plug in, Rssi in osd is 99 for the whole flight, 97 on occasion. Take that same quad, plug in, go in the nano, change LQ to off, then back to LQ. Rssi in the OSD is now 99 when close and drops fairly quick as I fly away, and reads all over. Any ideas?? 3.23, opentx 2.2.4, bf 4.2??

    Reply
  5. genivos

    When I set this up for use with the DJI FPV system, it works but only shows RSSI selected on the OSD screen in Betaflight. I know that it’s the case cause the goggles doesn’t show LQ yet. But .. the number of RSSI is 60-70 while flying. I also read that’s normal and you can scale it (set rssi_scale). But here comes my question, what’s the best to set in this case while using a digital system like DJI FPV? Can’t really find anything about that how to precisely configure it.

    I’m running Betaflight 4.1.7 and 4.2 so I’d rather use the new way of configuring to free a channel :)

    Reply
    1. Oscar Post author

      RSSI is not as useful as LQ for Crossfire to be honest. Setup audio warning on your radio perhaps? I have a tutorial here. But really your radio link will almost always out-range your video since the frequency is so much lower.

      Reply
  6. Ciprian Silvasan

    Got an answer to my question.
    So in the googles you will see LQ on three stage. 2=150Hz, 1=50Hz and 0=4Hz from 0 to 300%. On Taranis you will get from the telemetry 100% all the time in stages 1 and 2. If LQ goes in stage 0, it will show the LQ from 0% to 100%

    Reply
  7. Christopher F

    I just wish XF would make this easier to understand about all the RSSI and LQ readings.
    I use both R9M and XF full size version and find myself using my R9 more because one it’s way easier to setup especially in INAV for LR wings.
    I have yet to figure out how to properly setup XF on any of my planes or wings and actually stopped buying XF receivers and will most likely just install R9 slims. Rssi from 0-100% is way easier to understand it I’ve never had any issues with it.
    Plus I can use Bluetooth on my R9 with Telemetry viewer app and XF Bluetooth doesn’t work with anything but Ardupilot. That’s a huge let down for me. I’ve tried asking for help in groups with all this rssi setup with XF but get no response.
    I’ve set my XF up on one quad and at 300m out I get warnings of low LQ and even critical Low LQ from My Tx but in osd my LQ reads 198 or 199!! This is set up exactly how you showed above.
    That’s what’s confusing to a lot of us especially LR wing pilots that real rely on LQ and Proper rssi.

    Reply
  8. Ciprian Silvasan

    Hello, thank you very much for the article!
    One question. In the goggles I can see LQ around 300%. But on the telemetry on Taranis I can see on RQly only 100%.
    Why I cannot see 300 instead 100?
    If I set the alarm to trigger on 70% will it be 70% out of 100% or 70% out of 300% ?
    Thank you,
    Ciprian Silvasan

    Reply
    1. Jason Slater

      In my goggles I see 0 for rssi and 0 for LQ. on my jumper t16 it reads 100 for RQly.. driving me mad trying to work it out

      Reply
  9. Bobii

    Hello and thank you for your tutorial
    I just bought crossfire and I followed your tutorial with BF 4.1 but the problem is that I have a LQ of 300% but a very low RSSI, at 3m from the quad I am only 80 while in FRSKY RXSR I am 99
    In the next room I go to 70
    And in corridor 50 of RSSI with always a good LQ?
    Does my Crossfire have a problem?
    My two drones have identical values,
    With Frsky RXSR the RSSI was much higher I don’t understand

    Reply
  10. 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.

    Reply
  11. Nathan

    Hi,

    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)…

    Reply
  12. 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

    thoughts?

    Reply
  13. 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.

    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)

      Reply
  14. 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).

    Reply
    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

      Reply
    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

      Reply
  15. 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?

    Reply
    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.

      Reply
    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

      Reply
  16. 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

    Reply
  17. 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

    Reply
    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)

      Reply
  18. 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” ?

    Reply
  19. 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?

    Reply
      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.

  20. 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 ?

    Reply
  21. 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?

    Reply
  22. 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.

    Reply
  23. 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

    Reply
    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 :)

      Reply
    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%?

      Thanks

      Mike

      Reply
  24. 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 …

    Reply
    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?

      Reply
  25. Thomas Houser

    Oscar..
    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??

    Tom

    Reply
    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.

      Reply
    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.

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

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