How to Setup ExpressLRS 2.4GHz TX and RX

by Oscar
Published: Last Updated on
setup expresslrs 2.4ghz tutorial

ExpressLRS is an affordable open source RC system that offers ultra low latency and long range. In this tutorial I will show you how to setup ExpressLRS 2.4GHz transmitter module and receivers with TX16S radio and Betaflight. And how to flash the latest ELRS firmware.

This guide works for Happymodel (ESTX24, PP/EP1/EP2), as well as BetaFPV ELRS Nano TX and RX.

New to ExpressLRS? Take a look at this article, it explains the advantages of ExpressLRS over other radio systems, and why I prefer to use 2.4GHz over 900MHz.

ExpressLRS 2.4GHz Hardware Selection

expresslrs happymodel 2.4ghz es24tx tx module rx ep1 ep2 ppTX and RX listed here are all compatible even they are from different brands. As long as they are running ExpressLRS firmware, they should bind just fine.

Transmitter Module

Happymodel ESTX24 TX Happymodel ESTX24-Lite TX BetaFPV ELRS Nano TX
Betafpv Expresslrs Nano Tx Module Jr Bay Tx16s
happymodel expresslrs elrs es24tx tx module pcb

ES24TX TX Module Close-up

It comes with a case (JR size), coax cable with SMA connector and an onmi-directional antenna (not shown).

happymodel expresslrs elrs es24tx tx module in jr module caseThe TX module plugs into the external JR module bay, and it’s compatible with radios such as Radiomaster TX16S, Jumper T16, and Frsky X9D+.

The ES24TX-Lite works for the Jumper T-Lite. Happymodel is currently working on another version for other smaller radios with “Lite style” module bay such as the TBS Tango 2.

happymodel expresslrs elrs es24tx tx module install tx16s radio bay

The other option is BetaFPV’s ELRS Nano TX, see my review here. It’s designed for radios with Nano module bay, but with an adapter it can also fit in standard full size JR module.

Betafpv Expresslrs Nano Tx Module And Rx 2.4ghz 868mhz 915mhz

TX Antenna Upgrades

Stock antenna works fine, but if you are trying to push range you can try these higher gain antennas:

VAS Diamond TrueRC True-MOX Turbowing Fishbone



Translucent heatshrink would be useful for the RX, 14-15mm wide should do fine:×45

The main differences between PP, EP1 and EP2 are the processor and antenna: PP has STM32 while EP1 and EP2 has ESP8285. These chips should have similar performance, but the ESP8285 has WiFi capability while the STM32 chip doesn’t. That means you can flash the EP1 and EP2 through WiFi, and the PP only supports firmware update through Betaflight passthrough.

The EP1 is the same as the EP2 except it has a U.FL/IPEX1 connector for an external antenna, while the EP2 has a compact built-in ceramic antenna.

PP Specs:

  • Size: 10mm*10mm*6mm
  • Weight: 0.47g
  • Processor: STM32L432
  • SMD Ceramic Antenna
happymodel expresslrs elrs 2.4ghz receiver rx pp close up smd ceramic antenna

PP receiver with SMD ceramic antenna

happymodel expresslrs elrs 2.4ghz receiver rx pp close up processor

PP receiver

EP1 Specs:

  • Size: 10mm*10mm*3mm
  • Weight: 0.42g
  • Processor: ESP8285
  • Onmi antennas (40mm/90mm length)
happymodel expresslrs elrs 2.4ghz receiver rx ep1 ipex ufl connector

EP1 receiver with IPEX antenna connector

happymodel expresslrs elrs 2.4ghz receiver rx ep1 close up processor

EP1 receiver

EP2 Specs:

  • Size: 10mm*10mm*6mm
  • Weight: 0.44g
  • Processor: ESP8285
  • SMD Ceramic Antenna
happymodel expresslrs elrs 2.4ghz receiver rx ep2 close up smd ceramic antenna

EP2 receiver with SMD ceramic antenna

happymodel expresslrs elrs 2.4ghz receiver rx ep2 close up processor

EP2 receiver

Size comparison to TBS Crossfire Nano and Frsky R-XSR:

happymodel expresslrs ep1 ep2 pp crossfire nano frsky r-xsr receiver size comparison

Size comparison: Frsky R-XSR, Crossfire Nano, EP1, EP2, PP

The other receiver brand option is BetaFPV’s ELRS Nano RX:

Betafpv Expresslrs Nano Rx Size Compare Happymodel Pp

Left: BetaFPV ELRS Nano RX; Right: Happymodel ELRS PP RX

Why Flash Latest ExpressLRS Firmware?

You should flash the latest firmware to your ELRS TX and RX when you first get them.

Yes, they should already have the ELRS firmware installed in factory, but that might be the old stock firmware (including the firmware files they provide on the product page). Some important features and Binding Phrase are not set. You have to flash firmware to make sure you’ve enabled these settings.

Also ExpressLRS is a constantly evolving firmware, every update includes many bug fixes and improvements. Keeping up with the latest version will protect you from potential issues.

Flash Latest OpenTX

If your OpenTX version is older than 2.3.12, then you will need to flash OpenTX.

Updating OpenTX firmware on your radio allows you to flash the ELRS firmware to the transmitter module from the radio, and get CRSFShot working. If you are new to this, here is a step by step guide on how to flash OpenTX.

I will try to summarize it here.

Get latest OpenTX Companion here, you will need 2.3.12 or newer:

Go to Edit Settings, and select the options you want.

Make sure you have Release (stable) selected in Release Channel so you are not downloading the Nightly build which was required previously.

Click the “Download” button on the left, and click “Check for updates” on the pop up window, “Latest Download Version 2.3.12” should appear. Download firmware and save it somewhere.

Put your radio in bootloader mode.

Click on the button “Flash firmware to radio” on the sidebar, load the firmware we just downloaded and click “Write to TX“.

When flashing is done, unplug USB cable and restart your radio.

If you also get an “SD card content” warning, you should download the new SD Card content here (find the link for your radio, and get the latest file):

Make a backup of your current SD card content first.

Once downloaded the SD card content, plug in the USB cable to your TX16S, and select “USB Storage” to access the SD card inside the radio (or you can just take it out of the radio). Copy the files over to your SD card. If you don’t see the prompted window when you plug in the USB cable, See this post, you should sett that option to “ASK”.

Install ExpressLRS Configurator

The Configurator lets you build and compile firmware for the receivers and transmitter.

Download it here:

For Windows: ExpressLRS-Configurator-Setup-X.X.X.exe

Download ELRS LUA Script

The LUA script allows us to setup ExpressLRS like changing radio link settings, binding receivers to transmitter, and updating TX module firmware over WiFi.

It’s not included in the standard OpenTX SD card content yet, so we have to grab it here and put it in the SD card:

Expresslrs Elrs Configurator Download Lua Script V1.01

When it’s saved, make sure the file has the “lua” extension and not “txt”.

Put it in the radio SD card, in this directory: \SCRIPTS\TOOLS\

Alternative download method: You can also find the LUA script here, sure you right click the link to “ExLRS Lua Script”, and “Save link as”.

Compile and Flash TX Firmware

You can flash the TX module using one of these methods: USB/UART or WiFi. For Happymodel, WiFi is easier, for BetaFPV, USB/UART is easier.

Building ELRS TX Firmware

Use the ExpressLRS Configurator to build the firmware for your TX module.

Expresslrs Elrs Configurator Tx Flash Build Tx Firmware V1.01

Under Device Target, select the brand, and device. In the case of Happymodel, it would be:

  • Happymodel 2.4 GHz
  • HappyModel ES24TX 2400 TX

Let me explain what some of the settings mean.

Binding Phrase – basically like your VTX channel number, you should let people who you fly with know about your binding phrase, so they don’t accidentally use the same phrase and cause problems. It should be a unique phrase that you can remember, and it’s not meant to be a password or secret.

I usually enable the following options for my freestyle quad, you might want different options enabled for your particular application. You can also click on the question mark to learn about them.

In a nutshell:

  • NO_SYNC_ON_ARM: Racing = Enable; Long Range = Disable; Not sure? Just disable it.
  • HYBRID_SWITCHES_8: by disabling it will make all your switches 2-position. If you want to use 3-position switches, enable this, but note that your arm switch (AUX1) would still be 2-position
  • Enable Telemetry: I don’t use telemetry as I have Betaflight OSD

500Hz mode is enabled by default so there is no need to select it anymore.

Flash TX Firmware via WiFI

In the ExpressLRS Configurator, under Flashing method, select WiFi.

When you are ready, click the BUILD button (not Build and Flash).

It can take a few minutes. After the configurator finishes building, a windows should pop up containing the firmware file named “firmware.bin“, copy it to somewhere you can find easily later.

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

happymodel expresslrs elrs 2.4ghz es24tx tx module tx16s bay

On your radio, setup a new model profile, in Model Setup, enable External RF and select CRSF in Mode.

Go to System settings, Tools, and select ELRS. This is the LUA script we grabbed from Github earlier.

After executing ELRS LUA script, you might get a “Version Mismatch” error, just ignore it for now and click “Force to use“.

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

expresslrs elrs lua script

Go to your computer’s WiFi network, and join the network “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. When successful, the browser should return “ok” on the screen.

Flash TX Firmware via USB/UART

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.

I found the BetaFPV TX module to be plug and play, however with the Happymodel TX module, it requires an extra step for UART flashing to work. On the TX module board, there are 6 jumpers, by the default the middle two are bridged. When flashing via USB/UART, you should move the jumpers down to the bottom two pins.

Also make sure to install the cp210x drivers if you haven’t already.

Connect RX 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. 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 PP receiver, you should flash its firmware using Betaflight Passthrough.

For EP1 and EP2, you should be able to do both Betaflight Passthrough and WiFi (since there are both firmware available), but for some reason Passthrough gives me error, but WiFi works just fine for me.

For BetaFPV Nano RX, it supports both WiFi or Betaflight Passthrough.

Open ExpressLRS Configurator, choose the device target based on the brand and receiver type. Make sure to select the exact same firmware version, build options and binding phrase as your TX.

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

Expresslrs Elrs Configurator V1.01 Flash Build Rx Firmware

Flash RX Firmware via Betaflight Passthrough

This will only work if you have configure the RX in Betaflight correctly, see this section for detail.

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 in Betaflight Configurator, but remember to disconnect before proceeding).

Hit BUILD & FLASH. It will take a couple of minutes.

Flash RX Firmware via WiFi

Basically the steps are the same as flashing the TX module via WiFi.

In the ExpressLRS Configurator, hit BUILD and it will take a couple of minutes to compile firmware.bin.

By default, if you power the EP1 and EP2 without turning on the radio, after 20 seconds it will enter WiFi mode (LED will be flashing rapidly to indicate that). The RX’s WiFi signal is a bit weak so place the RX closer to the WiFi antenna to your PC.

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.

Bind RX to TX

If you’ve set the Binding Phrase when flashing TX and RX, the TX will bind to the RX automatically and you won’t have to do anything. When binding is successful, the status LED on the RX should stay solid.

If you didn’t set Binding Phrase, you can manually bind your RX to the TX following these steps:

Bind procedure:

  1. Power on receiver, wait until the LED on the RX is off, immediately turn off the power, and then repeat again the above steps. When the RX is powered on for the third time, the LED will start to double-flash, indicating the RX is in binding mode
  2. Plug in the ELRS TX module to your radio, and enable External RF and select CRSF protocol in Mode. Execute the ELRS lua script in System Settings, Tools. Select [Bind], the LED on the RX module will become solid if bind successfully

Receiver status LED meanings:

  1. PP RX: LED solid means bind successfully or connection established; double-flash means it’s in bind mode; flash slowly means waiting for connection
  2. EP1/EP2 RX: LED solid 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)

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 Configuration tab, under the “Receiver” Section, select “Serial-based receiver“, and select “CRSF” in the second option. Enable “Telemetry” feature. Click “Save”.

Your RX should be working now.

To verify, go 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 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 option “Delete all sensors”, then “Discover new sensors”.

Asterisk flashing means telemetry is updating.

expresslrs telemetry opentx

In Modes tab, you should set AUX 1 as your arm switch (note that it’s now a 2-position switch).

Display LQ and RSSI in OSD

  • 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 0% to 100%)

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

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

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

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

  • low LQ, high RSSI = lots of interference around you
  • high LQ, low RSSI = you are very far away and should be cautious, or if you are close that’s an indicator that maybe something is wrong with your antennas
  • low LQ, low RSSI = reaching the range limit of your gear

Setup Failsafe

Digital protocols typically have a failsafe flag in the packets, so setting “no pulse” in the radio might not actually mean anything (though it won’t hurt to set it). So set it up in Betaflight Failsafe tab.

Make sure to do a props-off failsafe test just to verify that failsafe is actually working (remove all propellers, arm the quad and turn off radio, be ready to unplug if anything goes wrong).

ELRS LUA Script Settings

To Setup ExpressLRS in the LUA script, there are 3 settings: Pkt. Rate (packet rate), TLM Ratio (telemetry ratio) and Power.

Power Settings

The Happymodel ES24TX transmitter module supports up to 250mW, but I believe 100mW is enough for most people. Tests showed that 100mW can do 33km range with stock 2.4GHz gear. And it will most likely outperform your 5.8GHz video link anyway.

But if you insist in using the maximum 250mW output, make sure you install a fan for cooling, I will show you how here. 100mW should be fine without a fan.

Packet Rate

It’s a compromise of range and latency. Higher packet rate has lower latency.

Most of the times I fly within 1Km, so I prefer to use the highest packet rate available to my TX16S, which is 500Hz. Note that 500Hz is not available in all radios, for example the Tango 2 only supports up to 250Hz.

TLM Ratio

TLM Ratio is how often telemetry data get sent. The 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.

More frequent telemetry would cause latency to the control link, but less telemetry is more likely to give you telemetry lost warning. And it depends on your requirement too, if you want more frequent updates then you would want to set a smaller number.

Performance Enhancement Settings

These settings might make your quad fly more locked in. Give them a try anyway. Backup original settings in case you want to go back.

Turn off ADC filtering in radio (System Settings, Hardware).

Enable 500Hz mode in ELRS LUA script.

In Betaflight CLI:

  • set ff_interpolate_sp = on
  • set ff_smooth_factor = 37
  • save

In Receiver tab, RC Smoothing, set:

  • Smoothing Type to Interpolation
  • RC Interpolation to Manual
  • RC Interpolation Interval to 5ms (500Hz), or 10ms (250Hz)


How to Install Cooling Fan

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 SolderI am using a 20x20x6mm 5v fan which fits perfectly in their new module cover. The fan can be bought on Amazon (affiliate link): 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.

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:

Taranis QX7

For Taranis QX7 users, 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:

Official Documentation

For more detailed explanation of the system, visit ExpressLRS official wiki, I barely scratched the surface here:

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

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.


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?

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?

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.

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?

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!!!

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 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 ====================

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.

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?

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:
But it’s only the pins and PCB, you need to get the case 3D printed.