ELRS Setup Guide: ExpressLRS Configuration for FPV Drones
Note: This guide contains affiliate links. If you purchase through our links, we may earn a commission at no extra cost to you. This helps support our testing and content creation.
Introduction
When I first switched my fleet from FrSky and Crossfire to ExpressLRS, I expected magic: lower latency, crazy range, and rock-solid control. I got all of that eventually--but only after a few very confusing evenings staring at a blinking receiver LED and wondering what I'd done wrong.
In this ELRS setup guide I'll walk you through the exact process I use today when setting up a fresh ELRS radio link on a new FPV build, from flashing your TX module and receiver to configuring Betaflight and testing link quality. I'll also point out the mistakes I actually made along the way--like flashing mismatched firmware and setting my binding phrase wrong--so you can avoid repeating them.
If you're still deciding between Crossfire and ELRS, I also have a detailed comparison here: Crossfire vs ELRS.
What You Need Before Starting
Before we touch firmware, let's make sure you have all the pieces ready. Skipping this checklist is how I ended up flashing the wrong target more than once.
1. ExpressLRS TX module or ELRS-ready radio
You'll need either a radio with internal ELRS (e.g. RadioMaster Zorro ELRS, Boxer ELRS, TX16S MKII ELRS) or an external ELRS module in the JR or Lite bay (e.g. Ranger, Ranger Micro, Happymodel ES24). Most people are on 2.4 GHz ELRS for racing and freestyle, with 900 MHz used more for extreme long range.
Example modules (affiliate):
If you're still shopping radios, check my picks here: Best FPV Controllers 2026.
2. ExpressLRS receiver
You'll need a receiver matched to your frequency band (2.4 or 900 MHz) and form factor (nano, diversity, PWM, etc.). Popular options include the Happymodel EP1/EP2, RadioMaster RP1/RP2/RP4 series, and FlyFive33-branded ELRS receivers.
Make sure the band (2.4 vs 900) matches your TX module. I once wired in a 900 MHz receiver assuming it was 2.4 GHz because the label was buried under heatshrink--nothing would bind until I finally checked the datasheet.
Example receiver (affiliate):
- Amazon: Happymodel EP1 ELRS Receiver
- GetFPV: Happymodel EP1 ELRS Receiver
3. Compatible radio and firmware
Your radio should be running EdgeTX or OpenTX with CRSF support for external modules. Internal ELRS radios usually expose ELRS directly in the Model setup. Make sure you know how to create a new model and you can select CRSF as the external module protocol (if using a JR/Lite module).
I once tried to debug "no signal" for 20 minutes before realizing the radio model still had the internal multi-protocol module enabled instead of the external CRSF module.
4. Computer, USB cables, and software
You'll need a computer (Windows, macOS, or Linux), USB-C or micro USB cable for your radio or TX module, and a USB cable for your flight controller.
Install the ExpressLRS Configurator from GitHub Releases and Betaflight Configurator from the official site. ExpressLRS Configurator is what builds and flashes the firmware for both TX module and receiver.
Step 1: Flashing Your TX Module
I always start by flashing the transmitter module or internal ELRS first. That way I know which exact version the receiver must match.
1. Install and open ExpressLRS Configurator
Install the latest ExpressLRS Configurator from the releases page. Open it and on the left pick the firmware version you want (usually the latest stable).
Early on, I flashed my TX to the newest major release and my receivers stayed on an older version. They technically "worked" but binding was flaky until I finally matched everything to the same major version.
2. Select device category and target
Under Device Category, choose your radio or module brand (e.g. RadioMaster 2.4 GHz TX, Happymodel 2.4 GHz TX). Under Device, pick the exact model (e.g. "Ranger Micro 2.4 GHz TX").
Double-check you're not picking a V1 target for a V2 module (or vice versa). I once soft-bricked a module by flashing the wrong hardware revision and had to recover it with a different flashing method.
3. Set firmware options and binding phrase
In the WiFi / Binding options section, set your Binding Phrase (more on why in the next section) and pick your Regulatory Domain (e.g. 2.4 GHz ISM, FCC 915, EU 868) according to your region's rules.
I like to keep my bind phrase short but unique--something like a callsign or nickname. The first time I set it, I accidentally added a trailing space when copy-pasting, so TX and RX didn't "match" even though the text looked identical. Now I always type it by hand on both builds.
Recommended to leave the rest of the settings at default for your first setup.
4. Connect TX module and flash
Connect your TX module or radio to the computer via USB. In ExpressLRS Configurator, pick the right Flashing method (usually "UART" or "USB"), select the correct COM port at the bottom, and click Build & Flash and wait for the green success bar.
If the process fails, it's often wrong COM port, wrong device target, or old drivers on Windows.
Once the TX module is flashed, unplug and reboot your radio.
Step 2: Flashing Your Receiver (via Betaflight, WiFi, or UART)
With the TX module on the version you want, it's time to bring your receiver up to the same version and bind phrase.
Option 1: Betaflight passthrough (most common)
This is my default for new builds because I'm already plugged into Betaflight anyway.
Wire the receiver to your flight controller (5 V, GND, RX, TX). Plug the flight controller into your computer via USB. Open ExpressLRS Configurator, select your Receiver device category and target. Make sure the firmware version and binding phrase exactly match your TX settings. Set Flashing method to Betaflight passthrough (names vary per receiver). Select the FC COM port and click Build & Flash.
I once spent half an hour wondering why Betaflight passthrough wouldn't work--Betaflight Configurator was still connected in the background. Close Betaflight completely before flashing via passthrough or the port will be locked.
Option 2: WiFi flashing
Many ELRS receivers can update over WiFi once they're already bound and working.
Typical flow: power the quad with a LiPo (props off!) and leave it unbound for ~60 seconds until the LED shows WiFi mode. Connect your computer to the receiver's WiFi access point or to your home WiFi if you previously saved SSID in the receiver. Visit http://elrs_rx.local in a browser to open the ExpressLRS Web UI. Upload a firmware file generated by Configurator and click Update.
This is great for small tweaks, but for first setup I usually prefer Betaflight passthrough so I can verify wiring and UARTs at the same time.
Option 3: Direct UART flashing (USB-to-serial)
Some receivers (or recovery situations) need a direct serial adapter. Connect USB-to-UART adapter to RX/TX pads on the receiver. Put the receiver in bootloader mode (boot button or boot pad). In ExpressLRS Configurator, pick UART flashing method, select the adapter's COM port, and flash.
I've only had to do this when I completely messed up a flash or when reviving old hardware.
After flashing: LED patterns
When the receiver is flashed and powered, fast blinking usually means bind mode or no link, and solid LED usually means it's linked to the TX.
If the LED never changes from fast blink after you power on the radio, it usually means firmware or bind phrase mismatch.
Step 3: Setting Your Binding Phrase
The binding phrase is one of the nicest quality-of-life features in ExpressLRS.
Why binding phrase > button binding
Traditionally, you'd power the receiver, hold a bind button, and put the radio in bind mode. In ELRS, both the TX module and receiver are flashed with the same binding phrase, which is hashed into unique UID bytes. As soon as both power up and see each other on the air, they silently bind--no button presses.
This means every new receiver you flash with your phrase auto-binds to your radio, no need to access tiny buttons buried inside a frame, and it's easier to manage multiple quads on one radio.
I remember building a slammed 5-inch where the ELRS receiver's bind button faced the stack with 1 mm of clearance. Every time I needed to bind, I had to remove four standoff screws. After switching that quad to a binding phrase, I never opened the stack again for radio reasons.
Where to set the binding phrase
You can set it in ExpressLRS Configurator before Build & Flash for both TX and RX, or in some cases via the Web UI for devices already flashed and online.
Just make sure the phrase is identical on TX and RX (case-sensitive, no extra spaces) and you keep a note of it somewhere safe.
Some Betaflight SPI-based ELRS receivers still use UID bytes set via CLI, but most modern UART receivers rely on the standard ELRS binding phrase workflow.
Step 4: Betaflight Configuration (UART, CRSF, Channel Map)
Now that TX and RX are on matching firmware and phrase, we tell Betaflight which UART to listen on and what protocol to use.
1. Assign the correct UART
Connect your quad to Betaflight Configurator. Go to the Ports tab. Find the UART where your receiver is wired and enable "Serial RX" on that UART, then Save & Reboot.
If you enable Serial RX on the wrong UART, the receiver will link to the radio but Betaflight will show no stick movement. I once dutifully rewired a receiver twice before I realized the FC silkscreen and the manual disagreed on which pads belonged to UART2.
2. Set receiver mode and protocol
In the Configuration tab, under Receiver, set Receiver Mode to Serial-based receiver (SBUS, CRSF, etc) and set Serial Receiver Provider to CRSF (ExpressLRS uses CRSF). Save and reboot.
3. Check channel map and endpoints
Go to the Receiver tab. Move your sticks and verify Roll, Pitch, Yaw, Throttle move properly. Default channel map is usually AETR; if your radio uses another map, change Betaflight's channel map to match.
I once had an entire afternoon of "my quad arms but freaks out instantly" because Aileron and Throttle were swapped. A quick look at the Receiver tab made it obvious: moving roll changed the throttle bar. For more on flight modes and how they interact with your channel setup, that guide covers the details.
4. Set up AUX channels for arming and modes
In the Modes tab, assign an AUX channel (e.g. AUX1) to ARM and add switches for ANGLE/HORIZON/ACRO if you want assisted modes.
For a new ELRS setup, I like to keep modes simple: one arm switch and one "oh-crap" angle mode switch.
Step 5: Testing Your Link (LQ, RSSI, Range Check)
Before you send a quad out over the trees, verify the link quality on the bench and in a short hover.
1. LQ vs RSSI in ExpressLRS
ExpressLRS exposes Link Quality (LQ), the percentage of valid packets received (the main indicator of control link health), and RSSI dBm, signal strength in decibels relative to 1 mW.
In ELRS, LQ is generally more useful than raw RSSI for most pilots, especially at higher packet rates.
2. Show LQ/RSSI in OSD or radio
To show link health, in Betaflight set the RSSI channel to AUX11 (LQ) or AUX12 (RSSI) as recommended by the ExpressLRS docs, then enable RSSI Value or Link Quality in the OSD. On some radios, you can also configure telemetry screens and alarms based on LQ/RSSI.
ExpressLRS recommends setting an LQ alarm around 60 to start--if you drop below that, it's time to turn back.
I used to ignore OSD LQ because "it always looks fine." The first time I flew behind a large building low to the ground, I watched LQ nosedive from 80s to the 40s in seconds and felt the quad twitch. Having that number in my goggles made it obvious I was asking for a failsafe.
3. Bench test
On the bench (props off!): power the quad, verify the receiver LED is solid, confirm sticks move correctly in Betaflight's Receiver tab, and wiggle all switches and note which AUX channels they map to.
If nothing moves, check Serial RX is on the correct UART, confirm Receiver Mode = Serial and Provider = CRSF, and ensure firmware versions and binding phrase match.
4. Short hover and range check
For the first flight, pick an open field. Do a short LOS hover, watching LQ/RSSI in the OSD. Walk away (or fly a very gentle circuit) and see how LQ behaves.
With typical 2.4 GHz ELRS at 250-500 Hz, you can fly very far before RSSI approaches the sensitivity limit; a good rule of thumb is to turn back when RSSI is roughly 10 dB above the receiver's sensitivity spec for a safety margin.
I once set my packet rate absurdly high just because it "sounded cool," then tried to fly through dense concrete around a parking garage. LQ hit the floor at what felt like arm's length. Dropping the update rate to a saner value immediately made the link feel more stable.
For a deeper look at how far you can safely go, check my FPV Drone Range Guide.
Recommended ELRS Settings by Use Case
ExpressLRS is insanely flexible, but that also means it's easy to over-optimize. Here's how I usually set things up.
| Use case | Band | Packet rate & modulation | Power (typical) | Notes |
|---|---|---|---|---|
| Racing | 2.4 GHz | 500 Hz LoRa or FLRC-based modes | 100 mW | Prioritize low latency; ensure antennas clear of frame. |
| Freestyle | 2.4 GHz | 250-500 Hz LoRa | 100-250 mW | Good balance of latency and penetration. |
| Long range | 2.4 or 900 | 50-150 Hz LoRa | 250-1000 mW | Lower packet rates dramatically increase range; mind legal limits. |
| Whoops/indoor | 2.4 GHz | 250-500 Hz, low power | 25-100 mW | Reflections help; don't cook your VTX in small spaces. |
Anecdotally, I've found 500 Hz LoRa at 100 mW on 2.4 GHz to be an excellent "set and forget" for most park freestyle, as long as your antennas are mounted clear of carbon and not zip-tied along the battery strap.
Troubleshooting Common ELRS Issues
I've run into almost every failure mode below. The good news: ELRS is very consistent, so once you know what each symptom usually means, fixing it is quick.
1. TX and RX won't bind (blinking LED forever)
Likely causes: firmware mismatch (major versions don't match), binding phrase mismatch (typo, capitalization, extra space), or wrong frequency band (2.4 TX vs 900 RX).
Fix: note the exact firmware version on your TX (via LUA script or Web UI), reflash the receiver with the same version and same binding phrase in Configurator, and confirm you picked the right frequency-band target for both devices.
One evening I flashed my TX to a bleeding-edge nightly build "just to try it," then forgot about it. Weeks later, I flashed a new receiver on the latest stable and nothing would bind until I realized my TX was on a different branch entirely.
2. Receiver LED solid, but no stick movement in Betaflight
This usually means the radio link is fine, but Betaflight isn't seeing it. Serial RX is disabled or enabled on wrong UART, Receiver Mode isn't set to Serial-based, or Serial Provider isn't set to CRSF.
Fix: recheck wiring vs FC manual. In Betaflight, enable Serial RX on the correct UART and set CRSF as the provider.
3. Quad arms but behaves erratically
Common culprits: wrong channel map (AETR vs TAER, etc.) or endpoints not calibrated (e.g. throttle not reaching 1000-2000 us range).
Fix: in the Receiver tab, confirm each stick controls the correct bar. Set your radio channel map or Betaflight channel map to match. Calibrate endpoints in the radio or adjust in Betaflight's Receiver tab.
I once flew a maiden where yaw and roll were swapped. The quad took off, I tried to level it, and it just rolled harder. After failsafing into grass, I learned to always do a quick "stick to axis" sanity check in Betaflight.
4. Good link nearby, but failsafes at modest distance
If LQ drops rapidly after a certain distance: packet rate might be too high for your environment and antenna orientation, antennas might be blocked by carbon or batteries, or output power may be too low for your use case.
Fix: try a lower packet rate (e.g. 250 Hz instead of 500/1000 Hz), reposition antennas vertically and clear of carbon plates, and increase TX power within legal limits.
5. WiFi mode never appears on receiver
If you can't get the receiver into WiFi mode: make sure it's not already bound to a TX (turn off the radio first), leave it powered for at least the "Auto WiFi on interval" (often ~60 s), and check the docs for your exact version's LED patterns.
I once kept power-cycling a quad every 20 seconds, expecting WiFi to appear, not realizing the timer resets with every power-cycle. Leaving it powered and walking away for a minute fixed it.
FAQ
Do I need the latest ExpressLRS version?
You don't always need the absolute newest build, but you do need matching versions across TX and RX. I typically use the latest stable release, not nightlies, and update both sides together.
Can I mix 2.4 GHz and 900 MHz on the same radio?
Yes, but not on the same model at the same time. You can have a 2.4 GHz internal ELRS radio and a 900 MHz external module, creating separate models for each band. Each model can use its own binding phrase and settings.
Is ExpressLRS better than Crossfire?
For most pilots, ELRS offers lower latency and better range per mW than Crossfire, with cheaper hardware options and very active development. Crossfire still has a strong ecosystem and excellent reliability. If you're not sure which suits you, read my Crossfire vs ELRS comparison.
What's the safest packet rate for beginners?
If you're new, I suggest 2.4 GHz, 250 or 500 Hz LoRa, at 100 mW power. This gives you great latency with healthy range and penetration for normal park flying.
Do I have to remove props when configuring?
Yes. ELRS receivers, Betaflight, and radios can misbehave or be misconfigured, and it's not unheard of for motors to spool unexpectedly during setup. Remove props for any bench work. If you're new to builds, the how to build your first FPV drone guide covers safe bench practices.
Can I reuse my binding phrase on multiple radios?
Technically yes, but then all radios can control all receivers with that phrase. I use one phrase per pilot to avoid conflicts at events or when flying with friends at races.
Will ELRS work on my whoops and tiny drones?
Absolutely. Many whoop AIO boards come with built-in SPI or UART ELRS receivers. Just pay attention to wiring, UART assignments, and heat buildup when powering whoops on the bench.
Final Tips
To wrap this ELRS setup guide up, here are the habits that keep my ELRS experience boring--in the best possible way.
Standardize your phrase and version. Pick one binding phrase and one firmware version across your fleet, and write them down.
Flash TX first, then RX. That way you always know what the receiver should match.
Validate in Betaflight before flying. Check UART, CRSF protocol, channel map, and AUX switches in the Receiver and Modes tabs.
Watch LQ in your OSD. Treat LQ dips as early warnings, especially behind obstacles or at long range.
Start conservative with settings. Use moderate packet rates and power until you understand how they affect range and latency.
Once you've got ELRS set up and stable on one build, cloning the configuration to more quads becomes almost boringly easy. If you're still choosing your next airframe, have a look at my Best FPV Drones 2026 and then repeat this same ELRS process on each new rig. And if you want to dive deeper into PID tuning or Blackbox analysis once your link is dialed, those guides pick up right where this one leaves off.