A Complete Guide to Flashing and Setting Up ExpressLRS

A step-by-step guide to setting up ExpressLRS on your OpenTX/EdgeTX radio and Betaflight, including flashing the latest firmware.

by Oscar
setup expresslrs 2.4ghz tutorial

ExpressLRS is an open-source RC system that has gained popularity due to its affordability, ultra-low latency, and long-range capabilities. However, setting up ExpressLRS can be quite a daunting task for beginners. That’s why in this tutorial, we will guide you through the process of flashing and setting up ExpressLRS 2.4GHz transmitter module and receiver on OpenTX/EdgeTX radio and Betaflight.

Some of the links on this page are affiliate links. I receive a commission (at no extra cost to you) if you make a purchase after clicking on one of these affiliate links. This helps support the free content for the community on this website. Please read our Affiliate Link Policy for more information.

New to ExpressLRS? This article explains the advantages of ExpressLRS over other radio control systems and why I prefer to use 2.4GHz than 900MHz.

Table of Contents

ExpressLRS 2.4GHz Hardware Selection

All transmitters and receivers with ExpressLRS firmware are compatible regardless the brand.

Radios with Built-in ELRS

Getting a radio with ExpressLRS built-in means you can enjoy this great radio control link without the need for an additional module. It simplifies the setup process and reduces the cost of upgrading your radio system. Some radios with internal modules only go up to 150-250mW, while some may go up to 1W.

TX16S MKII Pocket Boxer
Radiomaster Tx16s Mark Ii Mkii Radio Transmitter Radiomaster Pocket Radio Transmitter Thumb Hold Fingers Ergonomics Radiomaster Boxer Radio Transmitter Front
Lite Radio 3 T20S T-Lite V2
Betafpv Literadio 3 Pro Radio Transmitter Jumper T20s Gemini Radio Transmitter Jumper T Lite V2 Radio Transmitter Hand Hold

Transmitter Module

If you have a radio without built-in ExpressLRS, you will need to purchase an ExpressLRS transmitter module in order to use the system. Your radio must have a compatible module bay to install this module to.

Betafpv Expresslrs Elrs Micro Tx Module Display Screen

Choosing a transmitter module might seem daunting due to the abundance of options available. However, most of them are based on the same open source design by ExpressLRS. The main differences lie in the build quality, features such as screen, maximum output power, and cooling. Opt for one of the reputable brand featured below.

The transmitter module fits into the external JR module bay. Smaller radios might have lite module bay, you will need to get the right size module.

Full Size Module (JR)
Happymodel ESTX24 Pro TX BetaFPV ELRS Micro TX Radiomaster Ranger
Happymodel Es24tx Pro 2.4ghz 1000mw 1w Expresslrs Elrs Micro Tx Module Betafpv Expresslrs Elrs Micro Tx Module Jr Bay Tx16s Radiomaster Expresslrs Tx Modules Ranger Tx16s Jr Bay Led Light Screen

Other full size module options:

Lite Module
BetaFPV Nano TX V2 Radiomaster Ranger Nano BetaFPV SuperG
Betafpv Nano Tx V2 Expresslrs Elrs Module Radio Transmitter Radiomaster Expresslrs Tx Modules Ranger Nano Betafpv Superg Nano Transmitter Module Expresslrs Gemini Radio Back Install

Other Lite module options:

TX Antenna Upgrades

Stock antennas often have lower gains as they are designed for general use, and their build quality is not always the best. To increase your range, consider upgrading to an aftermarket antenna with better quality and higher gain. With a wide range of sizes and shapes, you can find one that suits your needs and environment.

RadioMaster Moxon (6dB) Radiomaster Onmi (3.5dB)
Radiomaster Expresslrs Tx Modules Ranger Tx16s Bay Size Back Radiomaster Boxer Radio Transmitter Elrs T Style Antenna

HappyModel Moxon (4.2dB) Namimno Black Pearl Loop (2.8dB) BetaFPV Moxon (5.6dB)
Happymodel Moxon 2 4g Expresslrs Elrs Antenna Namimno Expresslrs Elrs 2 4ghz Flash Black Pearl Loop Antenna Black Betafpv Moxon Antenna Expresslrs Elrs
AliExpress BetaFPV
VAS Diamond (2.8dB) TrueRC True-MOX (2.1dB) Turbowing Fishbone (7.5dB)


All ExpressLRS receivers and transmitter modules are cross-compatible, regardless of brand, since they are based on the same open source design. The main differences are build quality, size, and WiFi support for firmware updates and configuration. Lastly, consider the type of antenna that comes with the receiver, as some have a built-in antenna which is more compact, while others come with a U.FL connector for an external antenna which normally provide better range.

When it comes to hardware, consider receivers with “PA” and “LNA” for better range performance. Look for receivers with “TCXO” as they offer a more stable link.

PA (Power Amplifier) and LNA (Low-Noise Amplifier) are components that improve the performance of the receiver. The PA provides a more solid telemetry link for long-range flying, while the LNA significantly increases the sensitivity of the receiver and gives you better range.

TCXO (Temperature Compensated Crystal Oscillator) is a type of oscillator that provides a far more stable frequency with a much wider temperature range. This is important because when components heat up or cool down, it can cause frequency shift in the oscillator, and if that frequency shift is outside of a certain margin, your receiver will lose connection with the transmitter. So, having a receiver with a TCXO will ensure optimal performance and reliability.

Radiomaster RP1 Radiomaster RP2 x
Radiomaster Rp1 Expresslrs Elrs Receiver External T Antenna Radiomaster Rp2 Expresslrs Elrs Receiver Ceramic Antenna x
BetaFPV Nano RX BetaFPV Lite RX Flywoo EL24E/P RX
Betafpv Expresslrs Nano Rx Close Up Elrs Lite Receiver Ceramic Flat Antenna Flywoo 2.4ghz Expresslrs Elrs El24e Rx Antenna
Happymodel EP1 Happymodel EP2 Happymodel PP

Diversity Receivers

Diversity offers better range and signal strength. There are two types of diversity receivers. “Antenna Diversity” uses a single radio chip connected to 2 antennas, while “True Diversity” uses 2 independent RF chips, each with its own antenna. True Diversity is more expensive than Antenna Diversity, but makes more effective use of the dual-antenna setups therefore provides better performance. True diversity receivers also support Gemini Mode. More info on Diversity Receivers.

BetaFPV SuperD Radiomaster RP4TD x
Betafpv Superd Expresslrs Elrs Diversity Receivers Rx Antennas Radiomaster Rp4td Diversity Expresslrs Elrs Receiver Rx x
Skystars ELRS Diversity MATEKSYS ELRS R24 D Diversity HM EP1 Dual
Skystars Elrs Diversity Expresslrs Receiver Rx x
AliExpress AliExpress

PWM Receivers for planes

Radiomaster ER5A/ER5C Radiomaster ER Series BetaFPV SuperP
Radiomaster Er5a Er5c Expresslrs Elrs Pwm Receivers Compare Radiomaster Expresslrs Pwm Receivers Er4 Er6 Er8 Er6g Er6gv Er8g Er8gv Betafpv Superp Expresslrs 14 Channel Pwm Receiver Servo Header Pin Connectors
Radiomaster (ER5C)
Radiomaster (ER5A)

Other receiver options:

RX Antenna Replacement

Is It Necessary to Update ExpressLRS Firmware?

You don’t have to but you should.

With each update, the open-source project provides bug fixes and performance enhancements, ensuring optimal functionality.

ELRS firmware version uses a three-part number system: A.B.C

  • A: major version number
  • B: minor version number
  • C: patch number

All releases with the same major version number are cross-compatible, but not with different major versions. For instance, 2.0 will work with 2.1, 2.2, 2.5 etc, but 2.x firmware won’t bind with 3.x.

Flash EdgeTX

Edgetx Tutorial Feature Image Oscarliang

If you have OpenTX on your radio, consider flashing EdgeTX. EdgeTX is a newer, more cutting-edge fork of OpenTX with frequent updates and many additional features. Plus, it offers specific benefits for use with ExpressLRS, such as 500Hz gimbal polling. Check out our guide for flashing EdgeTX to your radio.

If want to continue to use OpenTX, make sure you update to 2.3.12 or newer before attempting to flash ELRS firmware to your transmitter module (the new versions support CRSFShot which is essential for ELRS to work). Our step-by-step guide for flashing OpenTX can help you get started.

How to check whether you have OpenTX or EdgeTX on the radio? Press the “SYS” button, then press the PAGE button until you are on the last page “VERSION”, and you can see the firmware and version there.

Edgetx Firmware Version Sys Vers Number

Download ExpressLRS Configurator

ExpressLRS Configurator allows you to build, compile and flash firmware for the ExpressLRS receivers and transmitter module.

Download: https://github.com/ExpressLRS/ExpressLRS-Configurator/releases/latest

For Windows, click the link with this name: ExpressLRS-Configurator-Setup-X.X.X.exe

Your computer must be connected to the internet while using the Configurator.

Expresslrs Elrs Configurator V1.01 Flash Build Rx Firmware

Install LUA Script

A LUA script is a mini program on the radio. The ExpressLRS LUA script allows you to configure the system, such as changing radio link settings, activating binding mode, enabling WiFi etc.

EdgeTX normally comes with ExpressLRS LUA script and you don’t need to do anything. However when you update ExpressLRS, it’s a good idea to update the LUA script as well.

You can find and open the LUA script by pressing the SYS button, and select “ExpressLRS”.

Expresslrs Elrs Lua Script V2 Radio Tx16s Edgetx

If the LUA script is not there, you can download it in the ExpressLRS Configurator by selecting the latest release version and any target, and the “Download LUA Script” button will appear.

Expresslrs Elrs Configurator Download Lua Script V3 Before Flash

The downloaded file should have “.lua” file extension, put that file in this directory on your radio’s SD card: \SCRIPTS\TOOLS\

Expresslrs Download Lua Script V3 Sd Card Tool

Before proceeding, you have to get your radio talking to the ExpressLRS TX module (let it be internal module or external module). On your radio, go to Model setup, scroll down to “Internal RF” and select “CRSF” in Mode. If you have an external module, do this under “External RF” and leave Internal RF to OFF. No need to change any of the options.

If yours is a new radio and you’ve never setup a model profile before, I encourage you to take a look at how to make a model profile from scratch: https://oscarliang.com/create-new-model-profile-edgetx/

Create New Model Profile Edgetx 9 Internal External Rf

Identify Hardware and Firmware Version

There are many manufacturers making receivers and transmitter modules for ExpressLRS. You need to know the brand and model of the hardware in order to flash the correct firmware. Flashing the wrong firmware will fail the process, it might even brick your device.

The easiest way to check is by going to the WiFi webpage. Here’s how to do it.

Firstly, enable WiFi on your device by going to the ExpressLRS LUA script, select WiFi Connectivity.

Expresslrs Elrs Lua Script V2 Interface App

Then enable WiFi on the desired device.

Expresslrs Elrs Lua Script V2 Wifi

For receivers, you can also just wait 60 seconds without turning on your transmitter, and it will go into WiFi mode automatically.

On your laptop, you should see a WiFi network called ExpressLRS TX (or ExpressLRS RX). Connect to this network, the password is expresslrs.

Expresslrs Elrs Wifi Network

Open the browser, and type in the address bar, it will open up a website which will tell you which firmware target it’s using. You can also check the firmware version here.

Expresslrs Wifi Webpage Shows Device Target Firmware Version

If you previously setup the device to join your home WiFi network, then you won’t see this WiFi network. Instead, stay connected to your home WiFi, and enter http://elrs_rx.local/ or http://elrs_tx.local/ in the browser address bar.

Alternatively, for ELRS transmitter modules, you can also find the maker, model and firmware version in the LUA script (at the top and bottom of the page). For receivers, go to “Other Devices” in the LUA script, and click on the receiver, firmware version should be displayed there (only works since V3).

Expresslrs Bluetooth Joystick Lua Script Ble

Compile and Flash TX Firmware

You can flash the TX module using one of these methods:

  • WiFi

I found WiFi to be the easier and more reliable method, I will demonstrate how to do it here. You can also use USB which I will explain shortly later.

Building ELRS TX Firmware

Before flashing, you need to compile the firmware first using the ExpressLRS Configurator.

Expresslrs Elrs Configurator V3.0 Flash Build Tx Firmware

Under Releases, choose the latest firmware.

Under Device Target, select the brand, and device. In this example, I have the BetaFPV Micro 1W TX, so the Target Device selections would be:

  • Device Category: BetaFPV 2.4 GHz
  • Device: BetaFPV 2400 TX Micro 1000mW

Let me explain what some of the settings mean.

Regulatory Domains – depending on where you are, the second option “EU_CE” is for people in the EU, this is also known as LBT. Anywhere else you can select the first option “ISM”, also known as FCC.

What’s FCC and LBT and how does it affect performance?

FCC (Federal Communications Commission) and LBT (Listen Before Talk) are regulatory standards for radio systems. FCC is globally accepted, while LBT is specific to Europe and requires a radio to check for other transmissions before transmitting itself. While FCC generally allows for consistent power output, LBT may reduce output power due to its “listen” requirement, potentially affecting performance.

Binding Phrase – it’s like the key to your car, be creative and make a unique phrase, so people you fly with don’t accidentally use the same phrase and cause problems. Note that other people CAN control your drone if they use the same binding phrase.

Network => Auto WiFi On Interval: how many seconds it turns on WiFi mode if no radio link is established. Default is 60 but I personally prefer to set it to 20. If the receiver goes into WiFi mode you just need to unplug LiPo and plug in again.

Network => HOME_WIFI: See here for more detail.

The Configurator remembers your choices, so you don’t need to select them again the next time.

Flash TX Firmware via WiFI

Once you are happy with the firmware options, select WiFi under Flashing method.

Click the BUILD button (NOT Build and Flash) to compile the firmware. It can take a few mins depending on your internet speed.

When it’s done, a windows should pop up containing the firmware file, named “firmware.bin“.

Expresslrs Firmware Compile File

Plug in the TX module to your radio module bay and power on radio.

Betafpv Expresslrs Elrs Micro Tx Module Jr Bay Tx16s

On your radio, setup a new model profile, in Model Setup, under External RF, select CRSF in Mode. If your module is an internal module (i.e. built into the radio), then you need to select CRSF under Internal RF.

Open the LUA script by pressing the SYS button, under Tools, select ExpressLRS.

Expresslrs Elrs Lua Script V2 Radio Tx16s Edgetx

Select “WiFi Connectivity“.

Expresslrs Elrs Lua Script V2 Interface App

Select “Enable WiFi” and leave the radio powered on.

Expresslrs Elrs Lua Script V2 Wifi

Go to your computer’s WiFi, you should find a new network called “ExpressLRS TX Module“. The WiFi password is: expresslrs

Open browser and go to

Click “Choose File” and select “firmware.bin” generated from the ExpressLRS Configurator earlier.

Click Update. That’s it!

Flash TX Firmware via UART/USB

You can use the USB port on the TX module to flash firmware.

You might need to install CP210x Driver (Download: https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers). I tried standard windows driver as it comes with an installer, version 6.7.6 seems to work fine.

This process will work for almost any ExpressLRS transmit module. On some newer modules, you can just plug in the USB cable and it will flash straight away. However some older modules have dip switches, you need to put them in the right position in order to flash. Consult the manual if you see those switches. For example the BetaFPV Micro TX module has those dip switches.

Betafpv Elrs Micro Tx Module 1w Edition Dip Switch

Plug in the USB cable to the TX module, a new COM port should appear on your computer.

In the ExpressLRS Configurator, under Flashing method, select UART. When you are ready, click the BUILD and FLASH button (not Build). The flashing will take a few minutes.

Connect ELRS Receiver to FC

Here’s the pin-out of the PP, EP1 and EP2 receivers.

Connect TX and RX pins to any spare UART on your flight controller. DO NOT use soft-serial because it’s too slow.

Connect TX to RX, and RX to TX.

Here’s the pinout for the BetaFPV ELRS Nano RX.

Betafpv Expresslrs Nano Rx Close Up

Build and Flash RX Firmware

For receivers with WiFi built-in, you can flash firmware via WiFi, just like flashing the TX. But personally I found using Betaflight Passthrough easier for flashing RX, and I will demonstrate it here.

Open ExpressLRS Configurator, select the same firmware version as your TX module and choose the device target based on the brand and receiver type. For example:

  • For PP receiver, the Device is: HappyModel PP 2400 RX
  • For EP1 and EP2 receivers, the Device is: HappyModel EP 2400 RX

Make sure to set the binding phrase as your TX, your RX will just bind with the TX automatically after flashing firmware. If you don’t set a binding phrase, you can bind it manually as described here.

Expresslrs Elrs Configurator V2.5 Flash Build Rx Firmware

Flash RX Firmware via Betaflight Passthrough

Before proceeding, make sure to configure Betaflight first as described in this section.

Now connect the USB cable to your quad to power the FC and RX.

In ExpressLRS Configurator, choose the COM port of the FC (if not sure, check the COM port in Betaflight Configurator, but remember to disconnect/close it afterwards).

Hit BUILD & FLASH. It will take a few minutes.

Flash RX Firmware via WiFi

Basically the steps are the same as flashing the TX module via WiFi. Some receivers don’t have WiFi capability, so make sure you check before proceeding.

In the ExpressLRS Configurator, hit the BUILD button to compile the firmware.bin file.

By default, if you power the receiver without turning on the radio, after 60 seconds it will enter WiFi mode (LED will be flashing rapidly to indicate that). The RX’s WiFi signal is fairly weak so place the RX close to the WiFi antenna to your computer.

Connect to the WiFi network “ExpressLRS RX“. The WiFi password is: expresslrs

Go to in your browser, and upload the firmware file.

Flash RX Firmware via UART

In the rare event, if neither of the above methods work, you can try UART flashing as described here.

Flashing RX via FDTI

If for whatever reason you bricked your RX, which could happen if you lost power or connection during flashing, you can bring it back by flashing via FDTI: https://www.expresslrs.org/2.0/quick-start/receivers/hmep2400/#flashing-via-ftdi.

Flashing SPI ExpressLRS Receiver

Some whoop flight controllers have ELRS receiver integrated on the same board, and it normally uses SPI connection instead of an UART connection. A good example would be the Happymodel X12 AIO 5in1 FC in the Mobula7 ELRS Edition.

Happymodel Mobula7 1s Bnf Tiny Whoop Flight Controller Happymodel X12 Aio Fc 12a Esc

The good thing is that you don’t need to worry about wiring as the receiver is just part of the flight controller.

But flashing the receiver is a bit tricky. In order to update the RX firmware, you have to flash the latest Betaflight firmware, because ExpressLRS firmware is embedded in the Betaflight firmware for that flight controller. All the build options (such as domain, switch mode etc) are in Betaflight CLI (type “get expresslrs” will list them all).

To check if you have a SPI ELRS receiver, simply go to Betaflight Configurator, Receiver tab, and see if it’s set to SPI RX / ExpressLRS.

Betaflight Configurator Receiver Spi Expresslrs

Binding Receiver

There’s no bind button on ELRS receivers (if there’s a button, it’s the boot button). There are 3 ways to bind your receivers to a transmitter as explained in this tutorial: https://oscarliang.com/bind-expresslrs-receivers/

ExpressLRS transmitter and receiver can be bound using bind phrase, which you can set when compiling the firmware for your devices, or you can enter this in the Web UI. Both receiver and transmitter must have the same binding phrase to work.

When the receiver first powers up, it looks for the transmitter with the matching binding phrase. Once the connection is established it will get synced up, and another device won’t be able to connect to it.

However if someone else uses the same bind phrase on their radio and has a stronger signal than you, it’s possible your receiver will bind to theirs first, and they can take control of your quad. This would be an extremely rare scenario and even if someone wants to do this on purpose it would be very hard to pull off, still, it’s best if you keep your bind phrase a secret and as unique as possible.

You can also bind a transmitter and receiver manually by putting them in Bind Mode. But this will only work if the receiver doesn’t have a bind phrase set.

Receiver LED Status Indicator

Monochrome LED meaning:

  • Solid LED means bind successfully or connection established
  • Double-flash means it’s in bind mode
  • Flash slowly means waiting for TX module connection
  • Flash fast means it’s in WIFI hotspot mode, you can connect to the RX’s WiFi network to upgrade RX firmware by visiting in your browser (password: expresslrs)
  • Triple blink then pause – Model Mismatch (make sure Model Match is either disabled on both TX/RX, or the ID are the same at both ends)

Color RGB LED meaning:

  • Rainbow fade effect: Starting up
  • Green heartbeat: Web update mode enabled
  • Slow blink: Waiting for connection from transmitter
  • Red rapid flashing: Radio chip not detected
  • Orange double blink then pause: Binding mode enabled
  • Orange triple blink then pause: Connected to transmitter, but mismatched model-match configuration
  • Solid single color: Connected to a transmitter, color indicates packet rate and mode

Betaflight Setup for ExpressLRS Receiver

To setup ExpressLRS RX’s:

Go to the “Ports” tab in the Betaflight configurator, and enable “Serial RX” for the UART you’ve connected the ELRS receiver to. Press “Save”.

In the Receiver tab, under the “Receiver” Section, select “Serial (via UART)“ as the Receiver Mode, and select “CRSF” in Serial Receiver Provider. Enable “Telemetry”, and click the “Save” button.

Setup Betaflight Receiver Mode Provider Telemetry

Your RX should be working now.

To verify, go back to the “Receiver” tab, you should see response from stick movement. If the channels are in the wrong order, just try a different “Channel Map”.

Check if the end points (1000 or lightly lower / 2000 or lightly higher) and mid points (1500) are correct, see this guide on how to adjust if they aren’t correct.

To make sure Telemetry is working, go to the Telemetry page in the radio, and select the option “Delete all sensors“, then “Discover new sensors”.

Asterisk flashing means telemetry is updating.

expresslrs telemetry opentx

In the Modes tab, you MUST set AUX 1 as your arm switch (AUX1 is always a 2-position switch, designed specifically for arming in ExpressLRS).

Display LQ and RSSI in OSD

Further Reading: What are LQ and RSSI?

In a nutshell:

  • RSSI – Signal strength, how loud the signal is (value from -130dBm to 0dBm)
  • LQ – Link Quality, how well your receiver can understand the signal (value from 100% to 0%)

Both indicators are useful, but if you have to pick one, LQ is probably more important.

To display LQ properly you should use the latest version of Betaflight (4.2 or newer), where they introduced a new RFMD:LQ% format for the LQ OSD element.

  • In the Receiver tab, Disable RSSI_ADC, set RSSI Channel to Disable
  • In the OSD tab, enable Link Quality and RSSI in dBm

It’s useful to have both measurements. For example:

  • High LQ, high RSSI = healthy radio link
  • Low LQ, high RSSI = noisy RF environment
  • High LQ, low RSSI = If you are very far away, caution is needed as you are approaching the end of range; If the receiver is very close to the transmitter, that can be an indicator of antenna problem
  • Low LQ, low RSSI = the end of range, you should turn back as failsafe is likely to happen

Antenna Mounting

My recommendation is to mount your RX antenna vertically if possible. You can also mount it horizontally if you only fly short range. See this post for more detail.

Setup Failsafe

Digital RC protocols typically contains a failsafe flag in the data packet that the flight controller can detect automatically, so there’s no need for manual setup on the radio. However, it’s crucial to review the Failsafe tab in Betaflight and determine what action the drone should take in the event of a failsafe.

To ensure failsafe is working properly, conduct a bench test. Remove all propellers, plug in the battery, arm the quad, and turn off the radio. The default failsafe settings in Betaflight should stop all motors from spinning within a couple of seconds. Be prepared to unplug the battery in case of any issues.

ELRS LUA Script Settings

There are 3 main settings you should know in ExpressLRS Lua script: Packet Rate, Telem Ratio (telemetry ratio) and TX Power. Note: when the arm switch is engaged, some of the settings cannot be changed.

Expresslrs Elrs Lua Script V2 Interface App

Best Settings

Obviously this is not going to work for everyone, but majority of the people who fly freestyle should find this settings a good starting point.

  • Telemetry Ratio – Standard.
  • Switch Mode – Wide.
  • Packet Rates – 250Hz is a good balance between latency and range. For pure long range I’d probably go with 150Hz or even 50Hz to prioritize signal strength over latency.

TX Power

Available options are: 25mW, 50mW, 100mW, 250mW, 500mW and 1W. Note that with EU LBT firmware, the RF power is limited to 100mW.

Some modules only support up to 250mW, while some are capable of up to 1W. Tests have shown that just 2.4GHz at 100mW can achieve 33km range, which can easily outperform most 5.8GHz video links, so you don’t always have to use the highest power available. Not to mention higher power consumption can significantly reduce radio battery life, and increase the risk of overheating without proper cooling. With RF power higher than 250mW, turning on the fan is recommended, so this by setting fan threshold to 250mW.

By enabling the option Dynamic Power, it allows the system to automatically adjust output power based on signal strength. Dynamic Power uses SNR (signal to noise ratio) instead of RSSI to determine power as RSSI doesn’t factor in the noise floor or if the receiver has an amplifier. This can potentially save battery life as it will lower the power when the receiver is close by, it only increases power when it’s needed. If you have Dynamic Power on, MAX Power will be the upper limit.

The appropriate power level for your FPV drone depends on the desired packet rate and range. Running ExpressLRS at 50Hz can provide extraordinary range, even at 100mW. However, if you plan to use a higher packet rate, like 500Hz, your range will be significantly reduced, and you may need more output power to maintain the same range. Familiarize yourself with dB and you can perform calculations using receiver sensitivity and output power to determine the range difference between various packet rates and power levels, this will help you make a decision. 250mW should be enough for most people flying within a couple of miles of range even at 500Hz, but of course higher power will give you better signal penetration too, not just range. Regardless the power, if you want the most reliable link or want to fly long range, it’s generally advisable to stick to a lower packet rate such as 50Hz as it offers higher signal sensitivity.

Packet Rate

Packet rate is the number of data packets transmitted per second. It’s a tradeoff between range and latency, you just can’t have both. Higher packet rate has lower latency, but less range.

In ELRS V3, the packet rate modes available are:

  • 500Hz, 250Hz, 150Hz, 50Hz – These are the normal modes, using LoRa modulation which has longer range and better resistance to RF interference.
  • F1000, F500 – These are F modes, or FLRC, they offer faster modulation and lower latency, but shorter range than the normal modes. It supports 500Hz and 1000Hz. Great for racers. The F1000 mode has the lowest latency. It’s not about “feel”, I doubt most people can even tell the difference between 150Hz and 500Hz, but sending your command even just 1ms faster means you could react 1ms sooner which is crucial when reacting to critical situations like racing and might help you to avoid a crash.
  • D500, D250 – These are D mode, or DVDA (Deja Vu Diversity Aid), provides better link connection in complex interference environment by sending the same data packet multiple times to reduce the chance of data loss. D500 and D250 indicate that the same data packet is sent twice and four times respectively. D mode keeps your LQ high and prevent chance of jitter at the cost of slightly higher latency. Great for racing. It works at the FLRC mode (F1000) therefore range will be less than normal mode
  • 333Hz Full, 100Hz Full – up to 16 full resolution (10-bit) channels in 100Hz and 333Hz packet rates. These are suitable for fixed wings.

FLRC at 1000Hz is the best mode for racing, since it has the lowest latency. LoRa modes (normal mode) have the best range. Slower update rates have higher latency, but longer range. FLRC D modes have reduced jitter, but higher latency than FLRC F modes. Note that 500Hz or higher update rates are not available in some radios, for example the Tango 2 only supports up to 250Hz.

Telem Ratio

What’s telemetry?

Telemetry is a feature commonly available in radio links. It allows the receiver to send data back to the radio, such as battery voltage, signal link quality, RSSI, GPS coordinates and so on.

Telemetry is enabled by default in ExpressLRS, it sends radio link related data like RSSI and LQ back to the radio. If you intent to use Telemetry to send info about your drone back to the transmitter, such as battery voltage, you have to enable “Telemetry” feature in Betaflight’s Receive tab.

Telemetry Ratio in ExpressLRS settings is how often telemetry data get sent. A larger number means slower telemetry update, e.g. 1:8 means telemetry data is sent every 8 frames, while 1:128 is every 128 frames (e.g. 1:8 is more frequent update than 1:128). Note that when adjusting packet rate it also have an impact on how often you get telemetry updates, the good news is ExpressLRS allows you to set it to “Standard”, which changes the ratio for you when adjusting packet rates. The standard option should work in most cases.

More frequent telemetry updates will increase latency to the control link, so you can choose to lower telemetry rate or even disable it entirely in the LUA script if you want the most consistent control link (some hardcore racers might want to do this). But I recommend having telemetry if you fly long range.

If you get “Telemetry lost” warnings while your link quality is still looking good, it could be that your telemetry ratio is set too low. Try increasing Telem Ratio one step at a time until the “Telemetry Lost” warning stops.


How many channels does ELRS support? 9 to16 channels depending on packet rate and switch mode.

For examples:

  • At 500Hz or 1000Hz, in Hybrid or Wide switch mode, you get 12 channels.
  • At 100Hz or 333Hz, in Full Res 16CH, you get 16 channels.

The first 4 channels are for your sticks – roll, pitch, throttle and yaw. These channels are 10-bit full resolution and their commands are sent every transmission.

The rest of the channels are AUX channels, typically used for switches on a radio.

The resolution the channels are determined by the option called “Switch Mode”. Higher resolution channels result in higher latency.

The first AUX channel, AUX1 (channel 5) is designed to be used for the arming switch, and it’s always a 2-position channel (when OFF it sends 1000, when ON it sends 2000) regardless switch mode (with the exception of Full Res 16ch Rate/2).

Switch Mode

Channel 1 to 4 are the control channels (roll, pitch, throttle and yaw) and are always 10-bit full resolution. But for the rest of the channels (AUX1-AUX8), these are normally used for switches and their resolution depends on your requirements.

The Switch Mode setting controls how the channels AUX1-AUX8 (channel 5 to 12) are sent to the receiver, there are two options: Hybrid and Wide.

With Hybrid switch mode, the AUX channels will only be 2- or 3-position, this is ideal for less latency. Wide switch mode makes your channels 64 or 128 position which offers more than enough resolution for most things we want to do.

For FPV drones, I generally recommend to use Wide switch mode.

One thing to note about wide switch mode is that it sends transmit power so it can be displayed on your OSD. This is useful if you are using dynamic power. With hybrid channels, power level is not sent.

Gemini Mode (Antenna Mode)

Starting with ExpressLRS 3.3, a new antenna mode known as “Gemini” has been introduced. This mode is designed to enhance the stability of data transmission and reception by simultaneously using two different antennas and frequencies to transmit and receive a single packet of data.

Learn more about how Gemini mode work in this article: https://oscarliang.com/expresslrs-gemini/

However, it’s important to note that using Gemini mode may lead to increased battery consumption in the radio.

You need both transmitter and a receiver that are compatible with Gemini mode. Additionally, ensure that both devices are updated to ExpressLRS version 3.3 or later. To activate Gemini mode, follow these steps:

  1. Start the ExpressLRS Lua script on your radio.
  2. Set the “Antenna Mode” to “Gemini”.
  3. Select the receiver you are binding with from the “Other Device” menu.
  4. Set the “Rx Mode” to “Gemini”.

If your receiver doesn’t support Gemini mode, make sure to switch to Ant1/Ant2 modes to avoid interference.

The first transmitter module that supports Gemini is the BetaFPV SuperG Nano Transmitter Module: https://oscarliang.com/betafpv-superg-nano-transmitter-module/

Antenna Mode Options

Transmitter Antenna Mode Description
ANT1/ANT2 Utilizes only one of the two antennas for communication.
Switch Alternates communication between two antennas.
Gemini Activates Gemini mode for simultaneous use of two antennas on different frequencies.

Additional Receiver Settings

There are more settings when you connect to the receiver via WiFi (on the page where you flash RX firmware).

Radiomaster Er5a Er5c Expresslrs Elrs Pwm Receivers Wifi Flash Firmware Options Settings

First, power on the receiver and wait until it goes into WiFi hotspot mode. It does it automatically after being powered for 60 seconds by default (LED flashing rapidly when it’s in WiFi mode). Or you can also force the receiver to go into WiFi mode in the radio’s LUA script.

Now, connect to the WiFi network (the WiFi password is: expresslrs). In your browser, go to

On this page, scroll down and you will find the additional settings like Model Match. For PWM receivers, you will also have settings like PWM Output and Failsafe Positions for each channel, and the option to invert the channel outputs. These setting are not yet available in the LUA script.

Performance Enhancement Settings

In Betaflight, you should apply the suitable RC_Link preset for the particular packat rate you are using. Failure to do so will result in problems with feedforward.

See my Betaflight Tuning guide for more info.

Adding Home WiFi Network

It makes it much easier to flash firmware when you setup “Home WiFi Network” in ExpressLRS. When you put your ELRS transmitter module or receiver in WiFi mode, it will connect automatically to your home WiFi network, then you would be able to flash firmware on a browser from your computer. Easy!

To set it up, you first need to flash your TX module and RX with “HOME_WIFI_SSID” and “HOME_WIFI_PASSWORD”. These are your home WiFi network name and password. Even if you are already on the latest firmware, you have to re-flash to let your transmitter module and receiver know your network login for this to work.

Expresslrs Elrs Configurator V2.5 Home Wifi Network Ssid Password

Once that’s done, you can turn on WiFi mode. You can do this in the LUA script.

Expresslrs Elrs Lua Script V2 Wifi

Open ExpressLRS Configurator, and it will automatically detect your ELRS device. Click on DNS (elrs_tx.local or elrs_rx.local), or the IP address (192.168.0.XXX), if it doesn’t work just try the other, one of them should work.

This will bring you to the page to upload the firmware, same as flashing using the WiFi method we covered before.

Expresslrs Elrs Configurator V2.5 Home Wifi Network Dns Ip

How to Use Model Match

What’s Model Match?

Model Match is a number you can assign to a receiver, this allows you to use a model profile on the radio to only control a particular receiver.

If you normally use one model profile to control all of your models (because they are all using the same type of radio receiver and setup the same way) instead of having individual profile for each model, you probably don’t want to use “model match”. But model match is useful for models the requires trims, for example for planes and wings.

To use model match in ExpressLRS, go to Model Setup on your radio, scroll down to Internal RF (or External RF if you are using an external ELRS module). In Receiver, set it to a unique Model ID (any number between 0 and 63, in this example, I will use 2).

Expresslrs Model Match Radio Model Setup Receiver Id Internal External Rf

Put your receiver in WiFi mode, go to the webpage configuration, Model, and enable Model Match. Set Model ID to the same number you entered in Model Setup on your radio.

Expresslrs Model Match Webpage Configure Receiver Enable Id Save

Go to ExpressLRS LUA script, and enable Model Match.

Expresslrs Model Match Receiver Lua Script On

Now your receiver can only talk to this particular model profile with Receiver ID 2. That’s it.

SPI Receiver

If you have a SPI receiver, or a receiver that doesn’t have WiFi capability, you can set Model ID in CLI. You can’t set the ID by just rebinding while model match is on, so i had to go to betaflight CLI and enter:

get expresslrs_model_id

to show me its ID and i had to:

set expresslrs_model_id = "your ID number"

How to Output SBUS

ExpressLRS receivers by default output CRSF signal, which requires 2 wire connections (TX and RX). However you could configure your receiver to output SBUS which only needs 1 wire, follow tutorial here: https://oscarliang.com/how-to-output-sbus-from-an-expresslrs-receiver/

SBUS is an old and slow protocol and doesn’t support telemetry, therefore I wouldn’t recommend it unless it’s the only protocol you can use with your flight controller.

Initialization Rate

When you switch on the receiver, there may be a delay of a few seconds while the receiver tries different packet rates until a match is found with the transmitter. The delay will depend on the packet rate – the slower the rate, the bigger the delay.

If you always transmit at the same packet rate, you can reduce the delay by doing this: Open LUA script, select Other Devices, select your receiver and set Initialization Rate to the rate you always use. After that, connection will be virtually instant when you power on the transmitter and receiver.

EdgeTX Telemetry Low/Critical Alarms

EdgeTX and OpenTX use link quality (RQly telemetry) instead of RSSI for the low/critical alerts. Recommended thresholds are 50% for low alarms and 20% for critical alarms. You can enter these values in the Telemetry page of your radio.

Configurations For Fixed Wings

These settings would be ideal for fixed wings without a flight controller or stablizer (if the receiver is connected directly to servos and ESC).

Using Full Modes

In Packet Rate, use either 100Hz Full or 333Hz Full.

These modes provide full 10-bit resolution (1024 positions) for all channels which is crucial for precise control if you want to drive servos and ESC directly from a PWM receiver. Between 100Hz and 333Hz full modes, there is a trade off between range and latency. 100Hz is better for range while 333Hz is better for latency.

Then you also want to decide which switch mode you want to use, the options are:

  • 8 Channel (1 to 4 and 6 to 9 are sent 10bit full rate).
  • 16 Channel (all channels sent 10 bit but half rate).
  • 12 Channel mixed (1 to 4 are 10 bit full rate, 6 to 13 are 10bit but half rate).

For most fixed-wing models, 333Hz Full with 8-channel switch mode offers an ideal balance, ensuring each channel is updated with each transmission for the lowest latency and highest resolution. The 16-channel option might be tempting but it does introduce more delay as channels are sent alternately (half rate).

Note: All of the switch modes use CH5 for arming, which has only two positions. Channel 5 must be high for the system to transition from standby to active mode. This requirement can be seamlessly integrated into fixed-wing configurations by using a throttle cut switch to control both the throttle and Channel 5’s state. This approach not only simplifies setup but also ensures your model is ready to fly when you are, without wasting a channel on the receiver. I have a tutorial on how to setup a throttle cut switch here: https://oscarliang.com/setup-arm-switch-for-wing-no-fc/

Remap PWM Receiver Outputs

Modern PWM receivers offer the flexibility to remap output channels. Given the current requirement of keeping Channel 5 high during flight, it’s practical to remove Channel 5 from the output mapping in a fixed wing without an FC, ensuring no output is wasted.

Setup Failsafe

You can setup failsafe in the WebUI by assigning a predefined value to each channel when the radio link is lost. It’s important to ensure the throttle is set to low in failsafe so your model will glide to a safe landing.

Check If Your Setup is Working Properly

Do the following to verify your radio link is working properly:

  • Set your ExpressLRS module to the lowest power level using LUA script (any packet rate).
  • Place your radio 1m away from the receiver and power them up. Make sure the receiver and TX module antennas are oriented in the same way.
  • Take note of the RSSI dBm value on your OSD, or the 1RSS telemetry data on the Telemetry Page of your radio.

RSSI dBm value is a negative value, a larger negative RSSI = weaker the signal.

On 900MHz hardware, a value of around -20dBm is a good indication that your hardware is working well. On 2.4GHz hardware, that number should be around -40dBm up to -25dBm.

If you are getting much lower numbers, check the following:

  • The antenna on your radio (or ExpressLRS TX module) could be loose.
  • The antenna pigtail inside the radio may be damaged or not connected properly to the module’s mainboard, inspect closely by opening the radio.
  • With receivers using SMD ceramic antennas, expect lower RSSI dBm values than those equipped with wire antennas. If the SMD antenna is wrapped in heat shrink, enclosed in a whoop canopy, surrounded with carbon fibre parts or buried inside a plane/fixed wing, expect some more signal attenuation.
  • Swap out antennas on the receiver and/or the radio.


What’s ExpressLRS TX BackPack?

The TX Backpack is an optional feature within the ExpressLRS ecosystem. It enables wireless control of FPV-related devices directly from your radio transmitter. For instance, you can conveniently adjust the channel of your analog FPV goggles using the radio control.

To utilize TX Backpack, both the ExpressLRS transmitter and the device being controlled must be equipped with an ESP8285 chip. This chip, integral to the functionality, is what we refer to as the “TX Backpack.”

Tips for Long Range

  • Set the highest legally possible transmit power
  • Select a lower update rate, e.g. 50Hz will have better range than 500Hz at the same power
  • Choose a true diversity receiver with PA and LNA capability
  • Use high-quality antennas on your receiver, preferably half-wave dipole (T-shaped) ones. Avoid using ceramic antenna for long range
  • Optimize antennas placement as explained here: https://oscarliang.com/antenna-positioning/
  • Get a higher gain antenna for your transmitter
  • Consider using 900Mhz instead of 2.4Ghz for ultimate long range. (2.4GHz is still very capable though)
  • For more tips on long range check out my tutorial: https://oscarliang.com/long-range-fpv-flying-mini-quad/

Unable to use F1000 packet rate or prompts “Baud rate is too low”

F1000 requires a baud rate higher than 400K, and the radio transmitter’s baud rate is 400K by default.

First update the baud rate (greater than 400K) setting in the Hardware in Radio Setup menu, then restart the radio transmitter to ensure the baud rate setting has been applied. Then change the Packet rate.

If your radio don’t support higher baudrate then your can’t run F1000 mode.

When the F1000 is turned on, packet rate is less than 1000

This could be due to outdated EdgeTX version. You need to update to 2.8.0 or newer.

Same radio controlling multiple receivers simultaneously

What happens if you power up multiple drones that are all bound to the same radio?

You can control all of these drones at the same time, but telemetry won’t work properly as they all trying to send telemetry back to the radio and they will interfere with each other.

To avoid this from happening, you could use model match (each receiver would require an unique ID and a separate model profile). See “How to Use Model Match” in this guide for instructions how to set it up.

Why Does My Radio Keep Saying “Telemetry Lost”?

Occasionally, you might get a warning from your radio saying “Telemetry lost,” yet still retain full control and a perfectly fine video link. So, what’s the reason behind this?

Your ExpressLRS radio link is bi-directional, meaning your receiver is not only receiving signals but also transmitting them. While some transmitters in radios can output up to 1000mW, receivers typically have a much lower power output, usually around 25mW. Some newer receivers might reach up to 100mW, but this is still considerably lower than the transmitter.

A general rule of thumb is that 4 times the transmission power doubles the range. According to this, 1000mW would have 2.6 times the range of 25mW. To learn more about FPV range, check out this article: https://oscarliang.com/calculate-fpv-range

Given that the receiver has a much shorter range than the transmitter, when your transmitter isn’t receiving data from the receiver, you will hear the constant “telemetry lost” warning. It’s usually not an issue as long as you still maintain full control of the aircraft. It simply indicates that you’re not receiving telemetry data, which isn’t essential for maintaining a control link. However, be aware that your transmitter relies on telemetry for certain features, such as dynamic power. If telemetry is weak, your transmitter might unnecessarily use maximum power, even though less power might suffice for reaching the receiver.

If you want to eliminate this annoying warning, consider the following suggestions:

  • Upgrade to a receiver with higher telemetry power (currently, the highest is 100mW).
  • Turn off the telemetry warning in your radio’s settings.
  • Set Telemetry Ratio to standard, or a lower ratio might help

Lua Script just keeps Loading, Can’t Enter

When your run the ExpressLRS LUA script and “loading…” appears on the screen and nothing else happens, make sure you have enabled Internal RF (or External RF if you are using an external module).

Make sure you have the latest version, if in doubt, flash your module again and download the latest LUA script.

The baud rate of the radio transmitter is set below 400K in radio setup, and it should be adjusted to a higher baudrate value. If there is no option to modify the baud rate, ensure that EdgeTX is at version V2.7.0 or newer.

“Bad Size Given” Error

V2 and V3 handles partition differently (as they moved towards unified target), so when you flash V3 firmware to your module with V2 firmware, the file size get messed up and you get “Bad Size Given” error.

The fix is to download “repartitioner.bin“, on WiFi page, upload this file instead of firmware file. It’s going to say target mismatch, select flash anyway.

Now flash the V3 firmware again, it should go through this time.

Receiver Update Warning: ”Not enough data uploaded!“

If you try to flash firmware of a different target, and force update, you will get this error “Not enough data uploaded”.

It’s a bug/feature in ELRS 2.5 that prevents target changing. If you still want to go ahead and flash a different target, you first need to revert the RX firmware back to 2.0 (on the original target), then flash the different target you wish.

LUA script only shows “Connecting…”

That’s an indication of the ExpressLRS TX module is not talking to the LUA script

Possible causes of the problem:

  • TX Module is installed, or is installed incorrectly (pins in the module bay are not making proper contact or broken)
  • Maybe the TX module is in WiFi update mode, restart the radio and try again
  • Make sure you have set RF protocol to CRSF
  • If you are running OpenTX, make sure the version is not too old (it has to be 2.3.12 or after)

How to Install Cooling Fan on Happymodel TX Module

There is no fan plug for the Happymodel 2.4GHZ TX module, you need to solder it directly. I found 3.3V and GND at this capacitor. Make sure you confirm voltage with a multimeter before connecting to avoid damaging the board.

Happymodel Expresslrs Elrs 2.4ghz Tx Module 3.3v Fan Solder I am using a 20x20x6mm 5v fan which fits perfectly in their new module cover. The fan can be bought on Amazon (affiliate link): https://amzn.to/3ixZpE0. The fan should act as an exhaust and take the hot air out, not blowing onto the PCB to avoid dust building up inside the module. Current draw is quite low so that shouldn’t be an issue. At 5V, 0.05A.

Happymodel Elrs 2.4ghz Tx Module Fan Solder

Inconsistent Packet Rate – CRSFShot Not Working

In the ELRS lua script top bar, there is an indicator (e.g. 0:200) which tells you how many packets per second it’s getting from the radio. You can use it to confirm the consistency of the RC link.

Expresslrs Elrs Lua Script V2 Interface App

Ideally it should always show a stable number that is the same as the packet rate you select. For example: 0:50, 0:150, 0:250, 0:500.

If it shows an inconsistent number like 0:63, or is stuck at 0:250 at every packet rate you select, then your radio does not have CRSFShot working properly.

The latest official release of OpenTX (2.3.12 or newer) already includes CRSFShot, so double check if your OpenTX version is outdated.

Using ExpressLRS Logo as Model Image

I made a logo you can use as model image in the TX16S/T16. You can learn how to use it here.

Image download: google drive.

Install USB to UART Driver

You might or might not need to install this driver on your PC if you want to update your TX via UART: https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers

Taranis QX7

For Taranis QX7 users, if you are running OpenTX, you’ll need to perform this mod in order to run 400k baud rate on your radio. It’s not needed, but it is recommended if you want to get the most out of ELRS: https://www.youtube.com/watch?v=mHfQe05XJn8&ab_channel=edrone

If you run EdgeTX you won’t need to do this mod as the bug has been addressed in software.

Settings in the LUA Script Don’t Save

Make sure your arm switch is up (not engaged), some settings don’t save and will reset themselves when the drone is armed.

Edit History

  • Jun 2021 – Updated guide: OpenTX 2.3.12 has been released, no longer need to flash nightly
  • Jul 2021 – Updated: ExpressLRS 1.0 official release
  • Aug 2021 – Added info for BetaFPV ELRS Nano TX and RX
  • Nov 2021 – Updated product list
  • Feb 2022 – Updated the complete TX, RX and antenna options currently available on the market
  • May 2022 – Updated instructions for version 2.5, added info about adding home network, updated screenshot of LUA script (V2)
  • Oct 2022 – Updated guide for ELRS V3 release, added PWM receiver products
  • Mar 2023 – Added info about model match, added more FAQ, updated product links
  • Mar 2024 – ELRS 3.3 update, new products.

Leave a Comment

By using this form, you agree with the storage and handling of your data by this website. Note that all comments are held for moderation before appearing.


Charles 4th April 2024 - 4:43 am

What radio controller do I need for the drashark please help I’m lost here

Oscar 9th April 2024 - 4:19 pm

Did you get the ExpressLRS version? If so you can use any of these radios: https://oscarliang.com/setup-expresslrs-2-4ghz/#Radios-with-Built-in-ELRS

Norbert 31st March 2024 - 12:50 am

Hey, I have Cinerace20 and I cannot connect with Wifi. Its flashing fast but I do not see it on any device. Radiomaster works good bit Cinarace is not visible and cannot connect:( do you know what is it?

Greg 17th March 2024 - 9:19 am

So on the newest version of elrs configurator trying to flash a Rx through betaflight pass through. It only has a flash button at the bottom. I’ve tried all the available com ports. Do I need to hold down the boot button on the rx while plugging it in?

Andrew 3rd January 2024 - 9:58 am

Hello there thank you for your amazing guides,
I am back to the hobby after 2 years break and I wanted to ask if is OK to buy an external elrs module for my taranis x9d 2019 access edition or would be better to replace it with something better. I would like to keep it but if it isn’t wort upgrading with module I am willing to buy something better. Thank you for your hard work.

Oscar 3rd January 2024 - 1:34 pm

it’s okay to use the X9D Plus 2019. Just make sure to flash the latest version of EdgeTx and you are good to go :)

Roman G 26th November 2023 - 7:53 pm

For those, who update integrated elrs receiver(Betafpv spi) and can’t bind your radio
Make sure that you have selected the supported mode in your radio settings:

SPI receivers DO NOT support D(D250, D500), F(F500, F1000) and Full Res(100Hz Full Res, 333Hz Full Res) Modes (Packet Rates) and thus will not bind or sync with a TX module in any of these modes.

Dylan J 3rd November 2023 - 3:46 pm

hey Oscar, i’m feeling very frustrated cause i just bought a new elrs boxer and i was able to bind it to the rx no problem. But now after creating a new model in my radio and properly assigning all my switches to their corresponding channels the ONLY thing that seems to work is my beeper. i get absolutely nothing out of the gimbals or any of the other switches (on my quad AND the receiver tab in betaflight)
if you could give me any guidance at all i would be so grateful THANKS!

Oscar 3rd November 2023 - 7:24 pm

You can try creating a new model with default config and see if that works?
You can verify if the gimbals and switches are configured properly in the “Mixer” page as explained in this post. It’s an old post written for OpenTX, it’s largely similar but I am planning to write a new tutorial made for EdgeTX.

Ameen 25th October 2023 - 4:04 am

Hi, i crashed my quad in the water, my fc is dead, luckily my dji vtx ok, i bought new fc but after wiring i realized on the page ,the fc never mentioned elrs as supported receiver, am i still can bind to my elrs radio?

Jay Watkins 5th October 2023 - 8:38 pm

Tried running ExpressLRS Configurator v1.6.0 to update internal module on RadioMaster TX16S Mark II transmitter.
Neither PC or Mac version of Configurator would produce two files as described; just one firmware.bin file which didn’t work when loaded onto SD card.
I need v3 ELRS to bind RadioMaster ER8 receiver.

Anurag 31st July 2023 - 6:35 am

I want to arm 5 drones having the same configuration simultaneously. I want to know whether Radiomaster Tx16s Mark 2 can be bound with multiple Rp1 receivers simultaneously under same model type since all drones are same.
Also further is can return to land function be set on this transmitter channel, when pressed all 5 drones land to their home position.

Thank you

Robert 4th July 2023 - 8:27 am

Model Match doesn’t work. Created a new model. Made a new receiver ID. Registered everything in the ERLS configurator. Betaflight does not see the receiver.

Damien 27th June 2023 - 9:44 am


Do you know if it is possible to have the transmitter power output selectable on a switch/button ? I’m running a RM boxer with built in expresslrs and would like to use the buttons across the top of the screen to select the power output of the transmitter ie , 100mw , 250mw , 500mw , 1W , 2W

Anthony Kelly 12th April 2023 - 12:36 am

I’m running ELRSConfig1.5.6 Trying to flash some new Radiomaster receivers: Target = Radiomaster RP1/2 2400RX. The build generates firmware for HappyModel_EP_2400RX, which is not the right target. I believe it should build RM_RP_2400RX which is the correct target.
I’ve searched all over with no luck on this problem. Any insight, or places I should search?

ll3m 6th April 2023 - 8:59 am

Hello Oscar, thanks for the instructions.

It is the best

Francesco piccioni 24th February 2023 - 7:54 pm

Buongiorno, ho una TX16S MARCK 2, con Edge Tx 2.8 ELRS 3.1.2, non ho capito quando devo scaricare lo script lua e inserirlo nella scheda sd, se mi funziona tutto regolarmente, quando devo sostituire lo script lua

GrindingFPV 15th February 2023 - 12:26 pm

Hello Oscar, is it possible to mount an ELRS reciever on an AIO board of a Mobula7? can u tell me how???

Oscar 15th February 2023 - 3:48 pm

If there’s a spare uart on the board you should be able to do it. Connection and seutp are the same as a full size flight controller really.

Fadlian noor 5th February 2023 - 2:26 pm

Sir can u please help me…i have new elrs happymodel ep2, and the 2.5.1 firmware version, the problem is i have my remot and 3 other rx is 2.3.0 version, can i downgrade my happymodel ep2 to 2.3.0…how can i do that??? Thx…

Oscar 5th February 2023 - 6:32 pm

Your remote on 2.3 should work with your receiver on 2.5.1, there’s no need to downgrade. See explanation here: https://oscarliang.com/setup-expresslrs-2-4ghz/#Should-I-Update-ExpressLRS-Firmware

ItsDarts 22nd December 2022 - 9:33 am

When ever I need answers quick, I can count on this site for all of them. Just started with ELRS and couldn’t figure out why I couldn’t upload both files to the receiver, kept saying not enough space after trying to upload the second file. Came here and discovered Configurator creates two identical files with different names, firmware.bin and another .bin with the name of the receiver. Firmware.bin uploaded fine and I didn’t realize that receiver name.bin wasn’t needed. I was pulling my hair out till I came here. Thanks Oscar!

richard zglobicki 15th December 2022 - 12:54 am

I am having trouble flashing my jumper t18 and my happy model ES24_Pro_series_tx, I had no problem a week or so ago flahing both my radio and modual,I just bought a Flywoo 2S firefly and flashed that with no problem, COM 3,I get a “Failed to connect to ESP32, The last thing it said was com1, and that error,

William Marotz 7th November 2022 - 2:31 pm

firmware.bin is 1422k for my HappyModel ES24TX Express LRS TX Module. My Jumper T18 Pro has Open TX 2.3.15 installed. The Lua script is installed and appears to work perfectly. My PC connects to b and the WiFi firmware update commences with the horizontal bar graph showing the percent installed. At the finish I receive a Firmware Update Failed Not Enough Space error. What are my options?

Ton 17th October 2022 - 8:15 am

My beta fpv pwm rx i use firmware tx rx of lite rx to fly, signal lost and fall from a distant area about 330 feet how do fix it.

Robert 16th October 2022 - 10:06 am

Thank you for this brilliant and comprehensive guide.

Ananda 13th October 2022 - 7:52 am

Hi Oscar….thanks for sharing lot of tutorial. It’s really help me to learn. Many thanks….success always for you

Steve Potter 2nd October 2022 - 6:05 pm

Great tutorial!! Another reason the Lua script may be stuck “Connecting…”: if you have another Lua script running that interferes with it. I had Yaapu telemetry running and it kept ELRS Lua from connecting.

George 25th July 2022 - 10:47 pm

There is no way in hell I could have set this up without you. Thanks

paul 25th July 2022 - 5:10 am

Hi Oscar, my name is Paul and I’m from Argentina. Thanks to your tutorials I was able to install edge tx on my taranis qx7s. Pass from Frsky R9m to beta 1W elrs. I followed your tutorial and luckily I was able to do everything. Perfect flight, but I constantly have the telemetry lost alarm, telemetry recovery and the screen of the taranis flickers. Never fail safe. The values I have are: 500mhz, 1:128 in the beta module, 400 bauds and onebit option activated in the taranis. Lq and Rssi Db perfect. It makes me suspicious to fly like this and I looked for information but I didn’t find anything. I don’t understand what’s going on and I would appreciate some help.
Thank you very much in advance and I love his videos because they are the clearest thing I have seen so far.

Oscar 25th July 2022 - 11:56 am

See my reply in the last comment.

Paul 25th July 2022 - 1:37 am

Hello Oscar. I love how he explains things.
I followed all your tutorial to the letter and it works perfect on my taranis qx7s. The problem I have is that the alarm sounds constantly telemetry lost, telemetry recovered. Perfect flight and Rssi db and LQ are maintained, but that doesn’t stop sounding.
I use 500mhz and telemetry ratio 1:128, 400baud and onebit option…………thank you and I hope you can solve that.

Oscar 25th July 2022 - 11:55 am

Did you see the FAQ regarding QX7? https://oscarliang.com/setup-expresslrs-2-4ghz/#taranis-qx7
The easiest fix is to flash EdgeTX: How to Flash EdgeTX to Your OpenTX Radio (TX16S)

Paul 28th July 2022 - 5:19 pm

Thank you very much…I will try again

ROB 21st July 2022 - 7:54 pm

i liked the EXPRESSLRS setup

Gus 8th July 2022 - 1:42 am


Any ELRS TX Module is plug and play for the FRSKY Taranis QX7 access requiring at most firmware update?

Do any of them require any adaptation or physical modification on the FRSKY Taranis QX7 access?

Zhou 25th June 2022 - 6:17 pm

Hello! My receiver can’t bind with the transmitter. The LED of the receiver is flashing all the time(the period is about 1.3s), and the WIFI of the receiver is always on. I’ve set the same binding code, but they can’t bind automatically. What’s more, the “binding” button on the transmitter is also not working.

Zhou 26th June 2022 - 1:50 am

And the version of my transmitter is “unknown”, I’m considering if this is the problem.

Oscar 26th June 2022 - 11:39 am

Try to flash all your hardware to the latest version see if that fixes it?
That includes your TX and RX firmware and EdgeTX

Carl 19th June 2022 - 5:31 pm

Using zorro elrs. My packet rate is 500. Telem ratio is 1:128. I would constantly get telem lost, telem found while flying. Should it turn it off or lower the ratio?

Oscar 20th June 2022 - 11:25 am

Try lower it (more frequent telemetry updates).

Bad Raven 8th May 2022 - 9:01 pm

I have three quads running on ELRS now, but am confused by the LUA on my FrSky X12S Horus. It seems to take forever to run, though it does in the end complete, and the quads bind and run.

Felix Max 5th May 2022 - 12:45 pm

Hello Oscar, thank you so much!
Can you tell us how to set to (Radiomaster Tx16S) a telemetry setup warning etc?
Like on what RSSI etc. you should get worried to not failsafe etc….
i have found something like that once for Crossfire but i switch completly to ELRS so that would be great!
Thank you so much for all your work!

Johnny 25th April 2022 - 4:34 pm

I see there is now a HappyModel ELRS PWM receiver module. Any difference in setting that one up?

Oscar 25th April 2022 - 6:25 pm

Same thing.

Dave Bran 27th June 2022 - 11:12 am

Did not bind and work for pass through (obviously?) but did work for wireless at VERY close range

Badfrog 20th April 2022 - 8:21 am

Thanks for your info. My TX16S max v2 is on order and I just received my ELRS module. Looking forward to getting it all working and this guide will be invaluable.

Dave 13th April 2022 - 1:39 am

Just FYI, the happy model version of the elrs module seems to have a JST plug for a 5v fan on the board – no need to go off the resistors.

David Pulvermacher 12th April 2022 - 9:15 am

Brilliant, clear and concise instructions Oscar. Thanks you!

socalrcguy 10th April 2022 - 3:59 am

What is the current draw at 1000mw, 500mw, 250mw, and 100mw? You mentioned that it is only 50ma but at which power level? Thanks!

Eric 27th March 2022 - 9:53 am

Hi Oscar, I followed your steps in setting up my Jumper T-Pro TX. When I reached the step on performing a BootLoader on my TX; I could not locate the right buttons on my Jumper T-Pro. Wonder if you could advise. Thanks a million.

Oscar 27th March 2022 - 11:41 am

if you type in “jumper t-pro bootloader mode” you will find a ton of tutorial on how to do this :)

Andre 13th March 2022 - 5:05 pm

Can anyone help me out I’ve installed elrs beta fpv 2.4 on my 5 inch with the jbf7 and a succex 45a esc with a tx16s everything works great until I try and do punch outs at full throttle I get rx loss for about a second and then the signal comes back and if I keep the throttle at 100% the signal doesn’t come back and it just falls out of the sky. I’ve tried switching 5v regulators ground wires and tried changing the uart. I’ve got a capacitor on it 1000mf. I have also tried moving the receiver to different places with no luck

pianowow 9th March 2022 - 5:10 am

If you have a module with ELRS 1.x installed, you need the 1.x version of the LUA script. You can use it to install the latest firmware, then install the v2 LUA script.

yannick Colin 7th March 2022 - 7:00 am

hello there… is it possible tu use an elrs rx on silverware lite 2s?
best regards

NeueAuteur47 19th February 2022 - 11:42 pm

Thanks Oscar, very helpful!
I am having trouble flashing my RX/TX via the Express LRS configurator. When I get to the Build and Flash stage, I get an error message stating that my Mac is using an outdated version of Python (??), that I need to have Python 3 installed. I’ve tried to upgrade Python but have been unsuccessful with my older Mac OS. What should be my next move?

Oscar 20th February 2022 - 11:13 am

i am not sure as i am not a Mac user, can you use something like Virtual Machine or Wine and run Windows on it?

NeueAuteur47 21st February 2022 - 8:40 pm

Will try. Thanks Oscar for the reply.

Neil 8th February 2022 - 10:19 pm

As always Oscar nice tutorial! but I would love to see how you setup your ELRS telemetry widgets please share a link if you already have done this.

Paravy 7th February 2022 - 11:12 pm

Merci pour ce guide qui m’a été très utile pour flasher mon betafpc micro TX 1000mw ,flashe en 2.2.0

Dan Lahrman 6th February 2022 - 12:56 am

I am running TX16S with 2.3.14. I am unable to get the expresslrs Lua to work. It just shows “connecting” and all question marks. I did find that I am able to use the elrs module if I use the crossfire setup Lua.
For those having similar issues to me give the crossfire Lua a try

chris thompson 13th January 2022 - 6:27 am

Hi Oscar
For 500hz, in 4.3 feedforward averaging should be set to 2_point, feedforward_smoothing to 65, and jitter reduction of 5.
For 250hz, in 4.3 feedforward averaging should be set to 2_point, feedforward_smoothing to 45, and jitter reduction to 6.

Vince 12th January 2022 - 1:00 am

I’m running OpenTX 2.3.14. I installed the Lua Scripts as instructed and as soon as I did, all my models were deleted. When I tried “executing” the Lua, like BS below all I get is a loading screen.

byMarto 20th February 2022 - 4:39 pm

Same here,… how did you pass the step with the infinite loading ?

zac 6th January 2022 - 6:16 am

Had a question ..
When we use two radios and intend to fly a model / quad that has an ELRS receiver installed , is it possible to bind both radios as long as we use two separate ELRS TX modules installed on each radio ?
On the Frsky R-XSR this was possible by using TX cloning method . Is this possible or straightforward for ELRS ?

BS 6th January 2022 - 1:50 am

I’ve had 2.3.14 loaded on my TX16S running FrSky and just got the HappyModel ELRS24 module. Two weird issues. When I select “noheli” in the build options and flash the TX, it will not boot. If I build without that selected the TX will boot. For now leaving that unchecked.

When I go to SYS > TOOLS on the TX and select ExpressLRS all I get is a loading screen and nothing appears. I’ve left it for quite a while and the module is not loading. Any thoughts?

Manuel Bonow 4th January 2022 - 7:03 pm

If that’s the same Aio that resides in Tina whoop and c25, you can hook up a hm ep Rx the way you explained/ identically to crossfire.
That is for elrs 1.0.2.
For other brand receivers and other firmwares this might not be possible.
Ideal way is a set of full uarts where no inverted pads or sbus are used on)split off.
So you might need to change wiring so you take the UART that is controlling your VTX now.

Alejandro 29th December 2021 - 10:56 pm

i go into tools on my radiomaster tx12 and i only have spektrum there, and i updated my open tx to the newest version what did i do wrong?? please ive been at this for over 4 hours

John Cushard 28th December 2021 - 1:38 am

followed things step by step …. 3 times … I get telemetry just fine, but no response in radio setting in betaflight …enough to drive an old man over the edge … any ideas ??

gianpz 11th January 2022 - 3:24 pm

Hi, have you solved your problem? the same thing happens to me using literadio 2 elrs, binding happens but I have no answer in the betaflight receiver tab.

Mike 23rd March 2022 - 9:55 am

Did you find any solution to this problem? I have the same issue with EP1 and Literadio 3 ELRS.

Jerrod 9th November 2021 - 11:41 pm

Thanks for the great info Oscar, maybe a dumb question but

do you know if this will work with Spektrum transmitters? They use the SRXL2 or CRSF/2 protocols.

Ed 6th November 2021 - 4:01 am

For an ELRS RX to work with a Mamba F411 AIO, would I use the SBus+TX1 to TX+RX in the same way the diagrams show a crossfire tying SBus+TX1 to CH2+CH1? The Mamba docs aren’t particularly clear on whether SBus pin can be used as a generic uart RX1 unless I missed something.

Manuel Bonow 4th January 2022 - 7:02 pm

If that’s the same Aio that resides in Tina whoop and c25, you can hook up a hm ep Rx the way you explained/ identically to crossfire.
That is for elrs 1.0.2.
For other brand receivers and other firmwares this might not be possible.
Ideal way is a set of full uarts where no inverted pads or sbus are used on)split off.
So you might need to change wiring so you take the UART that is controlling your VTX now.

Craig 24th October 2021 - 11:42 am

Tapping voltage that way for the fan seems dubious to me without understanding of the circuitry there. Obviously something is being filtered by the capacitors, and adding a fan may disturb the filtering with the voltage spikes/drops it causes. I can’t see the traces, so I couldn’t figure out out the circuitry works, so I opted to simply not use the fan: that’s probably less risky.

Felipe 17th October 2021 - 10:27 pm

Hello, my EP2 RX blinks the led slowly and doesn’t go into wifi mode. What should I do?

eric 25th December 2021 - 2:52 am

first, it takes 20 seconds to go into wifi mode so make sure your waiting long enough, if its not going in i would try firmware via uart or betaflight passthrough

Nabin Bhandari 4th October 2021 - 9:05 am

Hi there,my lua script is showing up instead i am getting “attempt to compare with nil” message.
Anyidea how to solve this?

Nick Whitehead 2nd October 2021 - 8:41 am

What betaflight build version is ELRS supported from? Ie how old a betaflight build? The reason I ask is that I build my own betaflight versions.

Marcus Andersson 22nd September 2021 - 8:59 am

Talked to HappyModel today. According to their support there is no need for cooling fan when running at the max output, 250mW, for the ES24TX. There is soon coming another version of the ES24TX that is called ES24TX Pro that has built in fan and capable of 1000mW.

Matthew 17th September 2021 - 4:38 am

Hey! Where could one find that cover with the mount for the fan? Looks 3D printed. Are there STL files anywhere?

Xazax 10th September 2021 - 5:45 pm

Will it work with jumper t8sg plus?

Arras 7th September 2021 - 7:05 pm

Thank for the rewiew :)
Can you use ES24TX with FRSky XD9+?
Because no can see the module in the XD9+

Oscar 7th September 2021 - 11:32 pm

Yes it should be compatible with Frsky X9D+.

Denis GALICE 8th September 2021 - 3:59 pm

What would be the procedure please for the XD9 + because I have been trying for weeks but I still do not see the module

Oscar 12th September 2021 - 5:48 pm

what do you mean you don’t see the module?

ibrahim 2nd May 2023 - 10:49 pm

how to enable external module and set it to CRSF and disable internal module? i did everything right but i still have this issue. i’m using frsky taranis x9d+.

Oscar 3rd May 2023 - 12:13 am
Matt 3rd September 2021 - 2:08 pm

Two important additions that I ran into during setup:

serialrx_inverted and serialrx_halfduplex need to be OFF

If the elrs receiver LED stays on solid after powerup, without ever turning off, it is stuck in the bootloader, caused by the elrs rx pad being pulled low during boot.
Common reason: F4 boards with an inverter for SBUS on one of the serial ports do this, even if you dont use the inverted pad. Use an entirely different serial port for elrs and it will work.

Shoutout to Alessandro for telling me this because I could not find any help in any of the elrs guides or forums.

Manuel Bonow 29th November 2021 - 2:48 am

Yes I have that exactly same problem on a mamba f411 aio with an jhemcu ep24s receiver.
But it works fine on happymodel ep1.

DvsDon Fpv 26th February 2022 - 10:54 pm

i have a xilo f4 board how do i know if the pad is inverted or not?

Fabian 30th March 2022 - 12:54 am

Hi, what do you mean by “serialrx_inverted and serialrx_halfduplex need to be OFF”
Where must I find this option? (yes i’m a noob?)

Petar Smiljanic 1st September 2021 - 11:42 am

Is there possibility to use ExpressLRS TX/RX on old PPM radios? Of course with former setting on OpenTX radio/

Rodrigo C 26th August 2021 - 5:59 am

Hi, thanks for all your work is a great help for everybody.

I’m having trouble with finding sensors with ExpressLRS 2.4? I can only get it to find 10 sensors: (1RSS, 2RSS, RQly, RSNR, ANT, RFMD, TPWR, TRSS, TQly, TSNR) I already tried updating the RX and TX to the latest firmware 1.0.1 with the telemetry option, I also deleted all sensor and discover new sensor, and also increase the Packet Rates but still doesn’t seems to work, any suggestions? could it be that I’m missing to configurate something in betaflight?

barak 17th November 2021 - 6:25 pm

thank you Oscar for another page packed with info!!
I have the same issue RODRIGO C has, cant get battery voltage (rxbat i believe) on the sensor list.
using DIY 2.4 ghz Tx and happymodel on version 1.2 telemetry enabled. (have the issue with a foxeer F7 on betaflight and F405 wing on arduplane- both latest FW)..
any idea?

Clay 3rd January 2022 - 6:28 pm

Did you figure this out. I can’t get the battery voltage either

Ivan 17th August 2022 - 10:07 am

I had a similar problem: I only saw 10 sensors in telemetry. I cleared the Softserial2 assignment and found 23 sensors.
FC: Matek F411 WSE

Peter 14th December 2021 - 6:40 pm

Same issue here. I’ve just installed BetaFPV F4 1S 5A AIO Brushless Flight Controller (onboard ELRS 2.4G). I’m using Taranis x9lite, TX module is BetaFPV nanoTX, latest v1 firmware 1.3.x (FC does not support ELRS 2.0). I can see only 10 sensors you mentioned, nothing more. Had no problems with voltage readings using Frsky R-XSR receiver.

Gregor 23rd August 2021 - 7:39 am

Is there a foldable antenna for the ES24TX available? It is annoying, for the T-Lite to have this stock-antenna.
Thank you!

Senthil Kumar 15th August 2021 - 5:44 pm

can Express lrs es24tx lite module in jumper t lite be Connected with frsky r xsr receiver? will it give gud range? How to connect and bind these?

Oscar 16th August 2021 - 7:25 pm

No. ExpressLRS TX only binds with ExpressLRS RX.

senthil kumar 3rd September 2021 - 3:20 am

Can we flash frsky r xsr receivers with Express LRS firmware so that it can act as a ExpressLRS RX??

Chrys Burge 11th August 2021 - 8:33 pm

For the 5V fan connection, could you connect the fan wires to the ground and 5 volt pins in the module bay that power the module?
If so, does voltage become present when external module is selected in the model menu?
If this is the case, it might be easier to connect to these points via the ELRS pin receiving socket as opposed to trying to solder to the point that you did on the board.?

Blake 13th August 2021 - 1:50 pm

Hi I’m also thinking the same if you hear anything let me know it seems strange they designed the box for a fan but no one knows what to do with it.(Anyway)

Marcus Andersson 22nd September 2021 - 8:07 am

The external bay has the same voltage as the battery so that wouldn´t be a good idea. Only the internal Multi-Module is powered by 5V.

Ronald 6th August 2021 - 6:52 pm

EP1 Rx – after initial flash – i get 0:0 Link Quality in my OSD – yet i bind correctly, have 99 RSSI, and can seem to fly (have not tested long range) but at least around a 2 acre yard no range issues. Still shows 0:0 LQ. I can’t figure out why.

I tried to reflash my Rx – but it won’t let me. Every time it WIFI connects, it instantly disconnects me and I can’t get to (however my Tx can get to no problem).

I can’t reflash via UART either — i get this error message all the time like the Rx is not opening its port to accept the reflash? I downloaded the STM files and the VCP files and the Impulse RC Driver fixer. So frustrated!

What the heck? Pretty disappointed. I have good LQ signals and readouts on a different EP1 flashed with the exact same build. I also had good LQ readout on a Happy Model ELRS 5in1 board for the 1s Whoop setup.

Really bummed!!!

n3ron3 21st February 2023 - 9:47 pm

Hello, another great tutos.
I learned a lot from you, your explanations are clear.
Thank you so much for sharing!

Mike 3rd August 2021 - 8:35 pm

How often do we need to update elrs LUA ? Seems like weekly we get new firmware for the tx and RX.

Oscar 4th August 2021 - 9:10 pm

Not very often, check firmware release log, it should tell you when LUA script update is necessary. So far (V1.0) I think it’s not necessary yet.

Kenzo 30th July 2021 - 7:29 pm

Hi bro, btw thank for tutorial, its clear all step by step.
I just try, tx up-to-date rc9, rx up-to-date rc9, bind completely, rssi telemetri good working on radio.
But, in receiver tab, not respond, port uart good, serial crsf.
Can you suggest me, what wrong or what should i do ?
What i miss here xD

JEFERSON ALESSANDRO DA SILVA 30th July 2021 - 6:34 pm

Attempting to detect FC UART configuration…
** Serial RX config detected: ‘serial 5 64 115200 57600 0 115200’
Enabling serial passthrough…
CMD: ‘serialpassthrough 5 420000’
======== PASSTHROUGH DONE ========
======== RESET TO BOOTLOADER ========
* Using full duplex (CFSF)
Uploading .pio\build\HappyModel_EP_2400_RX_via_BetaflightPassthrough\firmware.bin
esptool.py v3.0
Serial port COM3

A fatal error occurred: Failed to connect to ESP8266: Timed out waiting for packet header
*** [upload] Error 2
========================= [FAILED] Took 20.02 seconds =========================

Environment Status Duration
———————————————– ——– ————
HappyModel_EP_2400_RX_via_BetaflightPassthrough FAILED 00:00:20.024
==================== 1 failed, 0 succeeded in 00:00:20.024 ====================

Stefano Bellinazzi 24th November 2021 - 3:06 pm

I’ve the same problem.

Have you found a solution?

Leoni 15th June 2022 - 2:13 pm

I had that error because I tried to flash on USB-only, but my flight controller (TinyHawk III AIO board) did not turn on the UART and thus the RX. After plugging in a battery and retrying, it worked.

R.W. 29th July 2021 - 1:43 am

This particular page is bookmarked and has been referred to many times as I swapped my fleet over. Thanks, this a well-thought out resource!

Substance242 18th July 2021 - 11:22 am

So far I had “toys” MJX Bugs 6, Fimi A3, and I’m thinking about Eachine Novice 4 RTF, so I started studying lots of new things (betaflight, opentx…), but now the question is – wait a while for some nice RTF package with ExpressLRS…? That is going to happen sooner or later I believe…?

Excellent articles and videos, thank you.

Phil 18th July 2021 - 12:39 am

Thanks for the great guide! Just followed it to get it working on my QX7 and EP1 RX. Only thing that might need an update is the target that is listed for the RX, it said to use the “HappyModel_EP_2400_RX_via_BetaflightPassthrough” even though you (and I as well) ended up using the WIFI version so it might be good to mention to use the wifi target instead.

Oscar 18th July 2021 - 9:26 am

It doesn’t seem to matter. You still get the same WiFi capability with the Betaflight Passthrough target.

Andy 16th July 2021 - 5:39 am

So are EP1 and EP2 equal in Range? If Yes, why should someone choose EP1?
Very curious…

Oscar 16th July 2021 - 11:41 am

It depends, EP1 allows you to extend the antenna outside of the frame so it doesn’t get obstructed, so in reality it might give you more reliable signal.

ANDY 16th July 2021 - 1:57 pm

Ok. Thank’s. So for an airplane it might be better to take the EP1…

Brad Young 6th September 2021 - 8:50 am

I tried to solder the fan you suggested, and yes It was the same happy model board , I was getting 3.3 volts. The capcitor I soldered it to blew AFTER I got it to work. When that little capacitor blew all the lights on my TX board went out , and it no longer works. Awesome.

jagdac 13th July 2023 - 1:51 am

Hola, buenas noches, escelente artículo, tengo una duda y no encuentro en ningún sitio donde aclararla, verás, vengo de frsky y su telemetría SMARTPORT, y al pasar a expresarse hecho de menos muchos parámetros de telemetría, el que más la distancia a casa, o el 420 de la telemetría de frsky ¿Hay alguna manera de tener ese parámetro en expresslrs? Muchas gracias y un saludo.

Hello, good evening, excellent article, I have a question and I can’t find anywhere to clarify it, you see, I come from frsky and its SMARTPORT telemetry, and when I go on to express myself, I miss many telemetry parameters, the one that is the distance to home the most , or the 420 from frsky telemetry Is there a way to have that parameter in expresslrs? Thank you very much and greetings.

Hayward 15th July 2021 - 5:06 pm

As always a great tutorial, would you have one for the ExpressLRS 900Mhz TX and RX

Oscar 16th July 2021 - 11:38 am

Maybe, but I think ELRS 2.4GHz would be more popular so I did it first.

Olaf S. 9th July 2021 - 9:36 am

What would have happened if FrSky hat skipped Access and ACCSTv2 and had stayed the opensource route. If they would have been the first who builtin ExpressLRS into their Transmitters than they still would be the leading elephant. Even if they are more expensive – the Gear Akquisition Syndrome of many people would habe bought the First Implementation of new stuff.

David O Simpson 4th July 2021 - 7:36 am

Thanks for this tutorial.
Helped me get my T-Lite / Tinyhawk communicating. Really appreciate the care to not skip steps and consider us n00bs who might not have done this type of RC link upgrade before.

Christopher Yotz 27th June 2021 - 11:33 am

Mr. Liang, you are a beautiful human being. Your info above about moving the jumpers on the Happymodel TX in order to flash the TX via UART saved me. This information can’t be found anywhere but here. Thank you so much for your efforts.

Jan 23rd June 2021 - 11:05 pm

Hi, could you kindly change rx pinouts names?
Its writren vcc and can be confusing for newbies that’s 16.8v, whereas its onły 5v

Wayne 21st June 2021 - 5:02 am

Updated over UART QX7 won’t connect with the LUA script. I get ???????? 0:0

Torin Johnson 19th September 2021 - 12:09 pm

I’m also having this issue. Were you able to find a fix?

Eric Still 1st December 2021 - 10:05 pm

Here are a couple of things I’ve learned fighting with my QX7.
first update the QX7 to latest and greatest OpenTX
create a model with the internal radio off, and the external set to crsf
Unless you’ve done the QX7 crossfire mod (soldering a small board to the motherboard of the QX7) long press the menu button (3 bars on it), “Page” over to hardware, and set the baud rate to 115200.

Sonny 20th November 2022 - 7:35 pm

How do you write a binding phrase to an spi rx, like the Mob7 1s?

Paul 8th January 2022 - 2:38 pm

I had this same issue. I was trying to update a Happymodel TX module that came with ELRS v1.0 to 2.0, so put the v2.0 lua script onto my SD card. This was incorrect, an ELRS module running V1 firmware won’t be usable with the V2 LUA script. I replaced the LUA file with the V1 LUA, and it ran just fine. I was then able to update the TX module to V2, and then replaced the V1 LUA with the latest V2 one.

Craig 20th June 2021 - 8:38 pm

These are my RSSI settings in Betaflight for ExpressLRS (2.4Ghz EP1 RX) in order to use the full 0 to 100% range of RSSI in my OSD:
set rssi_scale = 255
set rssi_offset = -48
set osd_rssi_alarm = 13
set osd_rssi_dbm_alarm = 99

You can decide whether to use RSSI alarm and/or RSSI Dbm alarm in the OSD tab.

You’ll notice that RSSI drops off very fast in the beginning but slower the lower it gets. Only at about 15 – 20% RSSI will you notice frames being dropped in the LQ but the connection will still be solid. You can go slightly below 10% RSSI without worries as the RSSI is not as erratic there as with most other receivers. Pay more attention to your Dbm and LQ though in the beginning to get a feel as to which RSSI values are safe. LQ does seem to drop off more rapidly the further down it goes. I’d say below 85 is the danger zone.

I would like to set osd_link_quality_alarm but in Betaflight 4.1 the range is 0 – 300, whereas in ExpressLRS LQ varies (and is usually above that range) depending on your frame rate (600 – 700 for 250Hz)

Oscar 20th June 2021 - 8:57 pm

Thanks for sharing Craig, that’s some useful info!

grabejud 15th July 2021 - 3:16 pm

btw, how did you get the rssi_offset = -48

BurningMotorsFPV 19th June 2021 - 4:04 pm


awesome writeup!
One mistake though: Under the section where you describe how to flash the TX via uart. There is no boot button on the tx that you have to press. Just move the jumpers and install the cp210x drivers and hit “build & flash”.

Gary Cross 19th June 2021 - 3:16 pm

Excellent article, will help a lot of people including me. Very informative and well put together. Thank you.

RaKr 18th June 2021 - 1:53 pm

Great Work – thank you!

MJDOZ 19th June 2021 - 10:56 am

OPENTX 2.3.12 has a bug that it does not fully support 500hz as of 19 June 2021 and falls back to 250hz Sampling rate

If you are somebody who must have 500hz then use the 2.3.10 ERLS version of OpenTX or the latest RC of EDGETX

Prudi 18th June 2021 - 6:35 am

Need tutorial how to flash TX via USB, since my module stuck with syntax error mesage and can’t access tx menu (always return to ELRS tools menu) . It happened when I change telemetry ratio to 1:4.

Prudi 20th June 2021 - 9:58 am

Thanks for USB update firmware tutorial, my module is coming back online

Danny 17th June 2021 - 8:49 pm

Great guide and easy to understand explanation, the best so far, thanks Oscar ! On Opentx 2.3.12 stock firmware seems You’ve been limited in choice to 25Hz. That’s what I’ve read on FB.

MJDOZ 17th June 2021 - 10:10 pm

OpenTX 2.3.12 supports all speeds except 25hz

If you want to use 25hz you will need EDGETX currently on GitHub as version 2.4 RC1 as 16 June 2021

Keczejo 17th June 2021 - 2:00 pm

Lite module is only for Jumper t lite. To use it in x-lite or tango 2 you have to print adapter and solder special connector.

Oscar 17th June 2021 - 2:18 pm

Thank you I just updated the post.

Rishi Thakur 19th June 2021 - 8:59 am

Open tx 2.3.12 has an issue and currently can’t run 500Hz

Luis Leston 17th June 2021 - 1:57 pm

Amazing documentation. I am really impressed with the quality of your work.

Martin 17th June 2021 - 2:16 pm

Oscar is doing great job and helping lots of people in the hobby. Consider to support him on patreon. Thx!

Jonas Liang 17th June 2021 - 1:33 pm

Nice guide! Opentx 2.3.12 stock firmware is released.may be no need to flash nightly build

Oscar 17th June 2021 - 2:23 pm

Hahaha.. I knew I would have to update the post the moment I publish it!
I will check it out tonight, thank you.

Thomas Shue 7th September 2021 - 5:24 am

Where can i buy an adapter to go from the MINI to JR bay?

Oscar 7th September 2021 - 11:29 pm

I got mine from here: https://oscarliang.com/product-v6qi
But it’s only the pins and PCB, you need to get the case 3D printed.

VLAD 6th November 2023 - 8:56 am

Better get out there before the Tide changes.