What Is ExpressLRS?
ExpressLRS (ELRS) is an open-source RC link system designed from the ground up for low latency, long range, and low cost. It was developed by the community starting in 2020 and has become the dominant RC link choice for FPV pilots in 2026.
ELRS uses LoRa-based radio modules operating at either 2.4GHz (for low latency, good range) or 900MHz (for maximum range). The firmware is maintained on GitHub and supports hardware from multiple manufacturers.
Key reasons ELRS has become standard:
- Receivers cost $8–$20 (vs $25–$40 for Crossfire)
- Many modern radios have ELRS built-in (no external module needed)
- Latency as low as 1ms at 1000Hz packet rate
- Active community development with frequent improvements
- Open-source — no vendor lock-in
For a comparison with Crossfire to help you decide which to use, see the Crossfire vs ELRS guide.
Browse the receiver database to compare ELRS receiver options.
What You Need Before You Start
Hardware Requirements
Transmitter side:
- A radio with ELRS built-in (RadioMaster Boxer, TX16S with ELRS module, Pocket, etc.), OR
- A radio with a JR module bay + an ELRS TX module (BETAFPV ELRS Micro, RadioMaster Ranger, etc.)
Receiver side:
- An ELRS-compatible receiver (EP1, EP2, SuperNova, Gemini, BetaFPV Nano, etc.)
- Matching frequency: 2.4GHz RX must pair with 2.4GHz TX; 900MHz RX pairs with 900MHz TX
Software requirements:
- ExpressLRS Configurator — for flashing firmware
- Betaflight Configurator — for FC configuration
- Optional: EdgeTX Companion if you need to update your radio firmware
Important Version Matching Rule
TX firmware version and RX firmware version must match exactly. An ELRS 3.4.0 TX module cannot bind to an ELRS 3.3.0 receiver. Always update both at the same time.
Step 1: Install ELRS Configurator
Download the ELRS Configurator from the GitHub releases page. It's available for Windows, macOS, and Linux.
The Configurator handles:
- Building firmware from source with your settings
- Flashing TX modules via USB or Wi-Fi OTA
- Flashing receivers via various methods (passthrough, UART, Wi-Fi OTA)
On first launch, select your target device from the device list. ELRS targets are organized by manufacturer and hardware version.
Step 2: Configure Your Build Options
Before flashing, you configure build options in the Configurator. The most important option is the binding phrase.
Binding Phrase
The binding phrase is the ELRS alternative to traditional button binding. Both your TX module and your receiver are flashed with the same binding phrase, and they automatically connect when in range of each other.
Benefits:
- No button pressing required for binding
- Multiple drones bind automatically when powered up near your TX
- Security — other people's ELRS hardware won't bind to your TX
Choose something unique to you. Example: "MY_DRONE_KEY_2026". It can be any text string. Write it down — you'll need it for every receiver you flash.
Packet Rate Selection
The binding phrase is baked into firmware, but packet rate is configured dynamically via the ELRS Lua script on your radio (no reflash required).
Common packet rates for 2.4GHz:
- 500Hz — 2ms latency, good range, recommended for most FPV
- 250Hz — 4ms latency, longer range
- 1000Hz — 1ms latency, slightly reduced range, best for racing
For 900MHz:
- 200Hz — 5ms latency, excellent range
- 100Hz — 10ms latency, maximum range
- 50Hz — 20ms latency, extreme range mode
Other Key Build Options
Telemetry ratio — how often the receiver sends telemetry back to the TX. 1:64 means 1 telemetry packet per 64 RC packets. Higher ratio = more telemetry data at the cost of slightly reduced link efficiency.
Power settings — the maximum transmit power. Check your local regulations. In the US, maximum is 1W (30dBm) on 2.4GHz. In the EU, 25mW for 2.4GHz.
UART inverted — most modern FCs use standard (non-inverted) UART. Leave this at the default unless your FC requires it.
Step 3: Flash the TX Module
Method A: USB Direct Flash (Most Common)
- Connect the TX module to your computer via USB
- Put the TX module in bootloader mode (usually hold a button while connecting, or use the passthrough menu on your radio)
- In ELRS Configurator, select your TX target, set your binding phrase, click "Build & Flash"
- The Configurator flashes firmware directly via USB
Method B: EdgeTX Passthrough Flash
If your radio runs EdgeTX and the TX module is internal or connected via JR bay:
- Connect your radio to your computer via USB
- On the radio, go to System → USB Settings → USB-VCP (serial)
- In ELRS Configurator, select "EdgeTX Passthrough" as the flashing method
- Select the correct COM port (the radio will appear as a virtual COM port)
- Build and flash normally
Method C: Wi-Fi OTA Flash
ELRS modules running firmware 3.x have a built-in Wi-Fi hotspot for over-the-air updates:
- Power the TX module and hold the bind button for 5 seconds
- It creates a Wi-Fi hotspot (SSID:
ExpressLRS TX) - Connect your computer to this network
- Open browser, navigate to
10.0.0.1 - Upload the new firmware file (
.bin) through the web interface
OTA is the most convenient method once ELRS is already installed.
Step 4: Flash the Receiver
Method A: Betaflight FC Passthrough (Easiest for First Flash)
This method uses the flight controller as a USB-serial bridge to flash the receiver. The receiver must already be wired to the FC.
- Connect FC to computer via USB (don't power the drone yet)
- In Betaflight Configurator, go to the Ports tab and set the UART your receiver is on to serial passthrough mode
- In ELRS Configurator, select "Betaflight Passthrough" as flashing method
- Select the correct COM port (the FC)
- Set binding phrase, build and flash
Method B: Wi-Fi OTA Flash on Receiver
Many ELRS receivers have Wi-Fi flashing capability. This works on receivers already running ELRS firmware:
- Power the receiver (through the FC or directly)
- Hold the bind button on the receiver for 5 seconds to activate Wi-Fi mode
- Connect to the receiver's Wi-Fi network
- Navigate to the web interface and upload new firmware
Method C: UART Flash
For receivers with exposed UART pads:
- Connect an FTDI USB-to-serial adapter to the receiver's TX/RX pads
- Put receiver in bootloader mode (often by shorting boot pads or holding button during power)
- Flash via ELRS Configurator with UART method
Step 5: Binding
If you used a binding phrase (recommended), binding is automatic:
- Power up the TX module with your radio
- Power up the receiver
- They find each other and bind automatically — the binding LED on the receiver will go solid or slow blink
If you're using button binding (no binding phrase):
- Power up the TX module
- Power up the receiver while holding the bind button
- The TX enters bind mode; they exchange binding data
- Power cycle both; the RX should now bind on power-up
To verify binding: the receiver LED should be solid (bound and getting packets). A fast-blinking LED means it's searching for a TX.
Step 6: Wiring to the Flight Controller
Wire the receiver to the FC using a UART. Standard wiring:
RX_TX pad → FC UART RX pin
RX_RX pad → FC UART TX pin
5V pad → FC 5V output
GND pad → FC GND
Note the crossover: the receiver's TX connects to the FC's RX, and vice versa. This is standard serial communication.
Write down which UART number you used (e.g., UART3). You'll need this in Betaflight.
Step 7: Betaflight Configuration
Ports Tab
- Open Betaflight Configurator and connect your FC
- Go to the Ports tab
- Find the UART you wired the receiver to
- In the "Serial Rx" column, enable it for that UART
- Hit Save
Configuration Tab
- Go to the Configuration tab
- Scroll to "Receiver" section
- Set Receiver Mode to "Serial-based receiver"
- Set Serial Receiver Provider to "CRSF" (ELRS uses CRSF protocol)
- Save and reboot
Receiver Tab
After rebooting, go to the Receiver tab. You should see channel bars moving when you move sticks:
- Move throttle stick up — CH3 should increase
- Move roll stick right — CH1 should increase
- Move pitch stick up — CH2 should increase
- Move yaw stick right — CH4 should increase
If channels are wrong direction, reverse them in Betaflight's Receiver tab using the channel direction toggles.
Channel Mapping
Default ELRS channel mapping is AETR1234 (Aileron, Elevator, Throttle, Rudder = CH1, CH2, CH3, CH4). Most radios default to this. If channels appear on wrong sticks, check your radio's channel order settings.
Step 8: ELRS Lua Script on Your Radio
The ELRS Lua script runs on your EdgeTX/OpenTX radio and provides real-time control of ELRS parameters.
Installing the Lua Script
- Download the ELRS Lua script from the ELRS GitHub releases
- Copy to your radio's SD card:
/SCRIPTS/TOOLS/elrsV3.lua(for ELRS 3.x) - On the radio: go to System → SD Card → TOOLS → run elrsV3.lua
Key Settings in the Lua Script
Packet Rate — change dynamically without reflashing. Common setting: 500Hz for FPV, 200Hz for long-range.
TX Power — adjust transmit power. Use minimum necessary power for your application. Maximum legal power varies by country and band.
Telemetry Ratio — higher ratio gives more telemetry data (better battery voltage reading accuracy on radio), lower ratio is more efficient.
Model Match — when enabled, the TX only connects to the receiver associated with the current radio model. Prevents accidentally controlling the wrong drone.
Step 9: Failsafe Configuration
Configure failsafe in Betaflight before flying:
- In Betaflight's Failsafe tab, set Stage 2 failsafe behavior
- Common options: Drop (immediate disarm — safest in most situations), Land (descend slowly), GPS Rescue (requires GPS)
- Set the failsafe delay (seconds before Stage 2 activates after link loss)
- Test failsafe: arm the drone on a bench, disable your radio — the motors should stop within the configured delay
Never fly without a tested failsafe.
Telemetry Setup
ELRS provides rich bidirectional telemetry with sensors visible on your radio:
| Sensor | Description |
|---|---|
| RQly | Receiver link quality (%) — most important metric |
| RSNR | Receiver SNR (signal-to-noise ratio) |
| TSNR | TX SNR |
| RFMD | Packet rate mode |
| BATT | Battery voltage (from Betaflight) |
| ANT | Antenna select (diversity RX) |
| GPS data | Position, speed, altitude (if GPS connected) |
Set alarms on your radio for RQly below 70% — this gives advance warning of range limits before failsafe.
Troubleshooting Common Issues
Receiver Won't Bind
- Verify TX and RX are on the same frequency (both 2.4GHz or both 900MHz)
- Verify TX and RX firmware versions match exactly
- If using binding phrase, verify the phrase is identical on both (case-sensitive)
- Try button binding as a test — if it binds via button but not phrase, check spelling
No Channels in Betaflight
- Verify the UART is set to "Serial Rx" in Ports tab (not "MSP" or off)
- Verify receiver provider is set to "CRSF" in Configuration tab
- Verify receiver is bound (LED should be solid)
- Check wiring: RX-TX and TX-RX should be crossed
Random Disconnections in Flight
- Check antenna orientation — receiver antennas should be perpendicular and away from carbon fiber
- Carbon fiber blocks 2.4GHz signals. Keep antenna clear of frame
- Check power supply to receiver — inadequate 5V causes brownouts
- Enable diversity if available
Channels Reversed
In Betaflight's Receiver tab, use the "Reverse" toggle on the affected channel. If throttle is inverted, reverse CH3.
High Latency / Stuttering
- Verify packet rate is set as expected in the Lua script
- Check for RF interference from other 2.4GHz sources (VTX using 2.4GHz band, WiFi nearby)
- Consider switching to 900MHz if 2.4GHz environment is congested
Frequently Asked Questions
Do I need to update ELRS every time a new version comes out?
No. ELRS is stable and doesn't require constant updates. Update when a new version fixes a specific issue affecting you or adds a feature you want. The critical rule is: update TX and RX together to the same version. Mismatched versions won't bind.
Can I use ELRS on a plane or boat?
Yes. ELRS works with any vehicle that uses CRSF-compatible receivers. ArduPilot and ArduRover both support CRSF input. The long range and low latency are especially valuable for fixed-wing aircraft where you're at greater distances.
What is the maximum range of ELRS?
Range depends on frequency, packet rate, antenna, and environment. Verified real-world range records for ELRS 900MHz at maximum power exceed 100km line-of-sight. For practical FPV with 2.4GHz at 500Hz, expect 2–8km reliable range, more than enough for any urban or suburban flight environment.
My ELRS receiver heats up — is this normal?
Mild warmth is normal, especially with higher transmit power settings. The SX128x transceiver chip does generate some heat. If the receiver is hot to the touch, reduce TX power or check that the 5V supply is clean and within spec (4.9–5.1V). Voltage above 5.2V can stress the receiver's regulator.
Can ELRS be used with DJI systems?
ELRS handles only the RC control link (sticks and switches). It is independent of the video system. You can run ELRS for RC control and DJI O3 or Goggles 2 for video simultaneously — they operate on different frequencies and don't interfere.
Was this guide helpful?
Related Articles
Crossfire vs ELRS: Which RC Link Should You Choose in 2026?
In-depth comparison of TBS Crossfire and ExpressLRS — range, latency, packet rates, hardware, cost, and which RC link is right for your build in 2026.
Drone Antenna Selection and Placement Guide
Everything you need to know about drone antennas — types, gain, polarization, frequency bands, and placement rules for FPV, RC links, and long-range builds.