Tuesday 8 August 2023

An introduction to ELRS - plus how to deal with Channel 5

If you haven’t heard of ELRS, then you soon will - it’s an interesting long-range protocol which is finally coming of age. 

ELRS was originally designed for use with flight controllers. 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.

Compared with ACCST and similar protocols, ELRS offers considerably greater range.   

Ranger ELRS module, Pocket tx and ER8GV rx
ELRS devices (clockwise from left):
RadioMaster Ranger module, Pocket tx and ER8GV rx

ELRS devices can be configured using a web browser using WiFi. No physical access is needed - even when binding. This is great if your receiver is buried away in the fuselage. Even better, you can switch to your backup transmitter without rebinding - perfect for competition flyers.

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. You can generally mix and match devices from different manufacturers.

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 an RF module or receiver.)

The script runs from the TOOLS menu of the transmitter.

System menu showing script options
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 (binding is a separate operation, best done using the WebUI, see below).

Receiver being configured OTA
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 passphrases. Also, since the WebUI is part of the device firmware, there's no additional software to install or keep up to date.

Screenshot of WebUI
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. Your internet browser should then fire up automatically and display the WebUI. 

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.

I have not had to use the configurator yet, so I won't discuss this further for now.

For more info, see ELRS page.


Screenshot of ELRS configurator
ELRS Configurator

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 passphrase. Think up a unique passphrase, and make a note of it. Then, using WebUI, enter the same passphrase in each of your ELRS devices (tx modules and rx's). Any of your receivers will now bind automatically on startup to any one of your transmitters. See also Model Match below.

The great thing is that you don't need physical access to the receiver. 

Packet rate

Packet rate is the number of data packets transmitted per second. It's configured in the transmitter module. 

Packet rate option in ELRSv3 menu
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 glider use, Full Res 8Ch is the one recommended by the devs for line-of-sight use.

Switch mode option in ELRSv3 script
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. 

The Dynamic option is set in the ELRSv3 script.

Dynamic RF option in ELRSv3 Lua 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.

The receiver config page highlighting Init Rate
Init Rate option can reduce startup delay

RF signal low/critical alerts 

When using an ELRS module, both OpenTX and EdgeTX use RQly telemetry (instead of RSSI) for the low/critical alerts. Recommended thresholds are 50% (low) and 20% (critical).  The alert thresholds are set in the Telemetry menu.

RF alert menu in EdgeTX
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.

ELRS receiver configuration menu
Failsafe option in receiver menu

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. 

Model Setup menu in EdgeTX
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 passphrase).

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. For example certain settings cannot be changed while the system is armed, and 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 arm state by running the ELRSv3 Lua script. The armed 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. So if CH5 is already assigned to a servo, then it should be swapped with an empty channel. My Channel Changer script makes this easy. So for example, if CH7 is not used, swap CH5 with CH7. Make sure to choose a target channel (CH7 in this example) which is accessible in the receiver, as we'll use it later.

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:

Benefits
  • 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
Drawbacks
  • 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!

Links

5 comments:

Kenth said...
This comment has been removed by the author.
RC Soar said...

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.

Kenth said...

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

Jerry Stone said...

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?

RC Soar said...

@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.