Radio Control Systems

../_images/rc_systems.png

This article provides an overview of the RC Transmitter and Receiver Systems that can be used with ArduPilot autopilots.

Compatible RC Protocols

ArduPilot autopilots are compatible with the following receiver output protocols:

  1. PPM-Sum receivers

  2. SBus receivers

  3. Fast SBus (from DJI HDL video/RC systems)

  4. i-BUS receivers

  5. FPort Receivers

  6. Spektrum SRXL2,DSM, DSM2, and DSM-X Satellite receivers

  7. Multiplex SRXL version 1 and version 2 receivers

  8. CRSF receivers (including ExpressLRS systems)

  9. mLRS (with telemetry) (MAVLink)

  10. Graupner SUM-D

  11. IRC Ghost

  12. DroneCAN peripherals can decode these RC protocols on a peripheral and pass to the autopilot

  13. MAVLink connected RC (not to be confused with MAVLink RC Overrides used for CS joystick control of RC functions)

  14. Parallel PWM outputs encoded to PPM-Sum using an external encoder (see below, not supported on many autopilots now)

Connecting the Receiver

For all protocols above, ArduPilot auto-detects the protocol of the RC receiver system. However, depending on the protocol and autopilot type, the physical connection to the autopilot may differ.

Some protocols, most notably SRXL2, CRSF, and ELRS, require a full UART connection.

In addition other protocols that also provide telemetry, like FPort, would generally require a bi-directional half-duplex connection in order to obtain telemetry. For these protocols the TX output of the UART should be connected to the serial input of the receiver. It is also possible on F7 and H7 boards to connect to the UART RX input with some additional configuration.

PPM-Sum/SBus/i-BUS

These receivers are usually connected to the RCin or SBUS input pin on the autopilot.

To connect a PPM-Sum receiver or an SBus receiver to a Pixhawk, for example, plug the ground (black), power (red) and signal (usually white - orange in the diagram below) wires to the RC pins on the Pixhawk.

../_images/RCIN_connection.jpg

Tip

The parameter to enable the SBus output from the PixHawk style autopilots is BRD_SBUS_OUT. This is only to pass SBus externally to other devices, like servos. Not to connect a receiver to RCin or SBus In.

DSM/DSM2/DSM-X/SRXL/SUM-D

For autopilots that do not provide a separate DSM input, these can be connected as above. However, for performance reasons on autopilots that use an IOMCU (The Pixhawk/Cube family), the autopilot’s DSM input connection is highly recommended.

../_images/pixhawk_spektrum_connection.jpg

FPort/FPort2

FPort is a bi-directional protocol, using SBus RC in one direction, and serial telemetry in the other. The RC portion can be decoded when attached to an autopilot as if it were SBus, but the embedded telemetry would be lost. See the FPort setup documentation for details on connection to one of the autopilots Serial Ports.

mLRS

mLRS can provide RC control and MAVLink telemetry. mLRS receivers have an RC output pin that can be configured for either SBUS or CRSF protocol (CRSF would be only RC data). For SBUS you can connect it to the autopilot’s RCin pin. For CRSF or SBUS, it can be connected to any autopilot UART RX pin and that port configured for RC protocol. Using CRSF portocol, allows RSSI/LQ information to be delivered to the autopilot.

For optional telemetry a separate TX/RX port is provided on the receiver to be connected to an autopilot MAVLink telemetry serial port. You can omit the single wire RC connection and configure the mLRS receiver to output RC channels over MAVLink if you are not using GCS RC overrides (eg, joystick)

SRXL2/CRSF/ELRS

These bi-directional protocols require the use of a Serial Port. See links below for setup and connections.

IRC Ghost

This requires a connection to a full UART port via its TX pin. The port should be set for half-duplex RC input:

using SERIAL2 as the port:

RC input to Serial Port

Note

any UART RX input will auto-detect all the protocols (except PPM, or SRXL2/CRSF/ELRS which also require connection of the UART’s TX pin), if the serial port protocol is set to 23 (for example, generally, SERIAL2_PROTOCOL for the TELEM2 UART if used). The exception to this is for SBUS attached to UARTs on F4 based autopilots. This requires an external inverter since SBUS is inverted and F4 autopilots do not have selectable inversion on their UART pins.

Note

The serial port baudrate is automatically set and controlled by the firmware when any serial RC protocol is detected.

Radio System Selection

Selection will depend on many factors: range,telemetry requirements, cost, compatibility with existing equipment, etc. Most manufacturers often many different models with differing capabilities. Many systems have been reverse-engineered and “cloned” by other manufacturers offering more economical versions of transmitters and receivers. Many Transmitters offer multiple protocols and are based on the OpenTX firmware which is extremely flexible and also allows the use of LUA scripts to display telemetry data on their LCD screens.

Range

RC control range varies greatly depending on system used, installation, antennas used, terrain, and even weather conditions. But in general, for discussion purposes here, RC systems can be categorized into Short Range (2km and under) , Medium (2-10km) and Long Range (>10km). In addition, they may offer uni-directional (Vehicle to Transmitter) or bi-directional (Vehicle to/from Transmitter) telemetry.

Telemetry

FrSky Horus Transmitter running Yaapu LUA script

../_images/x10-horus.png

Some systems provide transparent radio modems sending the telemetry from the autopilot, and others have proprietary protocols. Those with proprietary protocols often have means of displaying telemetry data on the transmitter display itself, like FRSky or OpenTX based Transmitters.

Telemetry speeds vary from 56K to 1-2K baud depending on protocol and, in some cases, distance. Often telemetry range will be less than radio control range.

Consult

Number of channels

ArduPilot requires at least 5 channels for most vehicles, however, 8 to 16 channels are commonly available in most systems and are very convenient for controlling other vehicle functions such as cameras or flight feature options. Many vehicles require 8 channels just for basic operation, such as many QuadPlanes.

Below is a table with some commonly available systems showing these elements. Note, not all versions of transmitters and/or receivers from a particular manufacturer may have these characteristics. Note: that many “clone” or “compatible” versions of this systems also exist, only the OEM system is listed.

Original Manufacturer

Range

Telemetry

Telem Speed

TX Display

RC Protocol

Notes

DragonLink

Long

Bi-dir

56K

via MTP/LUA

PPM_SUM/SBUS

1

CRSF

Long

Bi-dir

Variable

yes

SBUS/CRSF

3

ELRS

Long

Bi-Dir

Variable

optional

SBUS/CRSF

Mavlink

4

Flysky

Short

Yes

yes

i-BUS/SBUS

7

FrSky X series

Short

Bi-dir

Medium

yes

PPM-SUM/SBUS/ FPort

2

FrSky R9 series

Medium

Bi-dir

Medium

yes

PPM-SUM/SBUS/ FPort

2

Futaba

Short

No

SBus

Graupner

Short

Yes

Medium

yes

SUM-D

IRC Ghost

Medium

Vendor Specific

yes

IRC Ghost

mLRS

Long

Bi-dir

12K - 91K

via LUA

SBUS/CRSF

5

Multiplex

Short

No

SRXL

Spektrum

Short

Vendor Specific

yes

DSM/DSM2 DSM-X/ SRXL

Note 1: DragonLink provides a 56Kbaud transparent link for telemetry, allowing full MAVLink telemetry to/from the vehicle from the transmitter module. Dragonlink is an add-on module to the transmitter, such as an FRSky Taranis or RadioMaster T16. See DragonLink RC Systems. MTP (Mavlink to Passthru) converters are available to allow direct display of MAVLink Telemetry data on OpenTX transmitters using Yaapu Telemetry LUA Script.

Note 2: See Yaapu FrSky Telemetry Script for OpenTX. The ability to change parameters over FRSky telemetry from an Open TX compatible transmitter in addition to displaying the telemetry data is possible. Most FRSky compatible transmitters use OpenTX. Note that R9 systems are not quite Long Range, but much further range than normal FRSky systems, themselves at the very high end of the Short Range category at 1.6-2km range.

Note 3: ArduPilot provides a means to send its telemetry data via CRSF such that it can be displayed on OpenTX transmitters using the Yaapu Telemetry LUA Script. The ability to change parameters over CRSF telemetry from an Open TX compatible transmitter in addition to displaying the telemetry data is also possible. See TBS Crossfire Telemetry

Note 4: ELRS (ExpressLRS) is a flexible open-source system that can output CRSF, SBUS, or MAVLink (with embedded RC) protocols. Telemetry requires the use of CRSF or Mavlink, and the receiver must be wired to a full UART. See ExpressLRS site <https://www.expresslrs.org/> and TBS CRSF/ ELRS for more information.

Note 5: The mLRS project is firmware designed specifically to carry both RC and MAVLink. The usable telemetry speed varies by the chosen mode and is managed via RADIO_STATUS flow control. It uses the CRSF (TBS Crossfire) RC protocol on both the receiver and Tx module. It also integrates full MAVLink telemetry via serial connections on the Tx module and the receiver.

Note 6: Vendor Specific Telem means that they accomodate sensor additions to the vehicle and can display the information on certain Vendor specific TXs but do not send ArduPilot telemetry from the vehicle to ArduPilot compatible GCS or OpenTX display scripts.

Note 7: The receiver must support i-BUS telemetry (look for a SENS port on the receiver or check the product specifications).

PPM encoders

A PPM Encoder will allow you to use any older style RC receiver that has only PWM outputs for each channel instead of an SBUS or PPM output. See PPM encoders for more information. This protocol is not being included on many new autopilots and is being slowly obsoleted.