ELRS Issue? Yeah, we get it...

ELRS Issue? Yeah, we get it...

DFWFPV QUICKTIPS! - ELRS

ELRS is awesome. It's great. It's cheap, it's reliable, it's got distance. Binding phrases work great, and I have yet to break a receiver.

However... there is a dark side to ELRS. An evil that presents itself to those unfamiliar with it's joy. Often when setting up a new ELRS build you can hear ghosts of crossfire fans collectively screaming "Just give me a button!".

If you are not very technical or don't have the patience to troubleshoot - elrs may not be for you - but once you understand the basics, it's not that bad. Lets give you some basic tips on how to get your stuff setup.

Hardware

  • Transmitter side, you need either a transmitter (TX) with internal elrs or you'll need an external elrs module.
  • You need an elrs receiver (RX) in the drone.
  • Most elrs systems run on 2.4ghz, so make sure your RX and TX module are the same.
  • Wiring things up is like every other component. The rx wire from the receiver goes to a tx pad on the flight controller, and the tx from the receiver goes the the corresponding rx pad on the flight controller. They have to be on the same UART so look for "TX1/RX1" or "RX3/TX3" etc...
  • This UART number is important when setting up your ports tab later in betaflight.

So you have a transmitter and receiver. You have it wired up properly. Lets get into software...

Software (ELRS)

The software on the chip that runs the show is called firmware. The most important thing to know about elrs firmware is that the major versions of the transmitter firmware and of the receiver firmware have to be the same. So 2.x.x will not speak to 3.x.x. (minor and patch versions can be different)
There are a couple ways to update firmware: Through WIFI with a .bin file, and passthrough. Both method require using the ExpressLRS Configurator tool.

WIFI Method
In ExpressLRS Configurator, choose the Release version, Target information, Flashing Method = WIFI, and options. (Set that BINDING_PHASE now!) and hit BUILD. It will create a zip file. Extract the firmware.bin file from it and save it somewhere. (I send it to my phone. This makes the process easier for me) Do not use the TX firmware on RX or the RX firmware for the TX. (It should fail it you try)

  1. Turn on WIFI
    • On the TX this is done in the ELRS LUA Script menu.
    • On the RX, after being powered on and not connecting to a TX for 60 seconds (default), the light will flash quickly, meaning it's in WIFI mode.
  2. Connect to the WIFI access point. It will be either "expresslrs tx" or "expresslrs rx" and the password for both will be "expresslrs". (This is easiest done on a phone, which is why I mentioned moving the firmware file to your phone)
  3. Open a web browser (if one doesn't automatically open on connection) and go to 10.0.0.1 - This will bring you to the elrs configuration page. Note on top what version of elrs it's running.
  4. Select the "UPDATE" tab, and upload the firmware file you got from the ExpressLRS Configurator.
  5. Profit. (You're done)


EdgeTX Passthrough - Transmitter
I believe this is only for internal modules and you have to have your USB-VCP serial port set to CLI first. Details on this whole process, but that specific item, is listed in the elrs transmitter documentation.

  1. Plug in your powered on radio to USB. When prompted, select "USB Serial (VCP)"
  2. Go through the same ExpressLRS Configurator steps as above - but this time chose EdgeTX Passthrough for the method, and choose the COM port that says "STMicroelectronics" in the manual serial device selection drop down.
  3. Hit the "FLASH" button.
  4. When finished, hit the "DOWNLOAD LUA SCRIPT" button to download the script file that's needed for your radio. This must be placed into the /SCRIPTS/TOOLS folder on your radio's SD card.
  5. Profit


Betaflight Passthrough Method
This will be very similar to the EdgeTX Passthrough for the transmitter

  1. Connect your drone to the computer. DO NOT have betaflight open. If you do, the Configurator can't use that USB port.
  2. Go through the same ExpressLRS Configurator steps as above - but this time chose BetaflightPassthrough for the method, and choose the COM port for your connected drone in the manual serial device selection drop down.
  3. Hit the "FLASH" button.
  4. Profit


Congrats! You've now installed your hardware and assured everything is up to date, and since you set your bind phrase, your transmitter and receiver should be talking to each other. Turn your transmitter on before the receiver (or it will not connect) and verify they are talking to each other by looking for a "C" in the top right corner of the ExpressLRS script in your radio.

Time to make the receiver talk to your flight controller.

 

Software (Betaflight)

There are really only a couple things you need to check in BF at this point.
  1. On the Receiver tab, make sure Receiver Mode is set to "Serial (via UART)", Serial Receiver Provider is set to "CRSF", and now is also a good time to turn on Telemetry if you want your radio to report things like battery voltage and signal strength. Hit Save.
  2. On the Ports tab, you need to check the "Serial Rx" selection for the UART you wired your receiver to in the hardware section. So if you wired it to the TX2 and RX2 pads, check off "Serial Rx" on UART2. Hit Save and Reboot.
  3. Go back to the Receiver tab and check it is showing your stick movements.
  4. You're done. There is no #4. Just go setup your switches in the modes tab.

Tips and Tricks, Gotchas, and FAQ:

Bought a new quad and need to update the binding phrase?
Wait for the RX to go into wifi mode and connect to the config page at 10.0.0.1. You can update the binding phrase from there. (Verify it's on the same major version as your transmitter!)

Don't have a binding phrase on your transmitter?
First of all, WHY NOT? Go to the config page on your transmitter and get that setup right now. BUT if you don't listen to me...
Plug in your rx three times. On the third time, keep it plugged in. Then on your transmitter, go into the expressLRS LUA script and select the bind option. It should bind and remember that rx. But really... go setup a binding phrase.

tx and rx connect, but nothing moving in betaflight?
Check Receiver mode, Receiver Provider, ports tab. If all that is set correctly, open up the drone and verify it's wired properly. (rx to tx and tx to rx for almost all flight controllers)
If that doesn't work, I would resolder to a different uart as a test. If THAT doesn't do it, swap the receiver or drone to test if it's an rx issue or fc issue.

Wifi on the rx turns on, but I can't connect to it from your phone, or the page wont come up, or wifi disconnects?
I've had this issue occasionally with my iPhone. What works for me is to go into my phones wifi settings and Forget the "expressLRS RX" network. Usually after I do that and reconnect it works fine. This happens more when connecting to different RXs - so I think it stores some form of cache from the previous one that doesn't like being used on another.

Why CRSF Provider? I thought this was ELRS!
Yes, it is ELRS. However, they didn't feel like reinventing a wheel and piggybacked off some of the protocols of CRSF. So BF can still treat the signal as CRSF, even if the transmission protocol was done via ELRS. 


Still having issues?

Leave a comment below if we missed something, or share your own elrs tips! If you're still not up and running, reach out on our socials for some extra help.

Back to blog

Leave a comment

Please note, comments need to be approved before they are published.