RSSI is a measurement of how good the radio signal is between your RC transmitter and receiver. It stands for Received Signal Strength Indication, and is an important safety feature. It helps avoid loss of radio signal, which could lead to unexpected crashes, damage to your quadcopter and other people’s properties.
Understanding what RSSI is
RSSI isn’t actually a linear measurement like voltage or temperature, but a ratio of the current signal to some initial “good” value. It’s measured in dB (the same unit system used for audio levels). dB is a logarithmic measure, and it’s not linear.
This means that a change of +6dB in RSSI, the signal strength has doubled, while a change of +12dB in the RSSI means the signal has increased in power by 4 times.
For instance, if the RSSI reads about 110 at a 1 meter distance, every time you double the distance between the transmitter and receiver, the RSSI level should drop by 6dB. At about 100 meters you should get an RSSI value of about 70dB in ideal conditions.
A good way to see this effect is to use Range Test mode on your radio transmitter. In range test mode the transmitter module operates at 1/30 of full power.
Getting RSSI from RX
Some radio receivers offers RSSI output, which you can connect to the flight controller, or OSD module if supported. With the Frsky Taranis and Horus radios, it’s even possible to pass RSSI through a spare PPM or SBUS channel, without any extra wiring or soldering.
One good use of RSSI is to setup alarms on the radio that warns you when signal strengths drops below certain level.
This is a built-in feature in the Frsky Taranis. It gives me great peace of mind knowing how strong the signal is while flying, and it is a helpful indicator of when to turn back. With this feature I barely need to look at RSSI value in my OSD and I eventually removed it from the OSD.
Getting RSSI from SBUS Protocol (Betaflight Feature)
In Betaflight 3.4 there is a new feature that calculates RSSI automatically when you are using SBUS. I think the way it works is pretty similar to LQ measurement in the TBS Crossfire, where the link quality is determined by the amount of corrupted packets.
When the radio link gets too weak, SBUS packets can become corrupted. SBUS reports these corrupted packets to the FC, however previously these reports were ignored. Now, Betaflight can use these corrupted packets as an indicator of link quality, and displays the result as RSSI in your OSD.
In my opinion this way of measuring RSSI is better than the traditional way which doesn’t take into account ambient noise levels and signal interference in the environment. Because you can have a high RSSI and high number of corrupted data at the same time if noise interference is high.
This new feature is better than “passing RSSI through a spare PPM or SBUS channel”, because it doesn’t take up a channel, and has less delay.
Note that this system of link-quality doesn’t behave exactly like RSSI used to do. As you’re approaching the range limit, the value can drop off a lot faster than you expect. So make sure to do some test flights and get used to the new system.
Analog RSSI vs. PWM RSSI
If you are feeding RSSI signal from your RX to the FC, find out whether it’s PWM or analogue, and whether your FC can read it correctly.
Knowing the difference between digital and analog RSSI
Usually, RSSI is in analogue form (a voltage level), but this is not always the case. RSSI can exist as a PWM signal (pulse width modulated) too. Therefore there could be incompatibility in the system when reading RSSI. (For example, RSSI jumps between values 0, 50 and 100)
You can easily convert PWM signal to an analogue voltage level using a “Digital to Analog converter”, or simply a low pass filter (Resistor-Capacitor filter).
Some OSD modules or flight controllers accept direct connection to the PWM RSSI output because they have a low pass filter built in.
What if OSD doesn’t support RSSI?
If your OSD module doesn’t support native RSSI input, you might still be able to display RSSI with some work around. Some OSD modules have dual battery inputs (BAT1 and BAT2), and are designed to display both the primary and secondary battery voltage levels. Most of the time we only use one and by using the spare battery input we can display RSSI.
Normally the range of the RSSI value is 3.7V to 0V (100% to 0%) when converted from PWM. It might not be a percentage but voltage but gets displayed as a voltage, you can still get a good idea what the RSSI level is. I did this mod with my Hobbyking E-OSD, and it worked like a charm.
- May 2014 – Article created
- Aug 2016 – Added info about “How to use RSSI from receiver”
- July 2018 – Added info about new feature in Betaflight – SBUS RSSI
I was struggling a bit with the different RSSI variants until I watched this video. The guy also explaines how to set things up for each type (including getting RSSI from sbus). youtube.com/watch?v=eMIExxWUlH4 Great blog of yours btw. Keep things up :)
Thanks for this explanation. I am getting RX loss (and crashes) with rssi still above 70 (ibus or sbus depending on RX). Is that normal? Range is around 100m with no obstacles, Flysky Nirvana with fli14+ or rt602. Any chance I can improve it by changing something in Betaflight? FC is GepRC F7 (Cinepro4k). I’m desperate, any help appreciated! Thank you.
I have Tarot RFABS sbus receiver using it with futaba 7c transmitter. Recever has rssi cable. I connected rssi cable from receiver to omnibus f4 v3 fc. I opened rssi analog from inav.
My issue is when I open transmitter rssi value is %100. When I turn off transmitter rssi value is %0. There is no any other value or decrease in rssi %. It suddenly enters rth in the flight without showing any rssi decrease.
Any help will be appreciated.
To sum up there are three ways to get rssi from Frsky to the osd?
-directly from a dedicated analog/pwm pad on the reciever (like the L9R)
-directly from sbus/fport (automaticaly + accounts for noise floor and interference)
-injecting it to a spare channel in opentx (but when the telemetry doesn’t reach back, you also loose rssi info?)
Are all of those scaled? How to tell if you need to correct scaling?
Some report that bare rssi numbers trigger failsafe. So when the scalling was corrected the range increased dramaticaly (R9).
How could that be, since we all know that failsafe is reported by a flag in the sbus/fport comunication?
All very confusing!
I have the Flysky FS-i6S and just ordered the Fli14+ receiver. It just has a Ground, +, and Signal wire and uses IBUS. Do I just have to set AUX10 (Channel 14) as RSSI in Betaflight, or is there anything else I have to do, for example in my Transmitter?
Thanks! I’m new in this hobby and a lot of it is a bit confusing…
Your posts have really helped me out a lot so far!
3 or 6db?
I’m old school fixed wing. I may have no idea what i’m talking about. But, rx and tx module are blinking normally? Never fly if it’s blinking, its not properly bound. Rebind. Only fly when you have a solid light
I’m not sure about the need for a “low pass filter”. I connected my FrSky Delta8 receiver to an Arduino interrupt pin and simply measured the ON time, and OFF time of the pulses coming from channel 2 (RSSI) while the receiver was operating in CPPM mode. I am getting ON pulses which vary from 4000 microseconds (4 milleseconds) when the signal is strong, to approx 150 us when the signal is very weak or the transmitter is off. The off time was 5000 us – the ON time. In other words, the pulses are coming at a consistent 5000 us (5ms) frame rate. No extra resistors or capacitors needed. Just direct into a digital pin. I don’t know about other systems, or how various flight controllers work, but this definitely seems to be a PWM signal with a 5ms frame rate. Very easy to handle it in its raw digital form.
I’m sure you have face this issue and you will be able to give me some explanation.
I’m using a F4 Kakute FC that has dedicated pin for RSSI.
I connected the RSSI pad from the XSR and i’ve connected the Smartport signal as well.
Now i have the OSD always showing a very healthy RSSI while the Taranis is often giving me low RSSI warning.
How is the RSSI function implemented in the Frsky receivers? More to the point, how is the RSSI numver sent back to the TX?
depends on the RX, sometimes it’s via a channel, sometimes it’s via Telemetry, sometimes there is a output on a pin that you need to connect to the FC and use it to display on OSD.
I think there is an error in the description of dB. If you double the power, that is + 3 dB. If you cut the power in half, that would be – 3 dB. Remember that the ‘d’ in dB stands for “deci” which means 1/10. The ‘B’ stand for “Bell”, the inventor of the telephone (in the U.S., at least). So 10 dB is equal to 1 B which represents a factor of 10 in the signal power. The reason we typically use dB (one-tenth of a Bell) is because the Bell is a very large unit, and dB is more convenient term.
Yes, your reply is correct. RSSI is typically referred to the power level. Power in decibels is P [dBW] = 10log(P/1W). And decibels in voltage is v [dBV]=20log(v/1V). This way losses (or gains) can be computed P1 [dBW] – P2 [dBW] = v1 [dBV] – v2 [dBV]. Following the previous definitions, 3 dB means twice more power.
maybe somebody can to help me. ( sorry but i’m not a technical talent but i’d like to understand what and why happens.)
I’ve iris+ from 3drobotics. it’s a nice “bird” but there is a serious problem with range. there is no one to give me usefull advise.
at about 100-130m (in open field) the remote spek beep and be-be-be…i think this is a RSSI warning, the rx value (left upper corner on the lcd) is about 35-45 percent. the remote is a (dedicated by 3dr) fs th9x with djt modul, the receiver on the board is Frsky 4dr II. the radio is calibrated in mission planner. this problem was no before but some weeks ago it is appear systematic.
3dr support wrote a very usefull advise: try the kvad in an another place:-)
what can i do? apparently everything is good. receiver and transmitter moduls blinking normal the kvad reacts normally…but the range…
do i have to rebind? measure the remote signal strenght?
thanks for the help
(and sorry for my google english)
could that be interference around? are the antenna on the quad got blocked by some other parts?
maybe there is one…I don’t know. apparently all of relevant parts are in original position. i tried reposition the antennas but this no solved the problem. I think need to rebind, make a range test, mesure the transmitting power…then replace the parts.
(I afraid after replacing the problem appear again.)
question: is there any information in the pixhawk logfile?
great post…. is the stock receiver that comes with the Turnigy 9X the best receiver for it? i heard it is a bit heavy(18g apparently) what receiver would you recommend?
i don’t think there is any other option as far as i know. if you want lighter, more reliable system, replace the stock transmitter module with a Frsky one, and use Frsky system.
Power and distance does not have 1 to 1 ratio…