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
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.
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.
Get the latest BF configurator: Link to Download Betaflight Configurator
How to Setup FPort?
The “SmartPort” pin on your receiver becomes “FPort” output.
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
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 :)
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):
- 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