TBS Crossfire (CRSF) Telemetry
Last updated
Last updated
CRSF is a telemetry protocol that can be used for both and to get telemetry information from the vehicle/flight controller on a compatible RC transmitter.
The protocol was developed by for their Crossfire RC system, but is also used by RC systems. It is a bidirectional protocol that only needs a single UART for communicating both RC and telemetry.
The , and include: flight mode, battery level, GPS data RC signal strength, speed, altitude, and so on.
:::note If you don't need telemetry you can connect a TBS Crossfire to the RCIN
port and configure the receiver to use S.BUS. Crossfire radio systems can also be used as . :::
:::warning PX4 does not include the CRSF protocol support by default. The explain how to build and upload custom PX4 firmware that includes the required modules. :::
To use CRSF telemetry you will need a or that includes an with a transmitter, and a receiver (from the same vendor).
:::note An RC radio system historically consisted of a ground-based controller that transmitted to an on-vehicle receiver. Even though many radio systems are now bidirectional, the ground module may still be referred to as the transmitter, and the air unit may be called a receiver. :::
Generally you will need to separately setup and configure the transmitter and receiver, and then bind them together.
A transmitter might come as an integral part of an , or it might be a separate module that you plug into a controller. If it is a separate module then you may also need to update the module software on the transmitter to firmware that supports CRSF, such as OpenTX or EdgeTx. In both cases you will need to configure the transmitter to enable CRSF.
The receiver must be to a spare port (UART) on the Flight Controller. Then you can bind the transmitter and receiver together.
Instructions for the steps above are covered in
The TX and RX on your selected Flight Controller UART should be connected to separate channels on the receiver. The signal is usually uninverted, and can be directly connected (no additional inverter logic is required in the cable). You should check the manual for your specific receiver though!
For TBS receivers you wire the FC UART and receiver as shown (this assumes the TBS Nano RX).
TX
Ch2
RX
Ch1
TX
RX
RX
TX
VCC
VCC
GND
GND
The steps are:
As part of this process you will have used git
to fetch source code into the PX4-Autopilot directory.
Open a terminal and cd
into the PX4-Autopilot
directory.
In the PX4 board config tool:
Disable the default rc_input
module
Navigate to the drivers
submenu, then scroll down to highlight rc_input
.
Use the enter key to remove the *
from rc_input
checkbox.
Enable the crsf_rc
module
Scroll to highlight the RC
submenu, then press enter to open it.
Scroll to highlight crsf_rc
and press enter to enable it.
Save and exit the PX4 board config tool.
This will build your custom firmware, which must now be uploaded to your flight controller.
To upload the custom firmware, first connect your flight controller to the development computer via USB.
You can upload firmware as part of the build process using the upload
options:
There is no need to set the baud rate for the port, as this is configured by the driver.
A transmitter might come as an integral part of an RC controller, or it might be a separate module that you plug into a controller.
RC Controllers that support TBS Crossfire and ExpressLRS TX modules:
Transmitter modules:
Receivers:
Transmitter modules:
TBD
Receivers:
1RSS
Uplink - received signal strength antenna 1 (RSSI)
TBS CROSSFIRE RX
2RSS
Uplink - received signal strength antenna 2 (RSSI)
TBS CROSSFIRE RX
RQly
Uplink - link quality (valid packets)
TBS CROSSFIRE RX
RSNR
Uplink - signal-to-noise ratio
TBS CROSSFIRE RX
RFMD
Uplink - update rate, 0 = 4Hz, 1 = 50Hz, 2 = 150Hz
TBS CROSSFIRE RX
TPWR
Uplink - transmitting power
TBS CROSSFIRE TX
TRSS
Downlink - signal strength antenna
TBS CROSSFIRE TX
TQly
Downlink - link quality (valid packets)
TBS CROSSFIRE TX
TSNR
Downlink - signal-to-noise ratio
TBS CROSSFIRE TX
ANT
Sensor for debugging only
TBS CROSSFIRE TX
GPS
GPS Coordinates
TBS GPS / FC
Alt
GPS Altitudes
TBS GPS / FC
Sats
GPS Satellites acquired
TBS GPS / FC
Hdg
Magnetic orientation
TBS GPS / FC
RXBt
Battery voltage
TBS GPS / FC/ CROSSFIRE RX/ CORE
Curr
Current draw
TBS GPS / FC// CORE
Capa
Current consumption
TBS GPS / FC/ CORE
Ptch
FC Pitch angle
FC
Roll
FC Roll angle
FC
Yaw
FC Yaw angle
FC
FM
Flight mode
FC
VSPD
Barometer
FC
For ExpressLRS receivers wire to the flight controller UART as shown below (wiring is covered ):
CRSF telemetry support is not included in any PX4 firmware by default. To use this feature you must build and upload custom firmware that includes and removes .
for building PX4.
Launch the for your make
target using the boardconfig
option (here the target is the flight controller):
with your changes (again assuming you are using ARKV6X):
Alternatively you can use QGroundControl to install the firmware, as described in .
named to the port that is connected to the CRSF receiver (such as TELEM1
).
This to use the CRSF protocol. Note that some serial ports may already have a or that you will have to un-map before you can assign the port to CRSF. For example, if you want to use TELEM1
or TELEM2
you first need to modify or to stop setting those ports.
explains how to map your RC controller's attitude control sticks (roll, pitch, yaw, throttle) to channels, and to calibrate the minimum, maximum, trim and reverse settings for all other transmitter controls/RC channels.
has an external module bay that can be used with TBS or ExpressLRS transmitter modules that are "JR module bay" compatible. You will need to install OpenTX software, which supports CRSF, and enable the external module and CRSF.
has an internal ExpressLRS transmitter module. It also has an external module bay that can be used with TBS or ExpressLRS transmitter modules that are "JR module bay" compatible. It runs both OpenTX and EdgeTx software, either of which can support CRSF.
. A few options are listed below.
- designed for small quadcopters.
Express LRS provide Radio System guidance in the page. A few tested options are listed below.
.
:::note This is used in the . See sections and . :::
The supported telemetry messages and their source are listed below (this table is reproduced from the ).