INAV Supported Receiver Types
Supported Receiver Types
Receivers are used to receive signals from the RC transmitter (TX) and convert them into control commands that the flight controller (FC) can recognize. INAV supports the following types of receivers:
1.1 PPM Receivers (Deprecated, only supported in INAV 3.x and earlier versions)
- Also known as PPM SUM or CPPM
- Transmits up to 12 channels through a single pin, but with lower precision and interference resistance compared to serial receivers
- No longer recommended for use, only for compatibility with legacy systems
⏺ Examples of Compatible PPM Receivers: - FrSky D4R-II
- FrSky D8R-XP
- Graupner GR24
- OrangeRx R615X DSM2/DSMX Receiver
1.2 Serial Receivers [Recommended]
Serial receivers are the current mainstream configuration method. They connect via UART with stable data transmission and strong interference resistance.
Important
Do not connect to software serial (SoftSerial), as it may cause data packet loss or control delays.
Common Protocol Support:
- SBUS
- CRSF
- IBUS
- DSM/DSMX (Spektrum protocol)
- SRXL/SRXL2 (newer Spektrum protocol)
1.3 Spektrum Receivers (Legacy Support)
Early versions of INAV support traditional Spektrum protocols (such as DSMX) via serial connection.
Example Devices:
- Lemon Rx DSMX compatible receiver (including satellite module)
RSSI Support Information: - Starting from INAV 1.6, "pseudo RSSI" is supported, which simulates RSSI values (range 0-1023) based on satellite signal fade count
- Usage condition: The receiver must be bound through the physical RX interface (the FC's bind function is insufficient)
- Set CLI parameter: set rssi_channel = 9
1.4 S.BUS Receivers
S.BUS is a common serial protocol that supports 16 channels and is widely used in FrSky and Futaba series receivers.
Features:
- Supports 16 channels (all transmitted through a single pin)
- Communication speed up to 1Mbps (cannot use SoftSerial)
- Must be connected to a hardware UART port that supports high-speed serial
Configuration Requirements:
- Wiring Connection
- Most S.BUS signals are inverted, and some FCs require an inverter
- Some FCs (such as F4, F7) have built-in inverters and require no additional hardware
- If the receiver output is non-inverted, you can disable inversion in CLI: bash copy edit set sbus_inversion = OFF
- Prohibition of SoftSerial Use
- The high baud rate of S.BUS (1Mbps) exceeds the processing capability of SoftSerial
- Channel Mapping:
- Set the corresponding AUX mapping in the Receiver tab of INAV Configurator
- Mapping for channels beyond 8 is direct passthrough (no remapping)
- CLI configuration example: map AETR1234
Examples of Compatible Receivers: - FrSky X4RSB
- FrSky X8R
- Futaba R2008SB
Configuring S.BUS Mode in OpenTX
If you are using the OpenTX system and communicating with the FC via S.BUS, please ensure the following settings are correct to properly receive all 16 channels:
- Set the transmitter protocol in the Model Setup menu to:
- Protocol mode: D16
- Channel range: CH1–16 (not CH1–8)
- Confirm these settings before binding, otherwise 16 channels will not be available in S.BUS.
Note: Channel Limitation Bug in OpenTX 2.0.9
- Some factory versions of Taranis X9D Plus come with older firmware OpenTX 2.0.9.
- This version has a serious bug (issue #1701): even when CH1-16/D16 is selected, only the first 8 channels can be used.
- Solution: Upgrade to the latest version of OpenTX firmware. It is recommended to use OpenTX Companion to upgrade to at least 2.2.x or use EdgeTX as an alternative.
II. Protocol Introduction
2.1 F.Port Introduction
F.Port is a serial communication protocol introduced by FrSky that transmits simultaneously on a single signal line. Simply connect the S.Port (or marked as F.Port) pin to any free UART TX pin on the flight controller (such as TX1, TX2, etc.).
- 16 control channels
- Complete telemetry data
It combines the advantages of S.Bus + SmartPort, simplifying wiring and improving efficiency.
Supported receiver models: - FrSky R-XSR
- X4R / X4R-SB
- XSR / XSR-M
- R9 Mini / R9 Slim / R9 Slim+
Note: - ACCST series receivers require firmware that supports F.Port.
- ACCESS series receivers can have F.Port or S.Bus output set in the transmitter (switch in RX settings page).
Configuration:
◾ INAV 2.6 and above: - Works by default, but after upgrades, confirm these parameters: set serialrx_inverted = OFF, set serialrx_halfduplex = AUTO
◾ INAV 2.6 and below (older versions): - Manual enabling of half-duplex + inverted settings is required: set serialrx_inverted = ON, set serialrx_halfduplex = ON
Other settings: - In the Ports page, check for the corresponding UART: Serial RX
- In the Receiver page, select the protocol: CRSF (F.Port and CRSF share the same protocol layer)
2.2 SUMD Protocol
SUMD (Serial Uni-Directional Digital) protocol is a serial digital signal protocol used by the Graupner HoTT system for sending control channels from the RC transmitter to the flight controller via serial port.
SUMD protocol support (in INAV):
- ✅ Supports up to 16 channels
- ✅ Input via serial port
- ❌ Not supported through SoftSerial
- ✅ Compatible with Graupner HoTT series receivers
Compatible receiver models:
GR-24: HoTT protocol, supports SUMD
GR-12SH+: Compact high-performance receiver, supports SUMD and Telemetry
2.3 IBUS Protocol
IBUS is a digital serial protocol developed by FlySky, widely used in their mid-to-low-end remote control systems. It features fast response, strong anti-interference, and simple wiring, making it suitable for flight controller firmware like INAV.
Support (INAV):
- Maximum channels: Supports 10 channels
- Interface type: Uses UART serial port at 115200 baud rate
- Refresh rate: Up to 120Hz (PPM is 50Hz)
Common compatible receivers: - FS-IA6B
- FS-X6B
- FS-IA10
- TGY-IA6B / IA10
Connection method:
2.4 SRXL2 Protocol
SRXL2 is a next-generation serial communication protocol introduced by Spektrum that supports bidirectional communication between the flight controller and receiver. Compared to earlier Spektrum protocols, SRXL2 offers better performance and more features, such as:
- Support for reading flight controller telemetry data
- Can be configured via Spektrum
Wiring instructions - Connect the receiver's signal pin labeled "S" to the flight controller's UART TX pin
- Voltage requirement: 3.3V (SPM4651T requires 4.0V) ~ 8.4V
- Note: Some F4 flight controllers have signal inverters on TX pins (like for S.Port telemetry), be sure to confirm the pin being used has no inverter
Configuration method (CLI commands)
Open CLI and enter the following commands in sequence:
feature TELEMETRY
feature -RSSI_ADC
map TAER
set receiver_type = SERIAL
set serialrx_provider = SRXL2
set serialrx_inverted = OFF
set srxl2_unit_id = 1
set srxl2_baud_fast = ON
set rssi_source = PROTOCOL
set rssi_channel = 0
saveNotes:
- RSSI_ADC must be disabled, otherwise it will override the RSSI value provided by the protocol
- rssi_channel must be set to 0, unlike earlier receivers like SPM4649T that used channel 9
- srxl2_baud_fast = ON can enable higher communication rates
Binding command
INAV 2.6 and above can directly enter binding mode via command without restarting the flight controller: bind_rx
(Older versions require using spektrum_sat_bind and restarting the flight controller)
2.5 MultiWii Serial Protocol (MSP RX)
MSP RX allows sending MSP commands via serial port (such as from a computer, ground control station, or Raspberry Pi) as RC signal input, supporting up to 18 channels.
Usage notes
- Update frequency requirement: Remote control signals must be updated using the MSP_SET_RAW_RC command at ≥ 5Hz frequency, otherwise the flight controller may trigger failsafe.
- Channel mapping: MSP_SET_RAW_RC follows your configured RC channel order (such as AETR, TAER, etc.). However, MSP_RC always returns the default AERT order, regardless of the actual channel order.
- Can be used with actual transmitter: If USE_MSP_RC_OVERRIDE is enabled during firmware compilation, you can use the CLI command msp_override_channels to specify which channels are controlled by MSP, while the remaining channels still come from the physical transmitter.
III. Simulated Joystick (SIM Joystick) Usage Instructions
INAV supports using a Joystick (gamepad) for control in the SITL simulation environment. Suitable for flight simulator debugging or algorithm simulation.
Configuration method:
You can set this through INAV Configurator or CLI commands:
# 查看接收机类型
get receiver_type
# 设置为模拟输入(Joystick)
set receiver_type = SIMOptional values are:
- NONE: No receiver
- SERIAL: Serial receiver
- MSP: MSP protocol receiver
- SIM: SITL simulated input
IV. Receiver Signal Loss Detection Mechanism
INAV enables receiver signal loss detection by default, used for: flight safety control, triggering failsafe actions (such as auto-return, landing, etc.)
Conditions for determining signal loss:
- Complete signal loss (such as receiver power off, communication failure)
- Serial receiver enters failsafe state
- Any of the first 4 channels (Aileron/Elevator/Throttle/Rudder) exceeds the set valid range
Parameter configuration:
| Parameter name | Meaning |
| --- | --- |
| rx_min_usec | Minimum valid channel value (e.g., minimum PWM pulse width, default is 885) |
| rx_max_usec | Maximum valid channel value (e.g., maximum PWM pulse width, default is 2115) |
| mid_rc | Mid value (pitch/roll/yaw return to this value in failsafe state) |
| rx_min_usec | Also used to set the default value for throttle failsafe (non-3D mode) |
V. Serial Receiver Setup Steps
- Open Configurator → Ports tab, check the Serial RX option for the UART your receiver is connected to, save and restart.
- Go to Configuration tab: Set receiver type to Serial-based Receiver, select the specific protocol (such as SBUS, CRSF, FPort, etc.), save and restart
- Or use CLI commands to set:
set receiver_type = SERIAL
set serialrx_provider = SBUSSupported protocol types include (partial): SBUS, IBUS, FPORT, CRSF, SRXL2, GHST, MAVLINK, etc.
VI. Receiver Configuration Instructions
FrSky D4R-II Receiver
- Set the failsafe mode to No Pulses.
- Procedure:
- Turn off the TX (transmitter) and RX (receiver)
- Turn on the RX
- Press the F/S button on the receiver once (do not hold)
- Turn off the RX again
- After configuration, when the receiver loses signal, it will output "no pulses", and the flight controller will quickly recognize and enter failsafe.
Graupner GR-24 (PWM receiver) - It is recommended to set the throttle channel to FAILSAFE mode in the receiver settings menu and set a value lower than rx_min_usec (such as 800).
- All control channels should be set to HOLD or OFF, but do not mix FAILSAFE with OFF, otherwise the flight controller cannot correctly recognize the failsafe state.
Receiver Channel Range Settings
Some receivers output non-standard channel pulse width ranges, which can cause inaccurate recognition by the flight controller. INAV allows you to manually map these ranges.
① Reset existing settings (if previously configured):
rxrange reset
save② Get actual channel ranges:
- Open the Configurator → Receiver page.
- Move only one joystick at a time to view the channel minimum and maximum values (it is recommended to turn off the propeller).
- Record the minimum and maximum values for the first 4 channels (usually throttle, roll, pitch, yaw).
③ Configure channel ranges:
rxrange <channel number> <minimum value> <maximum value>
④ Set midpoint values:
In the transmitter, use the Subtrim (trim) function to adjust the midpoint to around 1500μs to ensure control accuracy.
⑤ Channel reverse settings (if needed):
If you need to reverse the channel direction, just write the maximum and minimum values in reverse order: rxrange 0 2000 1000
————This article is cited from the INAV official website: https://github.com/iNavFlight/inav/blob/master/docs/Rx.md