FrSky FPort – the new Protocol

FrSky is innovating again. This time it is the new RC protocol FPort that was developed by FrSky in collaboration with Betaflight. FPort (probably stands for “FrSky Port”) is an interface protocol between receiver and other parts connected to the receiver for data transaction, e.g. receiver and flight controller,  receiver and servos or receiver and a sensor. FPort is a one line bus with one master and several slaves. Control channels, downlink data, and uplink data are included on the BUS. It has higher speed (115200bit/s) than S.Port. This new protocol is only for communicating between the receiver and other devices on the aircraft  and it does not change the FrSky air transmission protocol between the transmitter and receiver. It is based on SBUS protocol but additional Uplink and Downlink packets were added.

Highlights of this new FPort protocol:

  • Only one wire is required for connecting receiver and flight controller including telemetry uplink, MSP tunnelling to the transmitter;
  • This is fast protocol;
  • The serial communication settings are 115200 baud, 8 bits, no parity, 1 stop bit. This is standart settings, no exotic implementation needed;
  • This is uninverted signal (finally FrSky considered compatibility).

While this protocol is uninverted, almost all the FrSky receivers have inverted signal output. So you will need either the hacked FrSky receiver with uninverted output or use an inverted signal input on the flight controller (if inverted output then it nust be inverted input). Connect the SmartPort port on your receiver to the inverted bidirectional port on your flight controller. On F3 / F4 with a ‘uninverted SmartPort’ hacked receiver / F7, the receiver is connected to the TX pin of the serial port, on F4 with a non-hacked receiver the connection will be dependent on how the bidirectional inverter is designed – consult your flight controller manual; (Effectively, this connection uses the same pins on both sides that would be used to connect SmartPort if a non-FPort firmware was used.). We can expect FrSky implementing uninverted signal output in the future receivers.

A new receiver protocol driver for FPort has been added to Betaflight. It is available from Betaflight version 3.3.

How to install and setup FrSky FPort

  1. Download and install the FPort compatible receiver firmware. Currently only some of the FrSky receivers are supported (see compatible receivers list below); (Instructions for the firmware installation can be found here and here.)
  2. Install latest Betaflight version onto your flight controller. FPort is supported from Betaflight 3.3.
  3. Connect the SmartPort port on your receiver to the inverted bidirectional port on your flight controller. On F3 / F4 with a ‘uninverted SmartPort’ hacked receiver / F7, the receiver is connected to the TX pin of the serial port, on F4 with a non-hacked receiver the connection will be dependent on how the bidirectional inverter is designed – consult your flight controller manual; (Effectively, this connection uses the same pins on both sides that would be used to connect SmartPort if a non-FPort firmware was used.)
  4. Configure your flight controller. Enable ‘serial RX’ for the port the receiver is connected to, choose ‘Serial Rx’ as receiver type, and ‘FPort’ as protocol. For F3 / F4 with a ‘uninverted SmartPort’ hacked receiver / F7, set serialrx_halfduplex = on in CLI. If not using a receiver with ‘uninverted SmartPort’ hack, set serialrx_inverted = on. After all is done, the relevant bits of a dump should look like this (assuming we’re using UART3):

F3 / F7:

serial 2 64 115200 57600 0 115200
set serialrx_provider = FPORT
set serialrx_halfduplex = ON
set serialrx_inverted = ON

F4 with non-hacked receiver (needs bi-directional inverter on the flight controller):

serial 2 64 115200 57600 0 115200
set serialrx_provider = FPORT
set serialrx_halfduplex = OFF
set serialrx_inverted = ON

F4 with ‘uninverted SmartPort’ hacked receiver:

serial 2 64 115200 57600 0 115200
set serialrx_provider = FPORT
set serialrx_halfduplex = ON
set serialrx_inverted = OFF
  1. Bind your receiver to your transmitter;
  2. Test RC control: With the transmitter on and the flight controller connected to the configurator, make sure the bars in the ‘Receiver’ tab move when you move the sticks on the transmitter;
  3. Test telemetry: (In OpenTx, a rescan of the sensors is required, since the sensor ids are different between SmartPort and FPort.) Check that the telemetry screen shows the values from your flight controller. (caveat: With FPort it is possible that RC commands work, but telemetry doesn’t. If this happens, it means that the serial connection that you are using is not bidirectional, and the receiver => flight controller data flow works, but flight controller => receiver doesn’t. Id this happens, check your port settings, and (for F4) make sure that the port you are using can support inverted bidirectional.)
  4. If you want to use the Betaflight lua telemetry scripts on Taranis / Horus, download and install the latest release (1.0 or newer) from here.
  5. Happy flying. 😉

A connection diagram and Betaflight settings for Matek FC:

 

The detailed protocol specifications are in this document: F.Port.protocol.betaFlight.V2.1.2017.11.21.pdf

 

Frsky FPort compatible receivers list

Receiver Compatible ? Firmware download page
FrSky RXSR Yes (beta) here
FrSky X4R Yes (beta) here
FrSky X4R-SB Yes (beta) here
FrSky XSR Yes (beta) here
FrSky XSR-M Yes (beta) here
FrSky XSRF3O Yes (beta) here
FrSky XSRF3PO Yes (beta) here
FrSky XSRF4O Yes (beta) here
FrSky XSRF4PO Yes (beta) here
FrSky R9M Slim Unknown here
FrSky R9M Slim+ Unknown here
FrSky R9 mini Yes (beta) here

 

 

Updates history:
2018-03-16 – Compatible receivers list and installation instructions
2018-03-16 – Compatible receivers list updated with R9 series

Tags:

Leave a Reply

Your email address will not be published.

*