What is FPort?

FPort is an exciting software technology on the horizon for racing miniquad pilots. It is the result of collaboration between FrSky and flight controller software development group to modernize the communication between the flight controller and the radio control system. The result is the capability to achieve full, bi-directional communication between the FC and the RC RX using a single wire. This communication encompasses the following features:

  • A standard radio control link which will allow you to control your quadcopter (a la S.Bus in the past). This control link can potentially offer increased performance in future hardware iterations from FrSky.
  • Downlink telemetry will allow your transmitter to access data from the flight contoller (a la S.Port in the past).
  • Uplink telemetry will allow you to configure your flight controller wirelessly from your transmitter.

f.port overview

The Curse of S.Bus

Most of our readers who have experience with F4 flight controllers have probably experienced the exercise in frustration that can occur when attempting to deal with UART inversion. UART inversion is required to allow SBus to work, but the circuitry used to add it causes bi-directional serial communication to no longer work. This is why SmartAudio and ESC telemetry (which use bi-directional serial) do not work on the UART pins of many F4 boards.

FPort has another feature that will be realized slowly over the next year — it is not an inverted protocol by design. This will have the effect of finally lifting us out of the crappy situation we are in with regards to UART inversion. Specifically, as RXs and FCs are released into a world dominated by FPort, manufacturers will no longer need to add dedicated inverter circuitry to UART pins (on F4 flight controllers). As F4 boards are released without inversion circuitry, features like Smart Audio and ESC telemetry will become more accessible. Software developers working on Betaflight will no longer need to waste time developing sophisticated workarounds to the need to support several types of UARTs. Beginners in the hobby will no longer be confused by the difference between the “SBus”, “Spektrum” and “UART RX” pins — they will all be identical again.

Is this a pipe dream? I hope not. The unfortunate truth is that the inverter circuitry causing the “curse of S.Bus” is hard-wired into our FrSky receivers and FrSky cannot simply “program it out”. This means that for the folks who simply update the firmware on their receivers, FPort will still be an inverted protocol. In the future, expect to see some “FPort-enabled” receivers from FrSky which drop the inversion and cause even more confusion in our community.

So Why Do I Want It?

FPort does’t bring any new features to the table, so it’s easy to shrug off. I wouldn’t be so quick to discount it, though. The convenience offered by taking only a single UART slot for all RC control features is very compelling. It also greatly simplifies set-up by enabling bi-directional telemetry and RC control with a single switch in Betaflight Configurator. Finally, the increased RC control throughput will probably provide a subtle performance enhancement to your quadcopter. I liken all this to DSHOT – another protocol which really didn’t add a bunch of “new stuff”, but greatly simplified our collective lives. I wouldn’t go back to oneshot for anything, and I expect in a year or so we will all feel the same way about FPort.

When Will FPort be Available?

FPort is a feature that is coming with Betaflight 3.3. An official release date has not been announced yet but we’re betting on a release somewhere around March 2018, just in time for the 2018 flying season to start up for us northern folks!

For those folks who simply cannot wait, you can try this feature out by installing one of the Betaflight nightly builds on your quadcopter. Instructions on this process follow in the “how to use FPort” section below.

What Receivers Support FPort?

We were thrilled to learn that FrSky isn’t simply releasing FPort as a feature on the back of a new receiver that everyone was going to be forced to buy. Instead, the company is graciously offering pilots the option of updating firmware on several of the most popular miniquad receivers that will add FPort for free! These are the receivers which will support FPort:

  • X4R-SB
  • XSR
  • XSR-M

How to Use FPort

We’ll keep this section updated with the current way to install and configure FPort.

Warning — Read Me First
f4 style board

Most Omnibus F4-style boards will be tricky to get working with FPort until FrSky releases an un-inverted receiver.

As of the latest update to this article, this feature is still in development. Getting it working will involve installing pre-release software on your quadcopter. The procedure is not for the faint of heart and will require you to build some software, among other things. You should be careful when using any type of pre-release software. Remove your props whenever you are working on your quadcopter and treat the prop disc and the frontal area of the quadcopter like a loaded gun.

Also, for those pilots using F4 flight controllers — be aware that FPort may be difficult to get working. This is because it requires a bi-directional inverter to be installed between the FC pin and the F4 processor. Most F4 flight controllers do not have this type of inverter installed. You can test for this easily: try to get SmartPort telemetry working with your flight controller. If you are able to, you are good to go and can get FPort working. If not, you’ll need to figure out a workaround. This will involve either setting up and using a software serial UART or tapping into an “uninverted” serial line from your receiver.

Update Your Receiver

The first step to getting FPort working with your quadcopter is to make sure your receiver supports it. Since this is a very new feature, you will need to manually update the firmware on your receiver to enable it. This may change as we get farther into 2018.

You can get the firmware with FPort support from FrSkys website. Find your receiver on the Firmware page and look for the download section labeled “F.Port PROTOCOL FIRMWARE”.

The process of updating your firmware is fairly involved. Oscar Liang has put together an excellent article on how to do it on pretty much every receiver popular in the miniquad scene. Check it out by clicking here.

Update Your Flight Controller

In order to use FPort in this pre-release phase, you will need to update your flight controller to one of the nightly builds of Betaflight. You can find the latest nightly build here.

In order to configure Betaflight, you may also need to build and install an unreleased build of Betaflight Configurator. You can do this by following the “Native app build” instructions on Github found here.

Wire Your Quadcopter

On the receiver side, your FPort line will be hooked up to the “traditional” SmartPort output. Here are the pins for the currently supported receivers:

fc board wiring tx board wiring tx wiring p2

On the flight controller side, what you do will depend on your flight controller. For folks using an F3 or F7 flight controller, you will hook FPort into a UART TX line. For those using an F4 flight controller, you will need to hook it into an UART pin equipped with a bi-directional inverter. Most popular F4 flight controllers do not have such a pin. If you are using such a flight controller and still wish to use FPort, you can either:

  1. Set-up a software serial port to one of your spare pins.
  2. Tap into an “uninverted” pin on your receiver. This is easy on the X4R-SB, but tedious on other receivers. See instructions here.
Enable FPort

The first step to enabling SmartPort is to set-up your SerialRX in the “Ports” tab of Betaflight configurator. Select the appropriate UART number for use as the SerialRX and click “Save and Reboot”:

betaflight ports

While FPort is still in pre-release, it is best to use CLI commands to perform the rest of the set-up. Which commands you use to enable FPort depend on what flight controller / RX set-up you are using.

F3 / F7 Flight Controller
set serialrx_provider = FPORT
set serialrx_halfduplex = ON
set serialrx_inverted = ON

F4 Flight Controller with Bi-directional Inverter
set serialrx_provider = FPORT
set serialrx_halfduplex = OFF
set serialrx_inverted = ON

Any Flight Controller wired to “Uninverted” SmartPort
set serialrx_provider = FPORT
set serialrx_halfduplex = ON
set serialrx_inverted = OFF

Enter “Save” to apply these changes to your flight controller.

Test Your Set-up

Before you run out and try your new features, you should test them out using Betaflight Configurator:

  1. Go to the “Receiver” tab and wiggle the sticks on your transmitter. Verify that you are seeing the virtual side bars move.
  2. Check out the Telemetry menu on your transmitter. Verify that you are receiving data from your flight controller. We have been told that it is common for RC control to work but telemetry to not work when using inverted pins which use a directional inverter.

References

The official Betaflight FPort documentation can be found here.
The official FrSky specification document for FPort can be found here.

Show Buttons
Hide Buttons