# ExpressLRS: the open source RC link that trades vendor lock-in for a configurator

> ExpressLRS is a GPL-3.0 LoRa radio control link for FPV and RC, built on SX127x and SX1280 radios with Espressif or STM32 processors. It delivers low latency and long range, but you flash firmware to both ends of the link and depend on a separate Configurator app to do it.

**ExpressLRS/ExpressLRS** — High Performance Open Source Radio Control Link

- Repository: https://github.com/ExpressLRS/ExpressLRS
- Stars: 5,361 · Forks: 1,532
- Language: C
- License: GPL-3.0
- Published: 2026-09-22 · Updated: 2026-09-22 · Language: en
- Canonical page: https://hysenlabs.com/projects/expresslrs-expresslrs

## What ExpressLRS solves, and who is actually flying it

The problem is the radio link between a transmitter and an aircraft. Proprietary links tie the module, the receiver and the firmware to one vendor, and their update cycles are not something a user controls. ExpressLRS replaces that with an open source link built on Semtech SX127x and SX1280 LoRa hardware paired with an Espressif or STM32 processor, as described in the README. The stated design goal is to be the best FPV racing link, using LoRa modulation and reduced packet size to get range and latency at the same time.

The audience is narrower than the phrase "radio control" suggests. This is for FPV pilots, racers and long-range flyers who are comfortable flashing firmware to a transmitter module and a receiver, and who pick hardware from a list of targets rather than from a shop shelf. The README says there are hundreds of different hardware targets from a wide range of manufacturers, and that the targets listed in the Configurator are the tested and supported hardware. If your board is not a target, you are on your own.

Two bands are supported with different trade-offs. The README states that 900 MHz supports a maximum of 200 Hz packet rate with higher penetration, while 2.4 GHz supports up to 1000 Hz on EdgeTX. That is the central decision a new user makes before anything else, and it is a hardware decision, not a software setting.

## How the link works: LoRa modulation, packet rate, and bind phrases

The mechanism is an over-the-air packet structure optimized around LoRa modulation. ExpressLRS does not use a conventional RC protocol framing; the README describes a highly optimized over-the-air packet structure that gives simultaneous range and latency advantages. The packet rate is the main tuning knob, expressed in Hz, and it spans 200 Hz on 900 MHz up to 1000 Hz on 2.4 GHz with EdgeTX.

On the receiver side, the firmware speaks several output protocols. The README lists CRSF, SBUS, SUMD, HoTT Telemetry, MAVLink and PWM. That list matters because it decides whether the receiver can talk to your flight controller directly or through a converter, and it is the first thing to check against your build.

Binding does not require a button sequence. The README describes Bind Phrases, which it presents as removing the need for button binding. Telemetry is exposed through Betaflight Lua compatibility, so the transmitter's Lua script can read link data. The README also lists VTX and VRX frequency adjustment from the Lua, including SmartAudio and Tramp support, plus OLED and TFT displays on the hardware side. Updates are done over WiFi, and the link can also present itself as a Bluetooth or WiFi sim joystick. Those last two features are the ones that surprise people: the same radio can be a game controller input.

## Installing ExpressLRS and getting a first link up

The README does not give install steps for the firmware itself. It points to the ExpressLRS Configurator, published as a separate repository, and says that the targets listed there are the tested and supported hardware. The project website at expresslrs.org carries the guides. So the first step is not a command line, it is a download.

The Configurator is distributed as releases from its own repository. The README links directly to that release page:

```bash
# from the README: the Configurator is found here
https://github.com/ExpressLRS/ExpressLRS-Configurator/releases/
```

Once the Configurator is installed, the workflow is to select your hardware target, build the firmware, and flash it. The README states that WiFi updates are supported, which is the path used for the receiver side in most setups. The README does not document the exact button or power sequence for entering WiFi mode, so follow the website guides rather than guessing.

For a first real use, the sequence the documentation implies is: pick a 2.4 GHz or 900 MHz target pair, flash the transmitter module and the receiver from the same Configurator session, then bind. Because Bind Phrases are supported, the README indicates you do not need to press a bind button. After binding, set the packet rate and confirm telemetry arrives in the Betaflight Lua script on the radio. If telemetry does not appear, the receiver protocol setting is the first thing to re-check against the README's list of CRSF, SBUS, SUMD, HoTT Telemetry, MAVLink and PWM.

## Where ExpressLRS is the wrong choice

The README is unusually direct about one limitation: the project does not manufacture any of the hardware, so it can only provide limited support for faulty hardware. If a board arrives dead, that is a conversation with the manufacturer, not with the project. Anyone who expects vendor warranty coverage bundled with the firmware should look elsewhere.

The second constraint is the target list. Support is defined by what the Configurator lists, and the README frames that as the tested and supported set. A cheap board that clones the radio chipset but is not a target will not be covered, and flashing the wrong target is a real failure mode in this ecosystem. The README does not document a rollback path if a flash goes wrong, so recovery depends on the hardware's own bootloader behaviour rather than on anything the project promises.

Third, the 900 MHz and 2.4 GHz split is a hard boundary, not a preference. If you need 1000 Hz packet rates, the README ties that to 2.4 GHz on EdgeTX. If you need penetration through obstacles, the README ties higher penetration to 900 MHz and caps it at 200 Hz. There is no configuration that gives you both. A pilot who wants maximum packet rate and maximum penetration from a single link has picked the wrong project for that requirement.

## How ExpressLRS differs from a vendor link such as FrSky

The practical alternative for most people asking this question is a vendor system such as FrSky, where the transmitter, the RF module and the receivers come from one company and the firmware updates ship through that company's own tooling. The difference is not primarily radio performance on paper. It is who owns the update path and who is accountable when something breaks.

With ExpressLRS, the firmware is GPL-3.0 and the configuration tool is a separate download from a separate repository. You choose a target, you flash it, and the community Discord and Facebook group are the support channel the README points to. With a vendor link, the receiver is matched to the transmitter by the manufacturer, binding is a documented procedure in the vendor's manual, and firmware updates arrive through the vendor's own application. You trade control and hardware choice for a single throat to choke.

There is a second difference that matters for builders. ExpressLRS supports a wide set of receiver output protocols, including CRSF, SBUS, SUMD, HoTT Telemetry, MAVLink and PWM, and the README lists VTX and VRX frequency control from the Lua with SmartAudio and Tramp support. That breadth is what lets the same link sit in a tiny whoop and in a long-range build. A vendor link typically supports the protocols its own ecosystem needs and no more.

## Maintenance, licence, and what an upgrade actually costs

The repository is not archived, and the last push was on 2026-09-10. The most recent release listed is 4.1.0 from 2026-07-17, preceded by 4.1.0-RC1 on 2026-07-03 and 4.0.1 on 2026-05-12. The project publishes release candidates before stable releases, which is a signal about how changes are staged: RC builds exist for people who want to test before a stable tag.

The upgrade cost is in the flashing, not in a package manager. There is no dependency to bump. To move to a new version you re-run the Configurator, rebuild for your target and flash both ends of the link. The README states that WiFi updates are supported, which reduces the friction on the receiver side. The README does not document an automatic update mechanism or a version compatibility matrix between transmitter and receiver firmware, so matching versions across both ends is something you manage yourself.

The licence is GPL-3.0, which is the licence file at the repository root. For a user flashing firmware to their own hardware, the practical effect is that the source is available and modifications must stay under the same terms if distributed. This is a summary of what the licence identifier means in context, not legal advice; if you plan to ship a product that includes this firmware, read the licence text yourself. The README also notes that the project accepts donations through Open Collective for infrastructure and test equipment, which is a fair description of how a project with no hardware revenue funds itself.

## Conclusion

Adopt ExpressLRS if you fly FPV or race quads and are willing to flash firmware on both the transmitter module and the receiver, using the ExpressLRS Configurator and a target from its release list. Do not adopt it if you want a vendor-supported, plug-and-play link with warranty support, because the README states the project does not manufacture any hardware and can only provide limited support for faulty hardware. Before buying, verify that your exact hardware appears as a target in the ExpressLRS Configurator releases, and check the hardware selection guide on the project website for the band and packet rate that matches your use.

## FAQ

### What does ExpressLRS mean?

ExpressLRS is the name of an open source radio control link for RC applications, built on Semtech SX127x and SX1280 LoRa hardware combined with an Espressif or STM32 processor. The README describes it as designed to be the best FPV racing link, using LoRa modulation and reduced packet size for range and latency.

### Is ELRS better than FrSky?

The README does not compare ExpressLRS to FrSky, so any claim about which is better is not supported by the project's own documentation. What the README does state is that ExpressLRS supports 900 MHz and 2.4 GHz links, with 2.4 GHz reaching 1000 Hz on EdgeTX, and that it is an open source link with a separate Configurator for setup.

### How do I connect to ExpressLRS WiFi?

The README lists WiFi updates as a feature, but it does not document the procedure for entering WiFi mode or connecting to it. The project website and its FAQ are the places the README points to for that level of detail.

### What is the range of ExpressLRS?

The README does not state a range figure in distance. It describes range qualitatively, saying the optimized over-the-air packet structure gives simultaneous range and latency advantages, and that 900 MHz offers higher penetration while 2.4 GHz reaches 1000 Hz on EdgeTX.

### What is the ExpressLRS Configurator?

The ExpressLRS Configurator is the separate application used to configure ExpressLRS hardware, distributed as releases from its own repository. The README states that the targets listed in the Configurator are the tested and supported hardware.

### What is an ExpressLRS receiver?

It is the aircraft-side half of the link, running ExpressLRS firmware on SX127x or SX1280 LoRa hardware with an Espressif or STM32 processor. The README lists its supported output protocols as CRSF, SBUS, SUMD, HoTT Telemetry, MAVLink and PWM.

## Sources

- [ExpressLRS/ExpressLRS on GitHub](https://github.com/ExpressLRS/ExpressLRS)
- [Issues](https://github.com/ExpressLRS/ExpressLRS/issues)
- [License: GPL-3.0](https://github.com/ExpressLRS/ExpressLRS/blob/master/LICENSE)
- [README](https://github.com/ExpressLRS/ExpressLRS/blob/master/README.md)
- [Releases](https://github.com/ExpressLRS/ExpressLRS/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/expresslrs-expresslrs
