FPort is a new Frsky receiver protocol which brings a few improvements over the existing SBUS and SmartPort Telemetry. This tutorial will explain the advantages of FPort, and how to set it up on Betaflight flight controllers for your mini quad.
FPort is an “RX protocol” – a communication interface between the RX (receiver) and FC (flight controller). FPort (possibly stands for “Frsky Port”?) is developed by both Betaflight Dev Team and Frsky,
Why Is FPort Better?
From now on, I will be using FPort over SBUS and SmartPort whenever I can, because:
- FPort combines SBUS and Smarport Telemetry into one single wire
- cutting down cable management and soldering
- save a UART port because SBUS and Smartport take up two separate UART’s
- FPort is an uninverted protocol **, so hopefully we don’t have to worry about doing “uninversion hacks” on F4 FC in future Frsky receivers
- FPort is slightly faster than SBUS
- RSSI works automatically (no need to pass through a channel)
** Although the F.Port is a non-inverted protocol by design, currently the signal is still coming out of the SmartPort (S.Port) pin on the receiver, and the S.Port pin is normally inverted on Frsky receivers. This makes the F.Port signal inverted as well. Hopefully in the future, Frsky will release F.Port only receivers with non-inverted outputs. For example, the new R9MM receiver has a pin called “inverted S.Port” (it actually mean “inverted of the inverted”, making it non-inverted), but really they should just call it the F.Port pin.
Software Setup to Run FPORT
Table of Contents
Receivers
In order to enable FPort, you have to flash your receiver with the “FPort firmware”. Download firmware here: https://www.frsky-rc.com/product-category/receivers/
Most Frsky’s receivers support FPort now, just check in the above link, and see if there is a FPort firmware for your receiver.
Here are my instructions how to flash Frsky receiver firmware.
Note that by flashing this firmware, disables SBUS, you can flash the normal firmware again if you want to run SBUS.
Flight Controllers
Any F3, F4 or F7 FC with a spare UART should be able to run FPort. Make sure to update it to the latest Betaflight firmware: how to flash BF firmware.
Betaflight Configurator
Get the latest BF configurator: Link to Download Betaflight Configurator
How to Setup FPort?
The “SmartPort” pin on your receiver becomes “FPort” output.
Connection
Simply connect the receiver’s SmartPort pin to a free UART TX pin on your flight controller.
Don’t use soft-serial for FPort! It’s okay for SmartPort Telemetry, but it’s too slow for RC links. If you absolutely have no way to connect FPort, just go with the good old SBUS and SmartPort.
Original “Inverted” SmartPort (F3 / F7)
Note that Frsky receivers SmartPort is an “inverted” signal, F4 flight controllers can’t read it directly. However it’s not a problem for F3 and F7 flight controllers and you can connect it directly, just like this:
In Betaflight CLI. enter these commands:
set serialrx_halfduplex = ON set serialrx_inverted = ON save
Hacked “Uninverted” SmartPort (F4)
If you have an F4 flight controller, and there is no dedicated SmartPort input (built-in inverter), then you will have to follow this guide and find the “uninverted” smartport signal for your receiver.
The R9MM is the first receiver Frsky has ever made that comes with “uninverted” SmartPort. Let’s just hope they will do this for new receivers in the future :)
In CLI, enter:
set serialrx_halfduplex = ON set serialrx_inverted = OFF save
If your F4 FC has built-in inverter for SmartPort pin, and you are using the original inverted S.Port signal, you should enter these instead:
set serialrx_halfduplex = OFF set serialrx_inverted = ON save
Configuration
Open up Betaflight Configurator
In the Ports tab, find the UART which is connected to the receiver, and enable “Serial RX”. In this example I am using UART4.
In the Configuration tab, select “FPort” in Receiver Protocol.
Enable Telemetry feature. Now click “Save and Reboot” button.
Now confirm you have control in the Receiver’s tab.
To get Telemetry to work. go to your Taranis’s Telemetry page, select “Delete all Sensors”, and then “Discover new Sensor”.
As mentioned, RSSI works automatically, so now you can check RSSI in the OSD. On the bench it should show around 90 to 100. If it shows below 50, then you need to increase RSSI_Scale in the CLI.
As far as I know, no change is required with R-XSR, XSR etc. However, with R9MM receiver (a bug with the receiver), you do need to change the scale to 200% like this. But only do this if you have below 50 reading.
set rssi_scale = 200 save
That’s it :)
FPort Troubleshooting
If you are having trouble with FPort, e.g. receiver is bound, but the sticks are not responding in Betaflight, try changing this setting on and off in CLI:
set serialrx_inverted = ON save
If telemetry isn’t working, try setting this on and off:
set serialrx_halfduplex = ON save
Also try select “Rediscover Sensor” in your Taranis’s Telemetry Menu.
Still not working? We can help you on IntoFPV forum.
FPort V2 Update (Jun 2020)
FPort v1.0 was designed to simply combine SBUS and S.Port into one wire, and create communication between the receiver and flight controller.
The new FPort V2.0 is much more sophisticated, as it enables communications between the host device and multiple other devices, you can even update firmware to all the connected devices and configure them at the same time wirelessly from a radio with ACCESS protocol.
See this diagram explaining how FPort V1 and V2 work (with and without FC):
Edit History
- Dec 2017 – Guide created for Beta version of FPort
- Feb 2019 – FPort is now supported in most Frsky receivers, instructions updated
- Jun 2020 – Added info about FPort 2.0
91 comments
Question – i have a FrSky ARCHER M+ receiver Instructions Version 1.1 . My drone is Nazgul5V2 4S. Currently i have the following connection between the FC (Iflight Blitz_F722): FC R2 connected to Frsky ARCHER M+ SBUS OUT pad.I want to modify my drone receiver interface to FRSKY F.Port. Can i disconnect the connection to SBUS OUT at the receiver and connect FC R2 pad to receiver S.Port Pad? Do i need to connect a signal to pad Inverted S.Port? Another question in the FC interface – do i need to replace signal R2 with signal T2?
Is FBUS similar to F.port? The newest archer only has fbus. Thanks
I would also like to know if Fbus and Fport are the same thing? Can someone explain this please?
Hello! Please, might you help me. Telemetry does not work in my two aircrafts: drone with betaflight 4.4 and fixed wing with inav 6. I am using taranis qx7 with edgetx ver.8.1.1 and r-xsr receiver with fport protocol (boutgh receivers have latest version ACCST fport firmware).
Telemetry work only short time after i on power supply (about 1…5 sec). Then i listen message “sensor is disabled”, and that is it, telemetry doesn’t work. “Discover new sensor” in Taranis telemetry screen also works only at the moment of power-up airplanes.
The drone has F7 flight controller, where i use original inverted fport signal. The fixed wing has F405 controller, where i use hacked uninverted fport signal.
Issue is solved!
I have installed previous version of fport
r-xsr firmware 2.1.0 instead of newest 2.1.1.
Probably 2.1.1 has a bag. Do not use it!
This article helped me a lot. Thank you very much.
If my uart5 has default f.port (mamba f722 mk1), do i need to switch f.port off in order to solder my air unit RX and TX to it?
HI OSCAR; CAN YOU Y A S-PORT ON TOP OF RECVR??iUSE THAT PORT FOR IKON2 CH-3 TO MAKE IT WORK,I HAVE A FRSKY X9D RADIO WITH THE FRSKY INTERGRATION…iWOULD ALSO LIKE TO USE THERE ESC WHICH IS A BEC ALSO WITH ALL SENSORS ON IT… THANKS SINCERELY BRETT
“For inverted S.Port signal, you should have “tlm_inverted” set to “off”, however for uninverted SmartPort, it should be set to “on”. ”
That is confusing, if it turn off/on inverter circuit it should be opposite, can someone explain it to me ?
Yes, it’s counter-intuitive. It’s up to Frsky/Betaflight for this naming.
I just got the X-lite S with a R9M Lite Pro moduel and R9MM receiver. I was able to bind them, after getting some distance in between RX and TX but could not get any stick inputs running in Betaflight on the FPort. I am using a Kakute F7 AiO. Figured you have to set the module/sender to Fport (click that little box :-)). Tried all combinations and CLI inputs before and it did not work. Hope this helps some people.
Can I use the XM + receiver in F PORT MODE to get telemetry on an F7 flight controller? Thanks in advance.
No, the XM+ does not do telemetry ever.
Also, I confirm the non inverted fport output mod for older R-XSR works, not easy to solder, but that’s the right pin ;)
yrying to set up fport on the r-xsr and having no luck. any possibility you can let me know what settings and wire routing you used?
FIY the RSSI scaling bug is not specific the R9MM, I had to set rssi_scale = 200 with an R-XSR flashed with the latest 2019 ACCST v1 firmware (didn’t want to update my TX to ACCST v2 …).
RSSI reading was fine on the radio, but divided by 2 in the OSD.
Hi Oscar,
After many many emails between myself and various FC vendors, I have finally found out some information that I feel would maybe be worth adding to your excellent FPort help pages
Some F4 FCs are marketed as having both Inverted and Uninverted TX pads.
However, just because a vendor markets an F4 FC as having an Inverted TX pad, **does not mean it will work without the uninversion hack**
Apparently, there is such a thing as a one-way and two-way inverter, and being a bidirectional protocol, FPort needs a bidirectional inverter
For example, the Diatone Mamba F411 25A AIO is one of these – confirmed by Diatone support, it only has a single directional inverter for the “Inverted TX1” pad, and as such that pad will not work with FPort
Hola tengo una matek f405 wing, y un receptor R9, de esos cuadrado grandote. No logro la telemetría, alguien lo tiene y me puede explicar como es la configuración y la conexión de los cables?
Hey there,
I got FPort to work without a problem on my Kakute F7 and R-XSR. Telemetry on my Receiver showed 110-120 dBm RSSI at a distance of about 1 Meter but Betaflight showed just 55% RSSI. So I had to use the scaling CLI commands on an R-XSR. I just wanted to add this, because the tutorial said that it´s mostly not needed for that receiver.
Also thanks for all the great guides. They helped my when I were frustrated with my quads many many times :)
If anyone is setyting this up in Inav and can’t get the RSSi value to work try this.
Set up as above:
Disable rssi channel in receiver tab.
In CLI put in:
set rssi_source = PROTOCOL
set rssi_max = 50 set
I also set on my F7 matek F722SE
set serialrx_inverted=on
set serialrx_halfduplex=on
Then rediscover your sensors after a GPS fix (if using GPS) and RSSI works.
I have a F411 wing FC (TX1) connected to a r9 slim+(RX1[inverted s.port]) using f.port with Inav
I’ve read over this guide as well as many others thoroughly. The strange thing for me is that setting serialrx_halfduplex = off kills my controls which is the only thing that works. Additionally in Inav setting smartport_uart_unidir = on also kills my controls. According to the troubleshooting guide the halfduplex setting should affect telemetry and not sbus and I would assume smartport_uart_unidir should also affect telemetry aka smartport. I don’t currently have the newest firmware installed.
If a receiver that is configured as F.Port accept a FRSky sensor that is connected normally to the same physical S.Port (now F.Port) work with telemetry I dont mind, even if I have to build an inverted circuit for it.
Hi Oscar. I have a FullSpeed FSD F411 flight controller. Currently, SBUS from my receiver goes to SBUS on the flight controller, which really is RX1. If I switch receiver to F-PORT and connect it to TX1, does that free RX1 on the flight controller for some other use, e.g. softserial and SmartAudio? I guess the savings is originally, Smartport and SBUS require both RX1 and another port, e.g. TX1 set to softserial. Whereas switching to F-Port puts them both on TX1 and RX1 opens for something else.
I don’t think you can use RX1 for softserial or smartaudio even with softserial, as these all require the TX pin. But there is no harm in trying :)
Dear Oscar, thank you for this guide. I have a question re: the CLI command as noted :
set serialrx_halfduplex = ON
set serialrx_inverted = ON
save
Is this input universally needed for all F7 boards to use Fport? Thank you. I’m having issues for Betaflight to recognize the Kakute F7 natively with it wired for Fport vs SBus. So I am assuming the CLI directive is the issue that is missing. I thought the F7 may be able to see it without problem or CLI intervention. Thank you for the clarification.
Very Best Regards,
Jim
Hey Oscar, thanks for the great guide
I wasn’t getting any stick inputs, just telemetry. And while diagnosing, i realized that my R-XSR Module was in the wrong mode (CPPM instead of SBUS). I must have switched the mode by accident while trying to bind it to the receiver (by pressing the boot button for 4 Seconds while turned on).
Anyway, afterwards everything worked fine with your settings.
Maybe you would like to add this to your Troubleshooting tips?
hi oscar,,,
does FPort is only work with frsky protocol?
Yes, only works with Frsky receivers.
Donde se conecta el r9mm a la mamba f405 mk2. Ya e probado todo y mi transmisor no se mueve en betaflight.
Thanks for the amazing guide. I tried getting F.port working with my SISKIN AOI and RXSR. I connected the univerted SPort from the RXSR pad to the Tx6 of the F4 controller. Flashed it with the EU Fport FW. And flashed the XJT module in my XQ7 with EU FW as well.
BetaFlight config as it should be. Half_duplex on enables telemetry flow to the transmitter, but inversion on and off do not allow any controls reaching my copter. I cannot think of the reason why. Very annoying. Maybe someone here has an idea ?
Oscar you are very good at showing how things need to be set up! Any chance you will be doing an article on the x lite pro and the r9pro? I recently purchased these and had the radio working with fport on access firmware then nearly broke it trying to get the module to work with the radio
Probably not, I am not a fan of the X Lite radio – mainly due to the ergonomics
Hi Oscar. This hobby is great but i suck at config like this and everything seems to take twice as long for me. I really need you help!!!!! I have followed all the above but cant get fport working on the receiver tab.
To confirm
– Using frsky r xsr (wired normally and not on the small soldered pad)
– Telemetry appearing back on my taranis X7
– Using an F4 manba stack
– Using TX1 pad on flight controller
– Have set UART1 with serial RX
– done every combination for duplex / rx inversion in the cli
Please help me!!!
We need more info from you, please use our forum for troubleshooting? I don’t check comment too frequently.
Hey Oscar,
I have everything wired up just like you do in the picture, and I am even using a kakute f7. My rx and tx are bound to each other and I am getting a telemetry signal, and the only reason I know that is because if I unplug the FC and the Rx loses power, I get the telm. lost from the Tx. The problem is I am seeing no input from the sticks in betaflight and I am getting rxloss in CLI. Any ideas for me, or am I looking at a DOA receiver?
Hi
I have the Brain Radix FC. Everything working fine only the rssi show me always 99. Can you tell me what i have to do?
This is impossible to help you as I know nothing about your setup and config.
Please could you submit a post on our forum so we can help you troubleshoot?
Here: https://intofpv.com
Thanks for this post, it was very helpful getting my R9 slim + running on F.Port with a MATEKF411 and INAV 2.1.4. My only issue is that the RSSI appears to be half what is being reported on my Taranis. I tried using the “set rssi_scale = 200” CLI command, but it doesn’t appear to be supported in INAV (I get an unknown command error at the CLI command line). Is there another way to set the scaling in INAV?
Why did you “waste” one of the UARTs’ TX for the 5V instead of using the 5V pad? Can the UART output as much current as the receiver needs? The choice of a UART for voltage just seems a bit odd to me, can you go into a bit more detail about why you chose it?
Great!!
I followed everything step by step, and it works!
however i get only 3 sensors on my taranis, RSSI,RxbT and another one ?
I tried deleting all sensors and rediscover but no result
on my receiver is the lates flex fw 20190201
on my taranis 9d i run 2.2.3
my fc is speedybee with fw 3.5.2
Any Idea?
Thanks a lot for all your manuals!
it probably means your telemetry isn’t setup correctly.
Would you mind posting on IntoFPV.com? We can try to help you troubleshoot there, sorry i don’t have time to check comments so it will be quicker for you to do this on the forum.
Mamba f405 doesn’t have enough uarts have to choose what’s more important to you. Smartaudio, camera control or FPort telemetry. Diatone new stuff bottom barrel.
I have an F7 board and I wired those 3 wires you have exactly like that. But I am not getting any telemetry at all. I have followed all the steps and everything else is working just fine.
So RC link is working, but no telemetry? Try turning this tlm_halfduplex = off / on
Why oh why is FRSKY shipping with old firmware. Why is there not an r-xsr version 2 with fport firmware already in place and no need using the uninverted solder dot that’s basically just paint and joint hasn’t held up yet, 12 so far and counting this year. Finally just said bye bye to f3 and f4s. Seriously now in past year there is now three different versions of the Taranis Lite ( LITE, LITE S, LITE PRO) But they can’t seem to update their receiver which has become hobby staple. Why don’t Chinese companies act right, it’s so frustrating.
I’m a noob so this may sound silly but I wanting to use f Port I have a r-xsr and a HGLRC batman if I desolder my old receiver which is using uart1 I would solder + and – to those pads and where would I solder the fport wire to? Then would I have to go to CLI and use the serial RX commands? Can someone please help me? Thanks Matt
Is that an F4 flight controller?
If so, you need to find the “uninverted Smartport” signal on the R-XSR, and solder it to any spare UART (TX pin) on the FC.
If it’s an F7, then you don’t need to worry about “uninverted signal”.
Figure shows R9mm connected to inverted s.port, text says r9m is great because it comes with an univerted s.port. So why use the inverted?
For F3/F7, it really doesn’t matter.
For F4, it’s best to use the uninverted s.port.
But when buying new RX, it’s better to go with R9MM because you won’t have to worry about it.
Hey, thank you for this tutorial.
Is there anyone having trouble binding R-XSR with QX-7 with the last firmware ??
I’m trying to setup F.Port with an R-XSR and F405 Mamba. I did updated my R-XSR Firmware with F.Port version 180921. It seems I canno’t bind my receiver. (QX7 and R-XSR were flashed FCC).
Do you still get PWM outputs on an x4r-sb with fport firmware?
Not sure, guess you would have to flash it to find out.
Anyone mated a CL Racing F4 Mini with a R-XSR using fport? How did you manage it?
I have the same question.
I managed to get Smart Port running on the R-XSR via the tiny solder pad. Sadly I destroyed the same pad when trying to improve the solder connection. I guess FPort should be possible to connect to the same tiny pad.
Got it to work with the R-XSR after long trial and error, soldered a cable to my tx1 pad on the FC and to the uninvertrd very small pad, it did not work first, only after putting in the CLI the commands that Oscar gave for a F3, F7 FC it worked. Yeah my FC only has 2 uarts, and I wanted to use telemetry and smart audio. Now I can have a audio low bat warning.
Thanks Oscar
Jurgen
Hi Oscar! How to connect Frsky r-xsr to FC Mamba F405? Nothing happens, help pls:)
Please join IntoFPV.com for troubleshooting, thanks!
Just in case anyone here’s tested it: Does the F.Port firmware still output anything on the SBUS and CPPM pins? Would be nice to free up a UART, but gimbal will need a more basic PPM/Sbus/Spektrum/etc. signal from somewhere.
Couldn’t find any good documentation so I may have been doing something wrong, but a quick test says nope: Fport firmware apparently disables CPPM.
I don’t think on a R-XSR because SBUS is disabled when flashing the FPort firmware (says the changelog).
If you have a F4, and you’re using SOFTSERIAL to map on the motor 5 for example, do the following:
resource
(note the pin, A01 for me)
resource MOTOR 5 NONE => free pwm5
resource serial_tx 11 A01
save
serial 2 64 115200 57600 0 115200
set serialrx_provider = FPORT
save
set serialrx_halfduplex = ON
set serialrx_inverted = ON
save
(F3 and F7 commands are working for me)
Good to see FrSky developing F Port, non-inverted bidirectional single-wire. Should give some competition to Spektrum’s SRXL.
I just setup the X4R-SB to Fport on a Matek F405. Connecting normal inverted s.port pin to Sbus pin on FC worked for RC commands but not for telemetry. Using the uninverted leg to the TX3 pin works with RC command and telemetry. So it seems that in order to get full functioning you must still do the un-invert hack.
Probably the hardware inverter on your board has no duplex functionality. I had the same struggles ;)
Hello colleagues,
We are trying to setup FPORT in a Vortex 250 with F3 IRCFusion Gen2 and X4R-SB.
F3 already upgraded to 3.4.0 and Receiver flashed with FPORT_EU_180111.frk
The problem we are suffering now is when we set “set serialrx_provider = FPORT” it looks like the FC refuses to save the value. Even through CLI, and issuing the save command, whenever we reconnect the battery back for a full reboot, serialrx_provider is back to “Default value: SPEK1024”
Does anybody knows how to fix that?
A few rarely used features have been removed from f3 firmware due to running out of space, you may need a custom compiled firmware
Hi; i love your tutorials and guides.
They’ve helped me out a lot!
I’m in the final stages of setting up my quad with an rxsr and an omnibusf4v3 pro.
I had this thing working through sbus without top much trouble but i do like Fport ?.
Now i have remover the sbus wire from its dedicated pinout and wiring the sport to tx6.
I cant seem to get my head around as to what serial_tx i need to set to what.. also cant get softserial setup beyond the “enable softserial” slider in betaflight?. Any help plz? Sorry for hijacking your commentsection btw..
Btw i have flashed the latest fport firmware and binded the rx to tx but obviously cant get a reaction in betaflight (all latest firmwares are installed and serial rx is set to fport).
Would really appreciatie the help, thnx
Check out my tutorial on soft serial :)
Say you use the TX2 pad for f.port. Is it possible to set RX2 as a Softserial and free up even more uart space?
On one of my f3 builds uart1 is usb, uart2 is OSD and uart3 is now f.port. I can however set up Softserial on the ppm pad (led is occupied), but need one more pad for my RunCam Split.
yes you can :)
Connected to SBUS pad on Matek F405.
set Ports UART 2 SerialRX
serial 1 64 115200 57600 0 115200
set serialrx_provider = FPORT
set serialrx_halfduplex = OFF
set serialrx_inverted = ON
No pid values in lua everything else works
same here< did you find any solution?
HI Oscar, documentation on github.com/betaflight/betaflight/wiki/The-FrSky-FPort-Protocol says uninverted SmartPort signal/hack is a requirement for F4 FC’s. There seems to be no way to get an default inverted S.Port signal cable to work on F4 without either a bidirectional hardware inverter (rare) or hacking an uninverted S.Port signal from the receiver in order to get F.Port to work.
FPort setup Matek F411 with R-XSR:
1. Wire S.Port wire to SBUS on Matek F411
2. Betaflight:
Receiver Mode: SBUS
Serial Receiver Provider: FrySky FPort
* No CLI commands required
Signals and telemetry working fine on the bench.
Firmware:- R-XSR_FPORT_FCC180228.frk
F411 MATEKF411 (MK41) 3.3.1
that only gives control not telemetry as its an rx not tx, I’ve just tried it after I couldn’t get to work on softserial
I just set this up on one of my quads. Easy breezy. I’ll definitely use this on any new builds.
Is it possible to use the current Beta in a setup with an EU-transmitter?
I have the Reciever working with F port, but I dont seem to be getting any Telemetry. soldered on a wire to my xsr to get uninverted s port. The strange thing is, the reciever works with the CLI commands for non-hacked s.port, but mine is hacked. It doesn’t work at all with the CLI commands for hacked S.port.
So I think I got it working, I had to move the s.port wire from uart 3 tx to uart 1 tx and it works now. Finally PIDs on my Taranis!
I’m using the DYS f4 v2 and FRSKY XSR with uninvert hack on the S.port if anyone wants to know.
Can you use the s_port wire on de SBUS pad?
It’s an UART. I hope so.
Yes, it can. :-) I have got my IRC HTramp on the LUA script now.
By “s_port”, You mean FPort?
No you can’t use the SBUS pad, firstly it’s an RX pin of the UART, you need to use the TX pin. Besides on F4 boards SBUS pin usually has an built-in inverter so you can’t use it for the uninverted FPort protocol.
You can use the SBUS pad. As long as it is bidirectional, which most current RX and TX are. That is how I wire mine, because SBUS pad has inverted hardware.
I just wanted to make a comment about inversion hack. Unfortunately, even with F. Port, you will have to hack the non-inverted signal if your UART TX doesn’t have an inversion circuit. I was not able to get F. Port working connecting S. Port inverted signal to a regular UART TX. I tried every combination of serialrx_halfduplux and serialrx_inverted possible without success. So, the days of hacking non-inverted signal are still here.
Did you use the inverted signal or the uninverted signal from the receiver?
It says connect SMART port in the docs, not S port