How to bind an ExpressLRS receiver (ELRS 4.1 and 3.6)
Quick answer
To bind an ELRS receiver, first make sure the radio's ELRS module and the receiver run the same major version (both 3.x or both 4.x). Then either give both the same binding phrase, or put the receiver in bind mode (3 quick power cycles, its bind button, or Betaflight) and press [Bind] in the ExpressLRS Lua script on your radio. A solid receiver LED means it worked. If it won't bind, go to the LED troubleshooting tree.
Contents
- Step 0: check both versions (the reason most binds fail)
- Before you start
- Which bind method works on which version
- Method 1: binding phrase (recommended)
- Method 2: bind mode
- Confirm the link
- ELRS receiver not binding? LED troubleshooting tree
- Changing a phrase or V3/V4 means reflashing: read this first
- Radio-specific notes
- After binding: next steps
- FAQ
- Sources and versions checked (October 13, 2026; release tags re-checked October 14, 2026)
Researched from the ExpressLRS docs and the ExpressLRS and Betaflight release notes; sources checked on the date shown above. We haven't bench-tested these steps. The diagrams are drawn from the documentation.
Versions covered
| Software | Version this guide follows | Released |
|---|---|---|
| ExpressLRS 4.x | 4.1.0 | Jul 17, 2026 github.com |
| ExpressLRS 3.x | 3.6.4 | Jun 8, 2026 github.com |
| Betaflight firmware | 2026.6.2 | Sep 16, 2026 github.com |
| Betaflight App | 2026.6.2 | Sep 16, 2026 github.com |
| Radio Lua | elrs.lua | single script since ELRS 4.0 github.com |
| Checked October 14, 2026. |
Scroll the table sideways for more columns.
This page is part of our ExpressLRS guides and covers the receiver side.
Step 0: check both versions (the reason most binds fail)
The first number of the version must match between TX module and receiver: "If your firmware versions are incompatible, NONE of the methods below will work." expresslrs.org
ExpressLRS 4.0.0 made this a hard line: "Not compatible with ExpressLRS 3.x.x, 2.x.x, or 1.x.x." github.com ExpressLRS 4.1.0 is "Compatible with all hardware running any ExpressLRS 4.x version" github.com.
The compatibility rule
| Radio / TX module | Receiver on 3.x (e.g. 3.6.4) | Receiver on 4.x (4.0.x / 4.1.0) |
|---|---|---|
| 3.x | Binds | Won't bind |
| 4.x | Won't bind | Binds |
Scroll the table sideways for more columns.
If the versions differ, change one side so the first numbers match. Our ExpressLRS 4 vs 3 guide explains which side to change and what breaks when you move to 4.x.
How to see the TX version and the receiver version
Radio / TX module: open the ExpressLRS Lua script (SYS → Tools → ExpressLRS on EdgeTX radios). The version line is "found near the bottom of the Lua Script" expresslrs.org.
UART receiver (a separate receiver wired to the flight controller):
- Radio off, receiver powered. With no link it starts WiFi; wait "at least 60s" for a rapid blink (green breathing on RGB) expresslrs.org.
- Join the hotspot ExpressLRS RX (password expresslrs) and open 10.0.0.1 expresslrs.org.
- On 4.x, the Web UI's Information tab shows the firmware version expresslrs.org. The docs don't say where a 3.x Web UI shows it; go by what was last flashed or the manufacturer's listing.
SPI receiver (built into the flight controller, common on whoops): the ELRS version comes from the Betaflight build.
Built-in SPI receivers on whoops: V3 by default in Betaflight 2026.6
For Betaflight 2026.6 and newer, follow Betaflight's 2026.6 release notes (checked October 13, 2026). They add "ExpressLRS V4 compatible protocol support for SPI-based receivers", then say betaflight.com:
- "ELRS V3 is the default protocol when flashing new firmware, and is not compatible with ELRS V4 transmitters."
- "V4 is enabled by setting ELRSV4 in the build flags in the firmware flasher, which would then be incompatible with ELRS V3 transmitters."
In practice:
- Radio on ELRS 3.x + whoop on a default 2026.6 build → versions match.
- Radio on ELRS 4.x + whoop on a default 2026.6 build → won't bind. Keep the radio on 3.x, or reflash the whoop with
ELRSV4. - Radio on ELRS 4.x + whoop on 2026.6 with
ELRSV4→ versions match. That build no longer binds to a 3.x radio.
The ExpressLRS binding page is older on this point. It still says "SPI-based Receivers on Betaflight 4.4.0 and newer will only sync or bind with ExpressLRS 3.x firmware" expresslrs.org. That page is dated October 4, 2024, before Betaflight 2026.6, and doesn't mention ELRSV4, so it still describes Betaflight versions before 2026.6. On "(official) Betaflight 4.3.1 and older", SPI receivers bind only with ELRS 2.x.
The docs don't say how to check whether a flashed board was built with ELRSV4. If you didn't flash it, assume the default (V3). Build-flag steps will be in our Betaflight update guide.
Before you start
- Props off. Whenever a battery is plugged into the quad on the bench (power cycling, Betaflight bind), take the props off.
- UART receivers: Serial RX on the receiver's UART (Ports tab), Receiver Mode Serial, provider CRSF expresslrs.org. Binding only needs power, but you need this to see sticks move. Full steps: Betaflight receiver setup for ELRS.
- SPI receivers: Receiver Mode set to SPI RX, with the provider set to EXPRESSLRS expresslrs.org.
- Radio Lua script: put
elrs.luain/SCRIPTS/TOOLS/on the radio's SD card. After moving to ELRS 4, the 4.0.0 notes say to "be sure to delete the existingelrsV3.luaandelrsV3.luac" so only one ExpressLRS tool shows up github.com. - Power for power cycling: the docs suggest a LiPo flight pack for this step expresslrs.org.
Still choosing a receiver? Our ELRS receivers explainer compares UART and SPI types. Manufacturer listings: RadioMaster ELRS receivers, BetaFPV receivers.
Which bind method works on which version
| Method | Minimum version (per ExpressLRS docs) | Where you trigger it |
|---|---|---|
| Binding phrase | Web UI: 3.0+; Configurator: at flash time | Both devices; SPI: Betaflight Receiver tab |
| 3x power cycle | All versions (before 3.4.0, only if the receiver has no binding phrase) | Receiver power |
| Bind button (1.5 s) or Boot pad to ground | Receiver 3.4.0+ | On the receiver |
Betaflight Bind Receiver button or bind_rx | Receiver 3.4.0+, flight controller on Betaflight 4.5.0+ | Betaflight Receiver tab or CLI |
| Bind phrase set from a Lua script on the radio | 4.1.0 | Radio (see Method 1) |
Scroll the table sideways for more columns.
The binding docs were written for 3.x; the 4.0.0 and 4.1.0 notes announce no changes to these methods github.com.
Method 1: binding phrase (recommended)
A binding phrase is turned into a UID. Devices with the same phrase "should connect and sync when powered up", so no bind step is needed expresslrs.org. The docs recommend a unique phrase of at least 8 alphanumeric characters, such as your pilot handle expresslrs.org.
Set it on the TX
- ExpressLRS Configurator: enter the phrase when you flash the TX module.
- Web UI (3.0+): start WiFi from the Lua script and enter it in the Binding tab (4.x) or Options tab (3.x). A blank field afterwards is normal: it "doesn't store the plain text Binding Phrase" expresslrs.org.
- From the radio (4.1.0): "You can now set a bindphrase on a transmitter or receiver directly from a Lua script." As of October 13, 2026, official steps for this tool aren't published, so use Configurator or the Web UI. Status: 4.1.0 release notes.
Set it on the RX
- UART receiver: same options as the TX: Configurator at flash time, or its Web UI.
- SPI receiver: per the ExpressLRS SPI page (written for Betaflight Configurator 10.9.0+), enter the phrase in the Betaflight Receiver tab, which saves it as UID bytes expresslrs.org. Betaflight hasn't documented where this field sits in the current App; if you can't find it, use Method 2.
Then power the radio and the quad. They should connect without a bind step.
Why a phrase is not a password
"The binding phrase is not for security, it is for anti-collision." expresslrs.org A unique phrase matters more than a "strong" one.
Method 2: bind mode
No reflashing or WiFi needed. Order matters: "RX first, TX second" expresslrs.org. Put the receiver in bind mode, then press Bind on the radio.
3x power cycle
- Props off. Radio off.
- Power the receiver (plug in the battery), wait for the LED to light, then cut power within 2 seconds.
- Do this 3 times, then leave it powered.
- A quick double blink means the receiver is in bind mode expresslrs.org.
Before 3.4.0, a receiver flashed with a binding phrase "WILL NOT initiate Manual Binding mode". From 3.4.0, it can enter bind mode with a bind UID set expresslrs.org.
Bind button (1.5 s) or Boot pad (3.4.0+)
Hold the receiver's button for 1.5 seconds, or short the Boot pad to ground on receivers with a pad instead of a button expresslrs.org. The LED shows two blinks, a pause, and repeats until bound.
From the Betaflight App: Bind Receiver or bind_rx
Both need receiver firmware 3.4.0+ and Betaflight 4.5.0 or newer (2026.6.2 qualifies) expresslrs.org.
- Props off. Connect the quad to the Betaflight App. Plug in a battery if USB doesn't power the receiver.
- Button: per the ExpressLRS docs (written for Configurator 10.10+), the Receiver tab has a Bind Receiver button. Betaflight's 2026.6 notes don't document it in the renamed App, so its label or position may differ betaflight.com.
- CLI fallback (same result): in the CLI tab, type
bind_rxand press Enter. - SPI receivers also have
set expresslrs_uid = 0, thensaveand reboot expresslrs.org.
Press [Bind] in the ExpressLRS Lua script
- On the radio: SYS → Tools → ExpressLRS.
- Select [Bind]. It "will only work on receivers that are already in Bind Mode" expresslrs.org.
- The receiver LED goes solid when bound expresslrs.org.
Bind persistence and "volatile bind"
The bind survives power-off until you start another bind; a reboot cancels bind mode and keeps the old bind expresslrs.org. The optional volatile bind setting (3.4.0+, Lua script) makes a bind "only valid while the receiver is powered up" expresslrs.org expresslrs.org. Leave it off unless you deliberately swap one receiver between radios.
Confirm the link
Check all three:
- Receiver LED solid (single-color LED) or solid single color (RGB) expresslrs.org.
- "C" at the top right of the Lua script (a dash means not connected). The docs also say to make sure Telem Ratio "is not set to Off" expresslrs.org.
- Betaflight Receiver tab bars move with the sticks (props off). In 2026.6, in failsafe "the Receiver tab shows a banner and tints the channel bars" betaflight.com. That banner doesn't mean the receiver is dead, so check the LED first.
If 1 and 2 pass but the bars don't move, the bind is fine and it's a Betaflight setup issue: see Betaflight receiver setup.
ELRS receiver not binding? LED troubleshooting tree
Read the receiver LED with the radio on and the ELRS module enabled.
Receiver LED: what it means and what to do
| Single-color LED | RGB LED | Meaning (ExpressLRS docs) | Do this |
|---|---|---|---|
| Slow blink 500 ms | Slow blink 500 ms | Waiting for the transmitter | Check versions (Step 0), the SPI ELRSV4 trap and packet rate (below), then bind again |
| Double blink, pause | Orange double blink, pause | Bind mode | Press [Bind] in the Lua script |
| Triple blink, pause | Orange triple blink, pause | Connected, model-match mismatch | See "Model Mismatch" |
| Solid on | Solid single color | Connected (single-color: or bootloader) | Solid with the radio off? See "Stuck in bootloader" |
| — | No light | Off or bootloader | Check power, then "Stuck in bootloader" |
| Medium blink 100 ms | Red flashing 100 ms | Radio chip not detected | Hardware fault: contact the seller |
| Fast blink 25 ms | Green heartbeat | WiFi / web update mode | Power cycle with the radio on |
| — | Rainbow fade | Starting up | Wait |
Scroll the table sideways for more columns.
On RGB receivers the solid color shows the packet rate; the color table is on the official LED status page (footer date July 29, 2024, so it predates the ELRS 4.x modes).
TX module LED
| TX module LED | Meaning (ExpressLRS docs) |
|---|---|
| One orange flash every second | No handset connection |
| Fading single color | No connection to receiver (color = packet rate) |
| Solid single color | Connected to receiver (color = packet rate) |
| Red flashing 100 ms | Radio chip not detected |
The orange flash means the module isn't talking to the radio. Fix that first (see "Loading..." below); no receiver bind can work until then.
Stuck in bootloader (or won't blink at all)
From the binding page's "Receiver LED doesn't Blink" checklist expresslrs.org:
- Boot button held by heat shrink, or damaged? Free it, or replace the receiver.
- Boot pad touching ground? Disconnect it.
- UART pulling it into bootloader. Disconnect the receiver's TX/RX wires and power up. If the LED now blinks slowly (500 ms), "you will need to move the receiver wiring to a different UART." No free UART: the docs suggest a 300 Ω to 1 kΩ pull-up resistor.
- DJI, Caddx Vista or O3 harness: remove the SBUS/DJI HDL wire.
Lua script stuck on "Loading..."
"Check that the ExpressLRS TX module is enabled - otherwise the script cannot be loaded." If it still won't load, the docs suggest raising the baud rate expresslrs.org. Pocket menus: Pocket setup guide. Two "ExpressLRS" entries in Tools after a 4.x update mean the old elrsV3.lua/.luac is still there; delete it.
Bound but "Model Mismatch"
The LED triple-blinks because the receiver's Model ID differs from the radio model's. With both powered and bound, toggle Model Match off and back on to reassign it expresslrs.org. With Match off, the radio connects to any bound receiver expresslrs.org.
Bound but sticks don't move in Betaflight
The link is fine; the problem is between receiver and flight controller:
- Serial RX on the wrong UART. Only one UART can be Serial RX in 2026.6 betaflight.com.
- Provider not CRSF, or
serialrx_inverted/serialrx_halfduplexnot off expresslrs.org. - Failsafe banner in the Receiver tab → no valid frames reaching the flight controller.
Full tree: Betaflight receiver troubleshooting. Failsafe: Betaflight failsafe with ELRS.
Packet rate the receiver doesn't support
- SPI receivers: the ExpressLRS SPI page says "You must use one of these packet rates with an SPI receiver: 50Hz, 150Hz, 250Hz, 500Hz" and lists D, F (F500, F1000) and Full Res modes as unsupported. The same page contradicts itself: it also says Betaflight 4.5.1+ supports F500/F1000 on SPI (F1000 not recommended on F411 boards) expresslrs.org. It doesn't cover 4.x-only modes or Betaflight 2026.6's V4 SPI option, and the 2026.6 notes list no rates. To bind a whoop, set 250 Hz or 500 Hz first: both are supported whichever line you trust.
- ELRS 4.1: "Receiver will now refuse to change modes if the TX requests it to switch to a mode that it does not support" (previously the link soft-locked) github.com. Pick a rate the receiver supports.
Modes explained: ELRS packet rates.
Changing a phrase or V3/V4 means reflashing: read this first
Removing a binding phrase from a pre-3.4.0 receiver, moving a receiver between 3.x and 4.x, or rebuilding Betaflight with ELRSV4 all mean flashing firmware.
Don't change your firmware's regulatory domain to get a bind. Run the domain that matches where you fly.
Radio-specific notes
The receiver-side steps are the same on any radio. Radio menus and module settings: RadioMaster Pocket ELRS setup (internal module: check its version in the Lua script first), RadioMaster Boxer setup, RadioMaster TX16S setup.
After binding: next steps
- Pick a packet rate that suits your receiver: ELRS packet rates explained.
- Set up the receiver in Betaflight and check channel order: Betaflight receiver setup for ELRS.
- Set up failsafe and check it with props off: Betaflight failsafe with ELRS.
FAQ
Why won't my ELRS receiver bind?
Usually the major versions differ (3.x vs 4.x). Next most common: an SPI whoop on a default Betaflight 2026.6 build with a 4.x radio, or an unsupported packet rate. Work through the LED tree.
Do I need a binding phrase?
No. Bind mode plus [Bind] in the Lua script works without one. A phrase saves rebinding if you flash your own gear or fly several quads.
Why did my whoop stop binding after I updated my radio to ELRS 4?
Per the Betaflight 2026.6 release notes, Betaflight 2026.6 builds SPI ELRS as V3 by default, and V3 "is not compatible with ELRS V4 transmitters". Rebuild with ELRSV4, or keep the radio on 3.x.
Sources and versions checked (October 13, 2026; release tags re-checked October 14, 2026)
This page is researched from official docs and release notes, not our own flights or bench tests. See How we research.
- Betaflight 2026.6 release notes (SPI ELRS V3 default,
ELRSV4, failsafe banner, single Serial RX; no date on the page): https://betaflight.com/docs/wiki/release/Betaflight-2026-6-Release-Notes - Betaflight firmware releases (2026.6.2, Sep 16, 2026): https://github.com/betaflight/betaflight/releases
- Betaflight App releases (2026.6.2, Sep 16, 2026): https://github.com/betaflight/betaflight-configurator/releases
- ExpressLRS docs: Binding (dated October 4, 2024; its SPI note predates Betaflight 2026.6), LED Status (footer date July 29, 2024), Lua script, Web UI, receiver updating, configuring the FC, SPI receivers: https://www.expresslrs.org/
- ExpressLRS 4.1.0 release notes (Jul 17, 2026): https://github.com/ExpressLRS/ExpressLRS/releases/tag/4.1.0
- ExpressLRS 4.0.0 release notes (Feb 6, 2026): https://github.com/ExpressLRS/ExpressLRS/releases/tag/4.0.0
- ExpressLRS releases list (3.6.4, Jun 8, 2026): https://github.com/ExpressLRS/ExpressLRS/releases