Set up ELRS between controller and receiver
Brief introduction to ELRS
Express Long Range System (ELRS) is a high refresh, low latency, long-range radio control link that is now commonly used as the drone telemetry protocol. ELRS is widely supported by many radio controllers or receivers because the protocol is completely open-source plus it is good. Despite so many pros of ELRS, the fact it is open-source determines that it is a bit technically difficult to use.
This article is going to show you how to set up the ELRS between a radio controller called Radiomaster TX12 MarkII with a radio receiver Radiomaster RP1. The following procedures will be similar to setting up any radio transmitter and radio receiver, but you may need to read the official ELRS website to check out the subtle difference in setting up different devices.
Peek into Our Device
Flash Latest Version of ELRS Firmware
Step1: Download ExpressLRS Configurator
Go to ExpressLRS Github: ExpressLRS
Go into ExpressLRS_Configurator Repository
On the right-hand side, find the release of the configurator you want to download. Click it.
Follow the documentation in the readme file, and download the appropriate package according to your operating system.
Open the ExpressLRS Configurator
Step2: Flash the firmware to TX12
The configurator should look similar to this if you uncollapse the releases:
Pick the release you want to flash. Commonly, we pick the latest version.
I checked the “show pre-release“ because the 3.3-RC1 which is the first release that supports SBUS receiver output only shows up when the show pre-release is checked.
2. We select “RadioMaster 2.4 GHz“ for Device category, “RadioMaster TX12 2400 Tx“ for Device.
After that, we are facing a fork in the road. There are three flashing methods the configurator provides to you. The recommended flashing method is EdgeTxPassthrough and WIFI
3. Download LUA script
The LUA script needs to be updated on the SD card of the radio controller. This is especially important when you switch the firmware from 2.X.X to 3.X.X or vice versa.
The LUA script should be called elrsV3. This file should be stored in the directory:
/SCRIPTS/ TOOLS/elrsV3.lua
4.A. If we choose to flash through EdgeTxPassthrough
Here are the options you probably want to be selecting.
In the regulatory domains, for most cases, you want to keep “REGULATORY_DOMAIN_ISM_2400“. This option works for the most region of the world, whereas the other option only works for certain regions in the world such as Europe.
The binding phrase is important! The devices with the same binding phrase would automatically connect to each other without further button presses. It also guarantees you don’t bind with the devices you don’t want to connect. Very handy to use.
Extra data, TLM_REPORT_INTERVAL_MS. Idk what it is, leave that box.
AUTO_WIFI_ON_INTERVAL. Keep it checked. It means if the connection is not established within a certain period of time, it automatically switches into wifi mode, where you can flash the firmware to the device. I will elaborate more on the wifi mode later.
HOME_WIFI. I don’t think this is necessary. You can connect your device to home wifi, but without home wifi, even if you are in the flight test ground, you are also supposed to be able to update the firmware without issue.
Connect the TX12 to your computer through a cable. When you plug the type-c into the controller, it asks you to select a mode. You should choose “USB Serial“ for uploading firmware purposes.
Back to the configurator, select the correct com port the USB is connected to.
Finally, hit BUILD&FLASH, and dada, the firmware is flashed.
We can check if we have successfully flashed the firmware by going into SYS → inside TOOL find ExpressLRS → scroll to the bottom to see the version of the firmware
4.B. Flash through WIFI
WIFI is an easier flashing method compared to edgeTX, but sometimes the firmware can’t flash completely with this method. EdgeTx has a stronger flash than WIFI.
First, select WIFI as the flashing method.
In the device options, configure the device the same way as in the EdgeTx.
Then, instead of BUILD&FLASH, we select only BUILD this time.
The first-time building might take a while. After building, a directory would pop up. After building, my folder looks like this
The “firmware.bin“ and “RadioMstr_TX12_3.3.0-RC1.bin“ are the build file we are looking for. They are the same, but I would usually move the “RadioMstr_TX12_3.3.0-RC1.bin“ onto my desktop just because this file’s name is more descriptive and I put it on the desktop so it is easier to access.
The second step is to turn on the wifi connectivity of the TX12.
Start from main page → SYS → inside the TOOLs find ExpressLRS → WIFI Connectivity → Enable Wifi.
After the elrs tx wifi is turned on. You can connect to the elrs on your computer. Password is expresslrs
Update the the firmware by choosing “RadioMstr_TX12_3.3.0-RC1.bin“, and click UPDATE.
DADA, updating the firmware through wifi is done.
If you fail to upload the firmware, maybe you want to check out the official website: Internal RadioMaster - ExpressLRS
Step3: Flash the Firmware to RP1
Same as updating the firmware to tx12, there are also two options when updating the firmware for rp1.
Flash through UART or WIFI
Option1: UART
In this case, you probably want to grab a ttl-uart cable and properly connect it with rp1.
To flash with UART, the BOOT pad needs to be soldered with GND.
Connect the cable to the computer.
In the ExpressLRS Configurator, set the Target to “RadioMaster 2.4 GHz“ and “RadioMaster RP1/2 2400 Tx“.
Properly set up the parameters. Remember to set the binding phrase the same as the TX device.
BUILD&FLASH and the thing is done.
Option2: WIFI
WIFI is a more recommended method to flash the RX device. The BOOT pad doesn’t need to be soldered with GND.
BUILD the target with the configurator, and save the “RM_RP_2400RX-3.3.0-RC1.bin“ somewhere accessible.
Power up the rp1. Wait for 60 seconds until the led light blinks from a slow frequency to a fast frequency. The fast blink indicates the rp1 enters the wifi mode, and we are able to find the wifi from our computer.
With a release version higher than 3.3, the user is allowed to set SBUS as the receiver output protocol, which is also one of the major setups I wish to do.
And then select the “RM_RP_2400RX-3.3.0-RC1.bin“ file, and update the firmware. EZ
Woohoo! Firmware update accomplished.
If the firmware update doesn’t succeed. This page might help: RadioMaster RP - ExpressLRS
Turn on TX12 Internal RF
Before we make the connection, we want to make sure the internal/external rf is on in the TX12.
Main Page → SYS → PAGE> → Until HARDWARE page → scroll down and find the internal rf option → Set Type to be CRSF → Baudrate to be 400k
Main Page → MDL → PAGE> → SETUP → Scroll down and find the internal rf → Set mode to CRSF
All the internal rf settings have been turned on.
Binding TX /w RX
Binding means connecting the radio transmitter with the radio receiver.
With binding phrases, this binding is easy-peasy. Nothing needs to be done, they automatically connect to each other when both power on. But the wrong configuration on the binding phrase would cause the binding failure. If they don’t connect, double check if both devices have the same binding uid on the elrs web ui.
Without binding phrases, there are certain procedures that users have to go through.
In the TX12 main page → SYS → in TOOLS find ExpressLRS → scroll down and find bind
Don’t hit the bind option yet, we need to turn the receiver to binding mode first
Power cycle the rp1 for three times, which means power rp1 on and off quickly three times. You should see the led light blink really fast twice in a loop. This indicates the receiver is ready for binding.
Hit the bind option on TX12. When you see solid light on rp1 and “C“ at the top right corner of the TX12 screen, that means the connection was made
Notice that if the receiver has a binding phrase set, it won’t enter the manual binding mode.
Model Match
The model match provides the pilot with the option of which receiver the pilot wants to connect to.
Imagine a telemetry system where every device of the system has the same binding phrase which guarantees that no telemetry device from outside of the system would get connection by mistake. There is a radio transmitter in hand and several drones with different receivers. If we set each receiver with a unique receiver number that we recognize, then by changing the configuration on the radio transmitter, we are selecting the receiver it is talking to and ultimately the drone we want to fly.
In our case, we want to set both TX12 and RP1 with a receiver number 30.
On the receiver side, the model match can be enabled and changed in the Model tab from the web UI. (Remember the web UI can be opened through the ELRS wifi) We should enable the model match, and change the receiver number to 30.
On the transmitter side, we need to change the Receiver to 30 on the SETUP page.
Then, go to ELRS page and turn the model match on.
The TX and RX should automatically connect to each other.
Ending
Hopefully, you could know how to flash and set up the telemetry device from reading this page. If you get stuck by any weird issue during the process, always check out the ExpressLRS website. It has tons of useful and detailed instructions on how to use their products. The people in the ExpressLRS Discord community are also very helpful and active. Worth considering consulting them when the website couldn’t solve the issue.
Happy ELRS!
Resources:
Github: GitHub - ExpressLRS/ExpressLRS: ESP32/ESP8285-based High-Performance Radio Link for RC applications
Website: Getting Started - ExpressLRS
Discord: Join the ExpressLRS Community Discord Server!
Online Flasher when you want to erase the flash: ExpressLRS Web Flasher