# Radio Systems

A Radio Control (RC) system can be used to _manually_ control your vehicle from a handheld RC controller. This topic provides an overview of how RC works, how to choose an appropriate radio system for your vehicle, and how to connect it to your flight controller.

:::tip PX4 can also be manually controlled using a [Joystick](../config/joystick) or gamepad-like controller: this is different to an RC system! The [COM\_RC\_IN\_MODE](../../advanced_config/parameter_reference#COM_RC_IN_MODE) parameter [can be set](../advanced_config/parameters) to choose whether RC (default), Joystick, both, or neither, are enabled. :::

:::note PX4 does not require a remote control system for autonomous flight modes. :::

## How do RC Systems Work?

An _RC system_ has a ground-based _remote control unit_ that is used by the operator to command the vehicle. The remote has physical controls that can be used to specify vehicle movement (e.g. speed, direction, throttle, yaw, pitch, roll, etc.) and to enable autopilot [flight modes](../flying/flight_modes) (e.g. takeoff, land, return to land, mission etc.). On _telemetry-enabled_ RC systems, the remote control unit can also receive and display information from the vehicle, such as battery level, flight mode, and warnings.

![Taranis X9D Transmitter](https://4155462212-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LArEa7z2SPawfl3HpCD%2Fuploads%2Fgit-blob-e820f8ee258a20a22f68dc90573d97d3454bc0b9%2Ffrsky_taranis_x9d_transmitter.jpg?alt=media)

The ground based RC controller contains a radio module that is bound to, and communicates with, a (compatible) radio module on the vehicle. The vehicle-based unit is connected to the flight controller. The flight controller determines how to interpret the commands based on the current autopilot flight mode and vehicle state, and drives the vehicle motors and actuators appropriately.

:::note The ground- and vehicle- based radio modules are referred to as the transmitter and receiver respectively (even if they support bidirectional communication) and are collectively referred to as a _transmitter/receiver pair_. The RC controller and it's included radio module are commonly referred to as a "transmitter". :::

An important quality of an RC system is how many "channels" it supports. The number of channels defines how many different physical controls on the remote control can be used to send commands to the vehicle (e.g. how many switches, dials, control sticks can actually be used).

An aircraft must use a system that supports at least 4 channels (for roll, pitch, yaw, thrust). Ground vehicles need at least two channels (steering + throttle). An 8 or 16 channel transmitter provides additional channels that can be used to control other mechanisms or activate different [flight modes](../flying/flight_modes) provided by the autopilot.

## Types of Remote Controllers

### Remote Control Units for Aircraft

The most popular _form_ of remote control unit for UAVs is shown below. It has separate control sticks for controlling roll/pitch and for throttle/yaw as shown (i.e. aircraft need at least 4 channels).

![RC Basic Commands](https://4155462212-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LArEa7z2SPawfl3HpCD%2Fuploads%2Fgit-blob-977c613ac7fb5550c91f31fba21be650d5d770ed%2Frc_basic_commands.png?alt=media)

There are numerous possible layouts for the control sticks, switches, etc. The more common layouts have been given specific "Mode" numbers. _Mode 1_ and _Mode 2_ (shown below) differ only in the placement of the throttle.

![Mode1-Mode2](https://4155462212-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LArEa7z2SPawfl3HpCD%2Fuploads%2Fgit-blob-154f029fa65e761c8df7a914eba7bad5d7cd418f%2Fmode1_mode2.png?alt=media)

:::note The choice of mode is largely one of taste (_Mode 2_ is more popular). :::

## Remote Control Units for Ground Vehicles

An Unmanned Ground Vehicle (UGV)/car minimally requires a 2 channel transmitter in order to send the values for steering and speed. Commonly transmitters set these values using a wheel and trigger, two single-axis control sticks, or a single dual-axis control stick.

There is nothing to stop you using more channels/control mechanisms, and these can be very useful for engaging additional actuators and autopilot modes.

## Choosing RC System Components

You will need to select a transmitter/receiver pair that are compatible with each other. In addition, receivers have to be [compatible with PX4](#compatible_receivers) and the flight controller hardware.

Compatible radio systems are often sold together. For example, [FrSky Taranis X9D and FrSky X8R](https://hobbyking.com/en_us/frsky-2-4ghz-accst-taranis-x9d-plus-and-x8r-combo-digital-telemetry-radio-system-mode-2.html?___store=en_us) are a popular combination.

### Transmitter/Receiver Pairs

One of the most popular RC units is the _FrSky Taranis X9D_. It has an internal transmitter module can be used with the recommended _FrSky X4R-SB_ (S-BUS, low delay) or _X4R_ (PPM-Sum, legacy) receivers out of the box. It also has a custom radio transmitter module slot and customizable open source OpenTX Firmware.

:::note This remote control unit can display vehicle telemetry when used with [FrSky](../drone_parts/peripherals/frsky_telemetry) or [TBS Crossfire](../drone_parts/peripherals/crsf_telemetry) radio modules. :::

Other popular transmitter/receiver pairs

* Turnigy remote using, for example, the FrSky transmitter/receiver modules.
* Futaba Transmitters and compatible Futaba S-Bus receivers.
* Long range \~900MHz, low latency: "Team Black Sheep Crossfire" or "Crossfire Micro" set with a compatible remote (e.g. Taranis)
* Long Range \~433MHz: ImmersionRC EzUHF set with a compatible remote (e.g. Taranis)

### PX4-Compatible Receivers

In addition to the transmitter/receiver pairs being compatible, the receiver must also be compatible with PX4 and the flight controller hardware.

_PX4_ and _Pixhawk_ have been validated with:

* All Spektrum DSM RC receivers
* All Futaba S.BUS and S.BUS2 RC receivers
* All FrSky PPM and S.Bus models
* Graupner HoTT
* All PPM models from other manufacturers
* TBS Crossfire/Express LRS Receivers using [CRSF Telemetry](../drone_parts/peripherals/crsf_telemetry) (UART connection).

## Connecting Receivers

As general guidance, receivers connect to the flight controller using the port appropriate to their supported protocol:

* Spektrum and DSM receivers must connect to a **SPKT/DSM** input.
* Graupner HoTT receivers: SUMD output must connect to a **SPKT/DSM** input.
* PPM-Sum and S.BUS receivers must connect directly to the **RC** ground, power and signal pins (typically labeled RC or RCIN)
* PPM receivers that have an individual wire for each channel must connect to the RCIN channel _via_ a PPM encoder [like this one](http://www.getfpv.com/radios/radio-accessories/holybro-ppm-encoder-module.html) (PPM-Sum receivers use a single signal wire for all channels).

Instructions for connecting to specific flight controllers are given in their [quick-start](../assembly) guides (such as [CUAV Pixhawk V6X Wiring Quick Start: Radio Control](../../assembly/quick_start_cuav_pixhawk_v6x#radio-control) or [Holybro Pixhawk 6X Wiring Quick Start: Radio Control](../../assembly/quick_start_pixhawk6x#radio-control)).

:::tip See the manufacturer's flight controller setup guide for additional information. :::

## Binding Transmitter/Receiver

Before you can calibrate/use a radio system you must _bind_ the receiver and transmitter so that they communicate only with each other. The process for binding a transmitter and receiver pair is hardware specific (see your manual for instructions).

If you are using a _Spektrum_ receiver, you can put it into bind mode using _QGroundControl_: [Radio Setup > Spectrum Bind](../../config/radio#spectrum-bind).

## Set Signal-Loss Behaviour

RC receivers have different ways of indicating signal loss:

* Output nothing (automatically detected by PX4)
* Output a low throttle value (you can [configure PX4 to detect this](../../config/radio#rc-loss-detection)).
* Output the last received signal (PX4 cannot handle this case!)

Choose a receiver that can emit nothing (preferred) when RC is lost, or a low throttle value. This behaviour may require hardware configuration of the receiver (check the manual).

For more information see [Radio Control Setup > RC Loss Detection](../../config/radio#rc-loss-detection).

## Related Topics

* [Radio Control Setup](../config/radio) - Configuring your radio with PX4.
* [Flying 101](../flying/basic_flying) - Learn how to fly with a remote control.
* [TBS Crossfire (CRSF) Telemetry](../drone_parts/peripherals/crsf_telemetry)
* [FrSky Telemetry](../drone_parts/peripherals/frsky_telemetry)
