Files
PX4-Autopilot/docs/en/msg_docs/InputRc.md
PX4BuildBot d965df930c docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-02-23 18:34:11 +00:00

11 KiB

pageClass
pageClass
is-wide-page

InputRc (UORB message)

TOPICS: input_rc

Fields

Name Type Unit [Frame] Range/Enum Description
timestamp uint64 time since system start (microseconds)
timestamp_last_signal uint64 last valid reception time
channel_count uint8 number of channels actually being seen
rssi int32 receive signal strength indicator (RSSI): < 0: Undefined, 0: no signal, 100: full reception
rc_failsafe bool explicit failsafe flag: true on TX failure or TX out of range , false otherwise. Only the true state is reliable, as there are some (PPM) receivers on the market going into failsafe without telling us explicitly.
rc_lost bool RC receiver connection status: True,if no frame has arrived in the expected time, false otherwise. True usually means that the receiver has been disconnected, but can also indicate a radio link loss on "stupid" systems. Will remain false, if a RX with failsafe option continues to transmit frames after a link loss.
rc_lost_frame_count uint16 Number of lost RC frames. Note: intended purpose: observe the radio link quality if RSSI is not available. This value must not be used to trigger any failsafe-alike functionality.
rc_total_frame_count uint16 Number of total RC frames. Note: intended purpose: observe the radio link quality if RSSI is not available. This value must not be used to trigger any failsafe-alike functionality.
rc_ppm_frame_length uint16 Length of a single PPM frame. Zero for non-PPM systems
rc_frame_rate uint16 RC frame rate in msg/second. 0 = invalid
input_source uint8 Input source
values uint16[18] measured pulse widths for each of the supported channels
link_quality int8 link quality. Percentage 0-100%. -1 = invalid
rssi_dbm float32 Actual rssi in units of dBm. NaN = invalid
link_snr int8 link signal to noise ratio in units of dB. -1 = invalid

Constants

Name Type Value Description
RC_INPUT_SOURCE_UNKNOWN uint8 0
RC_INPUT_SOURCE_PX4FMU_PPM uint8 1
RC_INPUT_SOURCE_PX4IO_PPM uint8 2
RC_INPUT_SOURCE_PX4IO_SPEKTRUM uint8 3
RC_INPUT_SOURCE_PX4IO_SBUS uint8 4
RC_INPUT_SOURCE_PX4IO_ST24 uint8 5
RC_INPUT_SOURCE_MAVLINK uint8 6
RC_INPUT_SOURCE_QURT uint8 7
RC_INPUT_SOURCE_PX4FMU_SPEKTRUM uint8 8
RC_INPUT_SOURCE_PX4FMU_SBUS uint8 9
RC_INPUT_SOURCE_PX4FMU_ST24 uint8 10
RC_INPUT_SOURCE_PX4FMU_SUMD uint8 11
RC_INPUT_SOURCE_PX4FMU_DSM uint8 12
RC_INPUT_SOURCE_PX4IO_SUMD uint8 13
RC_INPUT_SOURCE_PX4FMU_CRSF uint8 14
RC_INPUT_SOURCE_PX4FMU_GHST uint8 15
RC_INPUT_MAX_CHANNELS uint8 18 Maximum number of R/C input channels in the system. S.Bus has up to 18 channels.
RSSI_MAX int8 100

Source Message

Source file (GitHub)

::: details Click here to see original file

uint64 timestamp			# time since system start (microseconds)

uint8 RC_INPUT_SOURCE_UNKNOWN = 0
uint8 RC_INPUT_SOURCE_PX4FMU_PPM = 1
uint8 RC_INPUT_SOURCE_PX4IO_PPM = 2
uint8 RC_INPUT_SOURCE_PX4IO_SPEKTRUM = 3
uint8 RC_INPUT_SOURCE_PX4IO_SBUS = 4
uint8 RC_INPUT_SOURCE_PX4IO_ST24 = 5
uint8 RC_INPUT_SOURCE_MAVLINK = 6
uint8 RC_INPUT_SOURCE_QURT = 7
uint8 RC_INPUT_SOURCE_PX4FMU_SPEKTRUM = 8
uint8 RC_INPUT_SOURCE_PX4FMU_SBUS = 9
uint8 RC_INPUT_SOURCE_PX4FMU_ST24 = 10
uint8 RC_INPUT_SOURCE_PX4FMU_SUMD = 11
uint8 RC_INPUT_SOURCE_PX4FMU_DSM = 12
uint8 RC_INPUT_SOURCE_PX4IO_SUMD = 13
uint8 RC_INPUT_SOURCE_PX4FMU_CRSF = 14
uint8 RC_INPUT_SOURCE_PX4FMU_GHST = 15

uint8 RC_INPUT_MAX_CHANNELS = 18 	# Maximum number of R/C input channels in the system. S.Bus has up to 18 channels.

uint64 timestamp_last_signal		# last valid reception time

uint8 channel_count			# number of channels actually being seen

int8 RSSI_MAX = 100
int32 rssi				# receive signal strength indicator (RSSI): < 0: Undefined, 0: no signal, 100: full reception

bool rc_failsafe			# explicit failsafe flag: true on TX failure or TX out of range , false otherwise. Only the true state is reliable, as there are some (PPM) receivers on the market going into failsafe without telling us explicitly.
bool rc_lost				# RC receiver connection status: True,if no frame has arrived in the expected time, false otherwise. True usually means that the receiver has been disconnected, but can also indicate a radio link loss on "stupid" systems. Will remain false, if a RX with failsafe option continues to transmit frames after a link loss.

uint16 rc_lost_frame_count		# Number of lost RC frames. Note: intended purpose: observe the radio link quality if RSSI is not available. This value must not be used to trigger any failsafe-alike functionality.
uint16 rc_total_frame_count		# Number of total RC frames. Note: intended purpose: observe the radio link quality if RSSI is not available. This value must not be used to trigger any failsafe-alike functionality.
uint16 rc_ppm_frame_length		# Length of a single PPM frame. Zero for non-PPM systems
uint16 rc_frame_rate			# RC frame rate in msg/second. 0 = invalid

uint8 input_source			# Input source
uint16[18] values			# measured pulse widths for each of the supported channels

int8 link_quality			# link quality. Percentage 0-100%. -1 = invalid
float32 rssi_dbm			# Actual rssi in units of dBm. NaN = invalid
int8 link_snr				# link signal to noise ratio in units of dB. -1 = invalid

:::