ExpressLRS (ELRS) is the most popular open-source radio control link, offering incredible range and low latency. Combined with INAV's GPS navigation, it creates the ultimate long-range drone system. Here's how to set it up.
Hardware Requirements
- ELRS receiver (900MHz for long range, 2.4GHz for general use)
- INAV-compatible flight controller with free UART
- ELRS-compatible transmitter module (RadioMaster, BetaFPV, HappyModel)
Wiring
Connect your ELRS receiver to a free UART on your flight controller:
- TX pad on receiver → RX pad on FC UART
- RX pad on receiver → TX pad on FC UART
- 5V and GND from FC to receiver
INAV Configuration
Step 1: Port Configuration
In INAV Configurator → Ports tab:
- Find the UART connected to your ELRS receiver
- Set Serial RX on that UART
- Save and reboot
Step 2: Receiver Settings
In Configuration tab:
Receiver Mode: Serial
Serial Receiver Provider: CRSF
ELRS uses the CRSF (Crossfire) protocol — select CRSF, not ELRS.
Step 3: Telemetry
ELRS supports full telemetry back to your radio. In CLI:
set crsf_use_rx_snr = ON
set telemetry_inverted = OFF
Step 4: Failsafe
set failsafe_procedure = RTH
set rx_min_usec = 885
set rx_max_usec = 2115
ELRS Settings for INAV
- Packet rate: 150Hz for racing, 50Hz for long range
- Telemetry ratio: 1:4 or 1:8 for stable telemetry
- Switch mode: Wide or Hybrid for more aux channels
Troubleshooting
- No connection: Check UART assignment, make sure TX/RX are not swapped
- No telemetry: Enable CRSF telemetry on the same UART, set correct baud rate
- Failsafe not working: Set failsafe_procedure to RTH, verify GPS lock