FrSky telemetry allows you to display ArduPilot information such as flight modes, battery level, and error messages, as well as information from additional FrSky sensors on the FrSky Taranis and other FrSky compatible RC transmitters.
- It is particularly useful:
- for flying without a ground control station (no need for MAVLink telemetry radio),
- as a backup in case the ground station fails (e.g., loss of MAVLink radio link),
- when a separate person operates the ground control station,
- for instantaneous situational awareness by the pilot.
Compared to a MAVLink radio link, the FrSky telemetry link has practically no delay.
Moreover, some RC transmitters such as the Taranis can be configured to play sounds, vibrate or perform automatic RC actions based on telemetry information through the highly configurable OpenTX firmware.
FrSky telemetry packages including Taranis, X-receiver, LiPo cell voltage sensor and flight controller specific telemetry cable for the Pixhawk, Pixhawk 2.1, PixRacer and Pixhack are available from Craft and Theory.
ArduPilot has FrSky telemetry drivers to natively output flight controller information through the serial ports. It comes in two flavors:
- Repurposed FrSky telemetry (D and SmartPort) (available since AC3.2), which reuses FrSky data IDs to transmit basic flight control information to the RC transmitter (e.g. T2 temperature message reused to transmit the number of GPS satelites and GPS status); and
- Passthrough telemetry (SmartPort) (available since AC3.4), which leverages the new passthrough FrSky data IDs to send an extensive amount of flight controller specific information to the RC transmitter.
FrSky telemetry is also possible through the use of a MAVLink to FrSky converter.
The following table summarizes the information available using each protocol:
Hardware Selection Guide¶
The following equipment is required to enable FrSky telemetry on an ArduPilot-compatible flight controller:
A FrSky telemetry capable RC transmitter. Possible options include:
- FrSky Taranis X9D
- FrSky Taranis X9D Plus (recommended)
- FrSky Taranis X9E
- FrSky Horus X12S
- A number of DIY solutions are also available (e.g., for Turnigy 9X and 9XR)
A FrSky telemetry capable receiver. There are receivers available for two types of FrSky telemetry systems, which are not compatible with each other:
D telemetry is a deprecated protocol for D receivers. It uses 16 bit data frames, only supports one way communication and requires a hub to connect other D telemetry sensors. Only repurposed FrSky telemetry is available over the D telemetry system.
SmartPort telemetry (recommended)
SmartPort telemetry is available on X-series receivers. It uses 32 bit data frames, supports two-way communication; and enables other SmartPort sensors to be connected without a hub.
A telemetry cable to connect your flight controller to your FrSky receiver.
In addition to the required hardware, a selection of FrSky sensors can be added. (see below)
The use of an FLVSS or MLVSS LiPo cell voltage (see below) sensor is recommended as ArduPilot is not capable of measuring and reporting the voltage of individual cells in a battery pack.
Telemetry capable FrSky receivers¶
|Receiver||Range||Target frame type||Outputs||Notes|
|X4R/X4R-SB||Good||Small to mid size||X4R: CPPM and 3 extra PWM channels X4R-SB: SBUS, CPPM and 2 extra PWM channels|
|XSR (recommended)||Better||Mini and racing||SBUS and CPPM||Smallest telemetry capable FrSky receiver.|
|X6R, X8R (recommended)||Best||Mid to large size||SBUS or PWM||The X8R is the most common and versatile FrSky receiver as it is often sold bundled with the Taranis.|
|D4R-II||Not tested||All||PWM||Deprecated receiver. It is recommended to upgrade to an X-series (SmartPort) receiver.|
SBUS signal output is highly recommended as it features 16 RC channels and can be directly plugged into the flight controller (e.g., RCIN on Pixhawk)
Craft and Theory Pixhawk to FrSky Telemetry Cables¶
Craft and Theory supplies cost-effective all-in-one X-receiver cables with connectors for the various FrSky receivers.
DIY cable for X-receivers¶
You can make your own cable using the following components:
- TTL-to-RS232 converter such as the FrSky FUL-1 which is sold by many retailers including these on ebay.
- SPC cable such as SPC Cable
- DF13 6 position connector which will be cut and soldered to the TTL-to-RS232 converter
- Molex Picoblade 4 position telemetry wire which will be cut and soldered to the TTL-to-RS232 converter (should be included with the receiver)
DO NOT PLUG THE TELEMETRY CABLE TO THE AUTOPILOT WHILE IT IS ON!
The following SmartPort sensors are available from FrSky:
Connecting Equipment to the SmartPort Bus¶
All FrSky sensors have two SmartPort connections that are hardwired in parallel such that all sensors and the receiver communicate on the same bus wire. In practice, the devices are daisychained as illustrated below.
Connect the telemetry cable to one of the serial ports available on your autopilot and the other end to the Smart Port of your X-series receiver (X4R, X4RSB, X6R, X8R, or XSR) or a Smart Port sensor (e.g., FLVSS/MLVSS).
Adding a FrSky FLVSS or MLVSS LiPo sensor to measure individual cell voltages¶
While battery pack voltage is usually a good indicator of remaining flight time, flight time is actually limited by the lowest cell voltage. Once the voltage of a cell drops below a certain level, that cell’s voltage will continue to drop dramatically. This in turn causes the battery pack voltage to drop and may irreparably damage the battery pack.
By using a FrSky FLVSS or MLVSS LiPo voltage sensor, the lowest cell voltage (which is not available on a ground station using radio telemetry) can be displayed on your transmitter.
To install, connect the telemetry cable between the autopilot and the FLVSS/MLVSS sensor, then use the cable supplied with your receiver or supplied with the FLVSS/MLVSS sensor to connect the FLVSS/MLVSS sensor to the Smart Port connector of your X-series receiver:
For both receivers, the same servo telemetry cable is used. This is because in both cases the autopilot is directly connected to the LiPo sensor instead of the receiver.
FrSky Telemetry Configuration in Mission Planner¶
To enable FrSky Telemetry on one of the serial ports, connect with Mission Planner and set the corresponding
SERIAL#_PROTOCOL parameter to the desired value depending on the flight controller and the port that the cable is plugged in:
- Standard D telemetry: 3
- Standard SmartPort telemetry: 4
- Ardupilot SmartPort telemetry: 10
|Flight Controller||Port used||Parameter name|
|Pixhawk and Pixhawk clones||TELEM1||SERIAL1_PROTOCOL|
|SERIAL 4/5 (recommended)||SERIAL4_PROTOCOL|
SERIAL#_BAUD for FrSky telemetry has no effect - it is always a hardcoded value in ArduPilot: 9,600bps for D telemetry and 57,600bps for SmartPort telemetry.
SERIAL#_PROTOCOL parameter should be set for FrSky telemetry. Keep the other
SERIAL#_PROTOCOL parameters to their default values or at least to something other than 3, 4, or 10, as only one serial port can be used for FrSky telemetry at a time!
Additional configuration in Mission Planner¶
For FrSky telemetry to transmit the correct battery information to the RC transmitter, ArduPilot must be configured for the power module and battery pack used.
Configuring the Power Module via Mission Planner¶
Perform the steps in the following tutorial if you’ve never configured or must reconfigure your power module: power module configuration in mission planner
It is highly recommended to configure the power module (both voltage and current), otherwise the voltage, current, battery consumption (Ah) and battery percentage reported in Mission Planner and via FrSky telemetry will not be accurate!!!
Battery Capacity Configuration¶
Set your battery pack capacity.
Battery Failsafe Configuration¶
This feature is only available with passthrough telemetry.
Battery failsafes are transmitted when using Passthrough FrSky telemetry. The battery failsafes are configured in the “Mandatory Hardware” tab. Click on “Failsafe” and set the “Low Battery” voltage and the “Reserved mAh” capacity.
This section covers how to enable and runs scripts on the Taranis with OpenTX:
Enabling Scripts on OpenTX¶
The version installed on your Taranis may not have the option to run scripts. If this is the case, you will need to install a new version via OpenTX Companion. This can be done in a few easy steps.
- Download and install the latest version of OpenTX Companion from OpenTX. Open the OpenTX Companion program, then go to Settings >> Settings
- Select your “Radio Type” (Taranis, Taranis Plus, or Taranis X9E), make sure the “lua” build option is checked, then press OK.
- Click on File >> Download...
- Click on the “Download FW” button and save the resulting .bin file. Once the firmware is downloaded, press OK.
- Enter bootloader mode on the Taranis by sliding both horizontal trims, each under the main sticks, towards the center and then turning the Taranis on. The top of the Taranis LCD screen should now display “Taranis Bootloader.”
- Connect a USB cable between the Taranis and the computer. “USB Connected” should appear in the center of the Taranis LCD screen. Click on Read/Write >> Write Firmware to Radio.
- Locate/load the firmware (.bin) which was downloaded earlier, then click on the “Write to TX” button. A popup window should display a progress bar which will eventually reach 100%. Once flashing is done, click on the “Close” button to close the popup window.
Copying Scripts and Sounds to the Taranis¶
Scripts and sounds are stored on the Taranis SD Card. To copy a script or sounds to the Taranis, copy them to the SCRIPTS or SOUNDS folder on the Taranis SD. This can be done with an SD card reader or directly with the Taranis.
With the Taranis still in bootloader mode and connected to the computer via USB, the SD card should appear as a computer drive that contains multiple folders, including SCRIPTS and SOUNDS. Scripts and sounds should be copied to these folders.
Running Telemetry Scripts¶
This section describes how to the discover the telemetry sensors (similar to using telemetry without scripts), how to assign a display script to a screen and how to access the screen showing the script display or activate a non-display script (e.g. sound script).
OpenTX 2.1.x requires “discovering” the telemetry messages from the Pixhawk that are not passthrough messages. To discover them, unplug the USB cable, turn off the Taranis, then turn it back on (not in bootloader mode). Repeat the following steps for each model for which you want to use FrSky telemetry:
- Press the MENU button, then long press the PAGE button to get to the TELEMETRY page. Press the - button until “Discover new sensors” is highlighted and press ENTER. The Taranis LCD screen should display “Stop discovery.”
- Power on the Pixhawk and FrSky receiver. Wait for 15 seconds. The Taranis should discover the emulated sensors based on the data from the Pixhawk. The sensors must all be properly discovered for the scripts to run. For example:
Assigning a Display Script to a Screen¶
If a scripts has a display, it needs to be assigned to telemetry screens. Once the script has been assigned to a screen, the script is accessed by doing a long press on the main OpenTX screen. Each long press will switch screens. Multiple scripts can be assigned to multliple screens.
On the TELEMETRY page, scroll down using the - button, and highlight the “None” entry next to “Screen 1.” Once “None” is highlighted, press ENT, then navigate the choices with the +/- buttons until “Script” appears. Press ENT to validate, then press - to move to the right (highlighting “- - -“). Press ENT and select your script (e.g. “screens”) using the +/- buttons, then press ENT to validate. The “screens” script handles the display capabilities. The Taranis LCD display should then look like this:
Activating a Custom Script (no display function)¶
Scripts that do not display anything (e.g. data parsing, sounds) are activated on the CUSTOM script page. Press EXIT once, long press PAGE to get to the CUSTOM SCRIPT page, then press ENT to edit LUA1. On the LUA1 page, press ENT and select the script using the +/- buttons, then press ENT to validate.