ELRS is a bit of a sleeper - it's been around for a while, but if you're a fixed wing/LOS (line of site) flyer, then you may not have heard of it. You soon will though, especially if you use EdgeTX or OpenTX.
ELRS is a long range RF protocol originally conceived for use with drones. However, thanks to receivers like the RadioMaster ER series, ELRS is now a great option for line-of-sight flying - including F5X and F3X sailplanes.
So what exactly is ELRS, and what do you need to get started? Read on, while I take you on a tour!
What is ELRS?
ELRS stands for 'Express Long Range System'. It's a combination of hardware, software and RF protocols based on LoRa technology. The firmware is open source and is supported in hardware from several maufacturers.
Compared with ACCST and similar protocols, ELRS offers considerably greater range.
ELRS devices (clockwise from left): RadioMaster Ranger module, Pocket tx and ER8GV rx |
Range is not the only benefit, though. ELRS devices can be configured over the air - no physical access is needed. This is great if your receiver is buried away in the fuselage.
Binding is very convenient. Each device is assigned a bind phrase. If the phrases are the same, the devices will bind over the air. This makes it easy to switch to a backup transmitter, or swap out a receiver.
In addition, receivers are available with integrated sensors for altitude and external voltage.
What you will need
To get going with ELRS, you'll need:
- a transmitter with a recent version of OpenTX or EdgeTX
- an ELRS 2.4 GHz RF module for the transmitter. The module may be built-in, or external.
- an ELRS receiver
Modules and receivers are available from several manufacturers including RadioMaster, Matek and HappyModel. Devices from different manufacturers can be mixed and matched.
Configuration tools
Unlike traditional radios, ELRS devices require some configuration. Yes, I know it sounds like a chore... but it's not difficult once you get up to speed with a few tools. These are:
- The ELRSv3 Lua script
- WebUI
- ELRS configurator
Let's look at each in turn:
ELRSv3 Lua script
The ELRSv3 Lua script is the traditional method of configuring ELRS devices. (By 'device' I mean any RF module or receiver.)
The script runs from the TOOLS menu of the transmitter.
EdgeTX tools menu |
The script is used for the following tasks:
- Configuration of the tx module (packet rate, RF power, switch mode, etc.)
- Placing the tx module in WiFi mode
- Configuration of receivers (initial packet rate etc.)
- Placing a receiver in WiFi mode
Configuration of a receiver may be done 'over the air'. The rx doesn't need to be bound beforehand.
Remote configuration of ER8GV receiver |
How to obtain the script
The ELRSv3 script is available from the ELRS website. For more info see ELRS page.
WebUI
A more modern way of configuring an ELRS device is via its WebUI. This is an on-board web page which is accessible using any internet browser via WiFi.
The key benefit is that you can use a keyboard to enter alphanumeric data such as a bind phrase. Since the WebUI is part of the device firmware, there's no additional software to install or keep up to date.
ELRS device being configured via its WebUI |
Enabling WiFi mode
To access a device's WebUI, you first put it WiFi mode. You can do this from the ELRSv3 script, via 'WiFi Connectivity' menu:
ELRSv3 script: WiFi configuration menu |
For receivers you can use an alternative method, which is simply to power up the receiver on its own. After 60 seconds without a connection, the receiver will time out and drop into WiFi mode.
Accessing WebUI in AP mode
Once in WiFi mode, the device acts as a WiFi access point (AP) with network name 'EXPRESSLRS_TX' or 'EXPRESSLRS_RX'. The device also starts up its on-board web server.
To access the WebUI from your mobile or computer, you must first switch from your home network to the device's network via your computer's network settings. Your internet browser should then fire up automatically and display the WebUI web page.
Accessing WebUI via your home WiFi
Instead of creating an access point, an ELRS device can be configured to use your home WiFi network. This removes the need for you to switch networks.
To configure a device to use your home network, first connect to it in AP mode and open the WeUI in the normal way. Next, go the WiFi tab and enter the your home network details (network name and pass code). You can then access the WebUI from any computer/mobile on that network.
Of course, you must be within range of your home WiFi, so this won't work on the field. (Unless your field is your back garden...)
For more info about WebUI, see ELRS page.
ELRS Configurator
The third and final tool is the ELRS Configurator. The name is slightly misleading. The ELRS Configurator is used to (a) remotely build and download the ELRS firmware and (b) update a device with new firmware, via WiFi.
For more info, see ELRS page.
ELRS concepts and terminology
In this section, we'll look some of the key skills for configuring your ELRS devices.
Binding
The recommended method of binding is via a bind phrase. Think up a unique phrase, and make a note of it. Then, using WebUI (via WiFi), assign the same bind phrase in each of your ELRS devices. Any of your receivers will now bind automatically on startup to any one of your transmitters. See also Model Match below.
Model Match
ELRS v3.2 supports model match. This works like model match in ACCST radios, and is designed to prevent crashes as a result of selecting the wrong model.
To use Model match, you first assign a unique 'receiver number' in the transmitter's Model Setup menu.
Setting the receiver number in EdgeTX |
Next, switch on the receiver. Then open the ELRSv3 Lua script, select External Devices, and select the receiver. Finally go to the Model Match field and toggle off and on. The receiver number from the Model Setup menu is copied 'over the air' to the receiver.
From now on, that model memory will only control a receiver with matching receiver number (as well as matching bind phrase).
Packet rate
Packet rate is the number of data packets transmitted per second. It's configured in the transmitter module.
Setting the packet rate |
There are various options for packet rate, each with its own tradeoff between latency and range. 100Hz is recommended by the developers for sailplane use.
Switch mode
The switch mode determines how many channels are transmitted, and the resolution of each channel. Like packet rate, this is set in the transmitter module using the ELRSv3 script.
The switch modes are described on this page. For fixed wing/line of site use, the devs recommend Full Res 8Ch.
Switch mode option in ELRSv3 script |
Dynamic RF power
With Dynamic RF, the transmitter and receiver negotiate the RF power required based on RQly (received link quality) telemetry. If the link is good, the transmitter will transmit at lower power, only ramping up if the received signal quality drops.
Dynamic power depends on telemetry, and telemetry will of course be lost if the receiver is switched off.
- If telemetry is lost while the system is armed, the transmitter will output at maximum power. For this reason, ensure that max power <= 100mW. This is in any case the legal limit in the EU.
- If telemetry is lost while the system is disarmed, then the transmitter will output at last transmitted power which will normally be low since your model will normally be disarmed only when on the ground.
The Dynamic option is set in the ELRSv3 script.
Dynamic RF setting. |
Using EU/LBT firmware
If using the EU/LBT variant of the ELRS firmware, the RF power is limited to 100mW. That's still considerably more than needed for reliable line of sight operation (the precise range will depend on antenna orientation, packet rate, switch mode etc.)
Telemetry Ratio
The telemetry ratio (TLM) is the proportion of telemetry frames (downlink) to all frames (uplink and downlink) in a given time interval. The smaller the ratio, the higher the telemetry rate.
TLM is configured via the ELRS Lua script. Start with the default ratio, and if you need a higher update rate (e.g. for altitude telemetry) then reduce the ratio.
Init 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 longer the delay.
If you always use the same packet rate for a given receiver, you can reduce the delay as follows: run the ELRSv3 Lua script, select Other Devices, select your receiver and set Init Rate to the rate you use. Connection will be virtually instant, if the tx is already running when the rx is powered.
Init Rate option can reduce startup delay |
Signal quality and RSSI alerts
Normally, the built in signal alerts in OpenTX and EdgeTX are based on RSSI values. However when using an ELRS module, the alerts are based on RQly as it's considered a more useful metric. Recommended thresholds are 50% (low) and 20% (critical). The alert thresholds are set in the Telemetry menu.
You can still have RSSI alerts if you wish, however you'll have to roll your own. The thresholds for the alerts will depend on the switch mode and packet rate. For more info see signal health.
Setting the alarm thresholds in EdgeTX |
Setting the failsafe
Failsafe may be set via the ELRSv3 Lua script. Select 'Other Devices', choose the receiver, and then Set Failsafe Pos.
Failsafe option in receiver menu |
The Channel 5 conundrum
CH5 has a special role. In this section, I'll explain why, and how to manage it.
Channel 5 and arming
ELRS reserves CH5 as an 'arming' function. This feature was originally conceived for use with flight controllers. Depending on CH5, the motor would be either armed or disarmed.
Of course, sailplanes don't have flight controllers or even motors, so you might think that the arming state can be ignored. However that's not the case, because arming also impacts the RF link. In particular, Dynamic RF is not fully functional while the system is disarmed.
For these reasons, you should take control of the arming state. Best practice is:
- When on the ground, model should (ideally) be disarmed
- When in the air, it should always be armed.
All this means managing CH5 correctly.
How ELRS interprets CH5
Channel 5 commands above 1500µs (servo centre) are interpreted by the RF module as 'armed', otherwise 'disarmed'. This applies regardless of switch mode, including the full res modes.
You can monitor the arming state by running the ELRSv3 Lua script. The arming state is shown in the top line of the main menu.
CH5: what not to do
So what does this mean for your existing OpenTX or EdgeTX setups?
First do not leave CH5 unassigned - this would generate a centre command which is borderline between armed and disarmed. It would be a matter of luck as to which was selected, or - worse - it might oscillate between the two.
Secondly, do not assign CH5 to a flying surface like elevator or aileron. The servo may work normally, but behind the scenes the arming state will flip-flop as the stick is moved past centre.
Assigning CH5 to the armed function
In this section we'll see how to assign CH5 correctly.
Start with a clean CH5. If CH5 is already assigned to a servo, then it should be swapped with an empty channel. My Channel Changer script makes this easy. For example, if CH7 is not used, swap CH5 with CH7.
There are now three options:
- Option 1: Set CH5 to indicate 'permanently armed'. To do this, create a single mixer for CH5 with source set to 'MAX'. This is the simplest method, but see the note below.
- Option 2: As above, but also provide a method for disarming, for example a long press on a momentary button. This provides a little more flexibility, but may or may not be practical depending on your transmitter, and programming skills.
- Option 3: For electric models, link CH5 to an existing motor arming/cut function. For example, if the arming switch is logical switch L05, set the source of CH5 to 'L05'. This method is okay as long as you don't disarm while in the air.
Dynamic RF note: To avoid unnecessary current drain when the receiver is switched off, make sure to set Max RF power to no more than 100mW if using Dynamic RF. Don't worry, this is well in excess of what is needed for line-of-sight applications (it's also the maximum for EU/LBT firmware).
Remapping the CH5 receiver pins
The sole function of the CH5 data is to indicate the armed state. Does this mean that the CH5 pins on the receiver go to waste? Fortunately not, since you can route another channel's data to use the CH5 pins. The obvious candidate is the channel that you swapped with CH5 earlier.
To remap a pin, you can use either the ELRSv3 script or the receiver's WebUI.
Benefits and drawbacks of ELRS
If you've got this far, congratulations, you're ready to go with ELRS!
Finally, here are some thoughts on ELRS compared with traditional protocols like ACCST:
- Greater range means no more 'RF signal low/critical' alerts
- Dynamic RF power
- Remote configuration
- Based on well-proven open source project
- No need for frequency tuning (cf. MPM with ACCST)
- Lower price hardware
- More complicated configuration
- Changes are needed to legacy setups due to the CH5 requirements.
- Higher current drain of both tx and rx
All in all, ELRS is an exciting development for LoS flyers, and I'm sure we are going to hear more about it in the coming months. These really are interesting times!
6 comments:
Hi Ken, Ch5 is interpreted as the arming state regardless of resolution. Below centre (<1500us) is unarmed and above is armed. So to do it properly it’s still necessary to take control of Ch5 even if the servos are working normally.
Thanks Mike,
I saw the discussion in RC-groups and understood that it's important to take care of.
So I deleted my question before I saw your kind answer.
Thanks
Thanks Mike, very useful.
I understand that ELRS now also works with FrSky X18, X20 with Ethos. Any chance you could update this blog with that in mind including any gotchas.
Any idea if all the telemetry would work (e.g. Vario) with Ethos, I read something about different protocols (CRSF) so am not sure how Ethos would handle that - unlesss it's all taken care of with the code loaded onto the tx?
@Jerry As I understand it, Ethos at supports ELRS via an external ELRS or TWIN module, but I don't have any experience with either.
Great post
Post a Comment