<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://robotcombatwiki.com/index.php?action=history&amp;feed=atom&amp;title=ExpressLRS_and_EdgeTX_Setup</id>
	<title>ExpressLRS and EdgeTX Setup - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://robotcombatwiki.com/index.php?action=history&amp;feed=atom&amp;title=ExpressLRS_and_EdgeTX_Setup"/>
	<link rel="alternate" type="text/html" href="https://robotcombatwiki.com/index.php?title=ExpressLRS_and_EdgeTX_Setup&amp;action=history"/>
	<updated>2026-10-17T23:59:56Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://robotcombatwiki.com/index.php?title=ExpressLRS_and_EdgeTX_Setup&amp;diff=1074&amp;oldid=prev</id>
		<title>RobotRobot: New page: step-by-step ELRS + EdgeTX setup for combat robots</title>
		<link rel="alternate" type="text/html" href="https://robotcombatwiki.com/index.php?title=ExpressLRS_and_EdgeTX_Setup&amp;diff=1074&amp;oldid=prev"/>
		<updated>2026-10-17T17:01:38Z</updated>

		<summary type="html">&lt;p&gt;New page: step-by-step ELRS + EdgeTX setup for combat robots&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;'''ExpressLRS''' (ELRS) and '''EdgeTX''' are now a common radio setup for combat robots. Radios such as the RadioMaster Pocket, Zorro, Boxer, TX16S and MT12, Jumper T-Lite and T-Pro, and BetaFPV LiteRadio 3 Pro come in ELRS versions running EdgeTX.[https://www.expresslrs.org/quick-start/transmitters/tx-prep/] They are cheap and very flexible, but nothing is set up for a robot out of the box. This page walks through a typical setup with an ELRS '''PWM receiver''' (the kind with servo-style output pins) driving your [[ESCs]]. For general radio background see '''[[Radios]]''', and for choosing hardware see the '''[[Radio List]]'''.&lt;br /&gt;
&lt;br /&gt;
'''Test with the robot blocked up or in a test box, and with the weapon locked or its belt removed, until the failsafe has been checked.''' See '''[[Safety]]''' and '''[[Failsafes]]'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==What ELRS and EdgeTX are==&lt;br /&gt;
* '''EdgeTX''' is the open-source operating system on the transmitter. It handles models, mixing, rates, switches and screens. As of October 2026 the current stable release is 2.12.x.[https://github.com/EdgeTX/edgetx/releases] The '''[https://manual.edgetx.org/ EdgeTX User Manual]''' has separate sections for color-screen and black-and-white radios.&lt;br /&gt;
* '''ExpressLRS''' is the open-source radio link: the RF module inside (or plugged into) the transmitter, and the receiver in the robot. EdgeTX talks to the ELRS module using the '''CRSF''' protocol, so ELRS shows up as &amp;quot;CRSF&amp;quot; in EdgeTX menus.[https://manual.edgetx.org/color-radios/model-settings/model-setup/internal-external-rf]&lt;br /&gt;
* ELRS settings (packet rate, power, receiver outputs and failsafe) are changed with the '''ELRS Lua script''' on the radio, or through a web page served by the module or receiver over WiFi.&lt;br /&gt;
&lt;br /&gt;
'''All-in-one boards:''' the popular Malenki and Repeat Robotics Catalyst boards have FlySky '''AFHDS 2A''' receivers built in, not ELRS. An ELRS-only radio can't drive them. Either use a separate ELRS PWM receiver with your ESCs, or buy a radio with a 4-in-1 multi-protocol module that can talk AFHDS 2A. As of 2026 there's no widely available all-in-one robot board with an ELRS receiver built in. See the '''[[Radio List]]'''.&lt;br /&gt;
&lt;br /&gt;
'''Receivers:''' small ELRS PWM receivers such as the RadioMaster ER4 (4 outputs) and ER3C-i (3 outputs, built-in ceramic antenna, voltage telemetry) cost about $15&amp;amp;ndash;17 from RadioMaster as of October 2026.[https://www.radiomasterrc.com/products/er4-2-4ghz-elrs-pwm-receiver][https://radiomasterrc.com/products/er3c-i-2-4ghz-elrs-pwm-receiver] Make sure you buy a PWM receiver, not a serial (CRSF) receiver meant for a drone flight controller.&lt;br /&gt;
&lt;br /&gt;
==Step 1: Check and match firmware versions==&lt;br /&gt;
'''The first number of the ELRS version must match''' on the transmitter module and the receiver. For example, 3.x talks to 3.x, but a 3.x receiver won't connect to a 4.x transmitter at all, and no binding method will fix it.[https://www.expresslrs.org/quick-start/binding/] ELRS 4.0 (February 2026) was a new major version that doesn't work with 3.x, and 4.1.0 is the current release as of October 2026.[https://github.com/ExpressLRS/ExpressLRS/releases/tag/4.0.0][https://github.com/ExpressLRS/ExpressLRS/releases/tag/4.1.0] The 3.6 line was still getting bug-fix releases in 2026, so new gear may ship with either.[https://github.com/ExpressLRS/ExpressLRS/releases]&lt;br /&gt;
&lt;br /&gt;
* '''Check the transmitter:''' run the ELRS Lua script. The version line near the bottom shows the version, the regulatory domain and a code.[https://www.expresslrs.org/quick-start/transmitters/lua-howto/] The regulatory domain must also match (for example, FCC/ISM 2.4 GHz vs EU &amp;quot;LBT&amp;quot; versions; some receivers are sold in both).&lt;br /&gt;
* '''Check the receiver:''' once connected, the Lua script shows it under '''Other Devices'''. If it won't connect, put it in WiFi mode and look at its web page.[https://www.expresslrs.org/quick-start/receivers/firmware-version/]&lt;br /&gt;
* '''Update:''' use the '''[https://github.com/ExpressLRS/ExpressLRS-Configurator/releases ExpressLRS Configurator]''' (a desktop app) or the '''[https://expresslrs.github.io/web-flasher/ Web Flasher]'''.[https://www.expresslrs.org/quick-start/installing-configurator/] Pick the release, your exact device target and regulatory domain, and (optionally) a binding phrase, then build. Most ELRS PWM receivers and internal RadioMaster modules are updated over WiFi: the device makes a hotspot called &amp;quot;ExpressLRS RX&amp;quot; or &amp;quot;ExpressLRS TX&amp;quot; (password &amp;lt;code&amp;gt;expresslrs&amp;lt;/code&amp;gt;), and you upload the file at &amp;lt;code&amp;gt;http://10.0.0.1/&amp;lt;/code&amp;gt;.[https://www.expresslrs.org/quick-start/webui/] Follow the ELRS page for your exact hardware, since a few older modules need extra steps.[https://www.expresslrs.org/quick-start/transmitters/rm-internal/]&lt;br /&gt;
* '''Update the Lua script too.''' Copy &amp;lt;code&amp;gt;elrs.lua&amp;lt;/code&amp;gt; into the radio's SD card folder &amp;lt;code&amp;gt;SCRIPTS/TOOLS&amp;lt;/code&amp;gt;. When moving to 4.x, delete the old &amp;lt;code&amp;gt;elrsV3.lua&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;elrsV3.luac&amp;lt;/code&amp;gt; so you don't get two ExpressLRS entries.[https://github.com/ExpressLRS/ExpressLRS/releases/tag/4.0.0]&lt;br /&gt;
* '''EdgeTX itself''' can be updated with '''[https://buddy.edgetx.org/ EdgeTX Buddy]'''. ELRS needs at least EdgeTX 2.4, and the 4.x &amp;quot;arm using a switch&amp;quot; option needs 2.11 or newer.[https://www.expresslrs.org/quick-start/transmitters/tx-prep/]&lt;br /&gt;
&lt;br /&gt;
==Step 2: Bind==&lt;br /&gt;
ELRS has two ways to pair a transmitter and receiver:[https://www.expresslrs.org/quick-start/binding/]&lt;br /&gt;
* '''Binding phrase (recommended):''' enter the same phrase in the Configurator (or the web page) when you flash both devices, and they connect automatically on power-up. The phrase isn't a password; it just keeps your link from colliding with other people's. Use something unique (ELRS suggests 8+ characters, such as your team name), not &amp;quot;robot&amp;quot; or &amp;quot;1234&amp;quot;. From ELRS 4.1 you can also set the phrase from the radio with a Lua tool.[https://github.com/ExpressLRS/ExpressLRS/releases/tag/4.1.0]&lt;br /&gt;
* '''Button binding:''' put the receiver in bind mode (power it on and off three times, or hold its button about 1.5 seconds on 3.4 and newer). The LED double-blinks. Then select '''[Bind]''' in the Lua script. A solid LED means bound.&lt;br /&gt;
&lt;br /&gt;
Check the connection in the Lua script: a '''C''' in the top-right corner means connected.&lt;br /&gt;
&lt;br /&gt;
==Step 3: Create a model in EdgeTX==&lt;br /&gt;
Make a '''separate model for each robot'''. Long-press '''MDL''' to open the model list and create a new model. Then, in Model Setup:&lt;br /&gt;
* '''Name''' the model after the robot.&lt;br /&gt;
* '''Internal RF:''' set it to CRSF/ELRS and give it a unique '''Receiver No.''' (used for Model Match, below).&lt;br /&gt;
* '''Pre-start checks:''' turn on switch warnings so the radio complains if the weapon switch isn't off when you load the model or power on.[https://manual.edgetx.org/color-radios/model-settings/model-setup/preflight-checks]&lt;br /&gt;
&lt;br /&gt;
Almost all robot setup happens on three screens: '''Inputs''' (rates and expo), '''Mixes''' (which controls drive which channels) and '''Outputs''' (reversing, end points and subtrim), in that order. Team Run Amok's '''[https://runamok.tech/RunAmok/EdgeTX.html EdgeTX programming guide]''' walks through each one with screenshots from a Zorro, and is the best companion to this page.&lt;br /&gt;
&lt;br /&gt;
==Step 4: Drive mixing==&lt;br /&gt;
EdgeTX has no ready-made &amp;quot;elevon&amp;quot; mix, so you build one yourself. For single-stick (arcade) drive, with the left drive ESC on CH1 and the right on CH2, the Run Amok guide uses:[https://runamok.tech/RunAmok/EdgeTX.html]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Channel !! Mix lines&lt;br /&gt;
|-&lt;br /&gt;
| CH1 (left drive) || Ail at +100, plus Ele at +100&lt;br /&gt;
|-&lt;br /&gt;
| CH2 (right drive) || Ail at +100, plus Ele at &amp;amp;minus;100&lt;br /&gt;
|}&lt;br /&gt;
* '''Tank steering:''' skip the mix and put one stick axis on each channel (for example, CH1 = Thr, CH2 = Ele). On most Mode 2 radios the throttle stick doesn't spring back to center, so check your radio's manual for converting it.&lt;br /&gt;
* If your dual ESC has '''its own mixing''', turn mixing off in either the ESC or the radio, never both. With both on, forward drives only one motor.[https://runamok.tech/RunAmok/EdgeTX.html]&lt;br /&gt;
* If the robot spins when you push forward, or turns the wrong way, use Run Amok's '''[https://runamok.tech/RunAmok/mixfix4.html Mixer Fixer]'''. More background is on '''[[Radios/Mixing]]'''.&lt;br /&gt;
&lt;br /&gt;
==Step 5: Reversing, rates and expo==&lt;br /&gt;
* '''Reversing:''' on the Outputs screen, set a channel's '''Direction''' to INV to reverse it.[https://manual.edgetx.org/color-radios/model-settings/inputs-mixes-and-outputs/outputs]&lt;br /&gt;
* '''Invert switch:''' for a robot that drives upside down, add a second Ele line on the Inputs screen with weight &amp;amp;minus;100, and make the first line active only when a switch is up. The Run Amok guide shows exactly how.[https://runamok.tech/RunAmok/EdgeTX.html]&lt;br /&gt;
* '''Dual rates:''' lower the Ail '''weight''' on the Inputs screen (50&amp;amp;ndash;70% is a common start for steering). Add a second line on a switch to get full rate back.&lt;br /&gt;
* '''Expo:''' also set on the Inputs screen. Positive expo softens the stick near center for finer control.[https://manual.edgetx.org/color-radios/model-settings/inputs-mixes-and-outputs/inputs]&lt;br /&gt;
* '''End points''' (Min/Max on Outputs) limit how far a servo travels, which is handy for lifters. See '''[[Servos]]'''.&lt;br /&gt;
&lt;br /&gt;
==Step 6: Weapon on a switch, stick or slider==&lt;br /&gt;
* '''On a switch:''' on the Mixes screen, set the weapon channel's source to a switch. A 3-position switch gives &amp;amp;minus;100 / 0 / +100. On a forward-only weapon ESC, that's off / about half / full.&lt;br /&gt;
* '''On the throttle stick or a slider''' for proportional control. Many builders put the weapon on CH3 (the non-centering throttle stick on Mode 2), because ELRS's default failsafe for output 3 is already low throttle (see below).&lt;br /&gt;
* '''Avoid CH5 for the weapon.''' In the normal switch modes CH5 (AUX1) is the 1-bit &amp;quot;arm&amp;quot; channel and only has two positions.[https://www.expresslrs.org/hardware/pwm-receivers/] Use CH6 or higher, or map a different input channel to the output pin in the receiver's Output Mapping.[https://www.expresslrs.org/quick-start/transmitters/lua-howto/] AUX channels have lower resolution than CH1&amp;amp;ndash;4. If you need more than four smooth proportional channels, use a &amp;quot;Full&amp;quot; packet rate (100Hz Full or 333Hz Full).[https://www.expresslrs.org/software/switch-config/]&lt;br /&gt;
&lt;br /&gt;
==Step 7: Packet rate, telemetry and power==&lt;br /&gt;
Arenas are small, so range is rarely the problem, but a metal chassis and a crowded 2.4 GHz band at events do cut signal. Higher packet rates mean lower latency but less sensitivity.[https://www.expresslrs.org/quick-start/transmitters/lua-howto/]&lt;br /&gt;
* A mid-range rate such as 150Hz or 250Hz is a sensible default for a robot. Use 100Hz Full or 333Hz Full if you need extra full-resolution channels. Very fast rates (500Hz, F1000) gain little for driving.&lt;br /&gt;
* '''Telem Ratio''' &amp;quot;Std&amp;quot; is fine. Telemetry lets receivers such as the ER3C-i report battery voltage.&lt;br /&gt;
* '''Change packet rate only with the robot disabled.''' Changing it forces a disconnect.[https://www.expresslrs.org/quick-start/transmitters/lua-howto/]&lt;br /&gt;
* Place the antenna as described on '''[[Radios]]''' (near a non-metal panel or opening).&lt;br /&gt;
&lt;br /&gt;
==Step 8: Set and test the failsafe==&lt;br /&gt;
'''This step is required.''' SPARC rules require all motion to stop on signal loss.[https://sparc.tools/SPARC_Robot_Construction_Specifications_v1.7.pdf] ELRS failsafe is set '''in the receiver''', not in EdgeTX; the EdgeTX CRSF settings have no failsafe option.[https://manual.edgetx.org/color-radios/model-settings/model-setup/internal-external-rf]&lt;br /&gt;
&lt;br /&gt;
A PWM receiver goes into failsafe after one second without a valid packet (or right away if link quality drops to zero). '''By default every output is set to 1500&amp;amp;micro;s (center) except output 3, which is 988&amp;amp;micro;s (low).'''[https://www.expresslrs.org/hardware/pwm-receivers/] Center stops a bidirectional drive ESC, but '''a forward-only weapon ESC on any output other than 3 would get about half throttle.''' The receiver sends no pulses at all at power-up until it hears the transmitter.&lt;br /&gt;
&lt;br /&gt;
Each output has three failsafe modes in the receiver's web page (Connections tab):[https://github.com/ExpressLRS/ExpressLRS/blob/master/src/html/src/pages/connections-panel.js]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Mode !! What it does !! Safe for robots?&lt;br /&gt;
|-&lt;br /&gt;
| '''Set Position''' (default) || Goes to a fixed pulse width you choose || '''Yes''', if the value really means &amp;quot;stopped&amp;quot;: center for bidirectional drive, low for a forward-only weapon. The stored value ignores the receiver's own Invert setting.&lt;br /&gt;
|-&lt;br /&gt;
| '''No Pulses''' || Stops sending a signal || Only if the ESC stops when the signal disappears. Many do, but test it.&lt;br /&gt;
|-&lt;br /&gt;
| '''Last Position''' || Keeps sending the last command || '''No.''' Never use it for drive or weapons.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Two ways to set it:'''&lt;br /&gt;
# '''Lua script (simplest):''' finish mixing and trims first. Center the drive stick, put the weapon switch or stick in its off position, open the Lua script, go to '''Other Devices''' &amp;amp;rarr; your receiver, and press '''[Set Failsafe Pos]'''. This stores the current position of every channel.[https://www.expresslrs.org/quick-start/transmitters/lua-howto/]&lt;br /&gt;
# '''Web page:''' put the receiver in WiFi mode (Lua &amp;amp;rarr; WiFi Connectivity &amp;amp;rarr; Enable RX WiFi), connect to its hotspot, open &amp;lt;code&amp;gt;http://10.0.0.1/&amp;lt;/code&amp;gt;, and set each output's mode and value directly.[https://www.expresslrs.org/quick-start/webui/]&lt;br /&gt;
&lt;br /&gt;
Then '''test it''' as described on '''[[Failsafes]]''': with the robot blocked up and drive and weapon running at low speed, switch the transmitter off. Everything must stop and stay stopped. Re-test after any firmware update, rebind, receiver swap, or change to trims, mixing or outputs.&lt;br /&gt;
&lt;br /&gt;
==Multiple robots and Model Match==&lt;br /&gt;
With a binding phrase, '''every receiver flashed with your phrase connects to your radio, whatever model is selected.''' If two of your robots are on at once, both will respond. Driving a robot with the wrong model's mixing is also a common pit accident.&lt;br /&gt;
&lt;br /&gt;
'''Model Match''' fixes this. Give each EdgeTX model its own Receiver No., power up that robot with its model selected, and set '''Model Match: On''' in the Lua script. That receiver will then only output signals when its own model is selected; with any other model it connects but stays silent.[https://www.expresslrs.org/software/model-config-match/] Packet rate, telemetry ratio and power are also stored per Receiver No., so each robot can have its own.&lt;br /&gt;
&lt;br /&gt;
==Common problems==&lt;br /&gt;
''See also [[Troubleshooting]].''&lt;br /&gt;
* '''Won't bind or connect:''' almost always a '''major version mismatch''' (3.x vs 4.x) or a different regulatory domain. Check both versions first.[https://www.expresslrs.org/quick-start/binding/] A receiver with a binding phrase on firmware older than 3.4 won't enter button-bind mode.&lt;br /&gt;
* '''Lua script stuck on &amp;quot;Loading...&amp;quot;:''' the model's RF module isn't set to CRSF/ELRS, or the baud rate is too low.[https://www.expresslrs.org/quick-start/transmitters/lua-howto/]&lt;br /&gt;
* '''Receiver LED blinking fast, robot dead:''' the receiver has gone into '''WiFi mode'''. This happens automatically if it's powered for a while (about 60 seconds by default) without hearing the transmitter, for example a robot left on in the pits.[https://www.expresslrs.org/quick-start/receivers/firmware-version/] Power-cycle the robot with the transmitter on. The &amp;quot;Auto On&amp;quot; interval can be changed on the receiver's web page.&lt;br /&gt;
* '''Connected but no response, LED three quick blinks:''' '''Model Mismatch'''. Select the right model, or turn Model Match off and on again to re-pair it.[https://www.expresslrs.org/quick-start/binding/]&lt;br /&gt;
* '''Servo jitter:''' ESP8285-based PWM receivers generate PWM in software, and ELRS 3.6.4 and 4.1.0 included fixes for this, so update first.[https://github.com/ExpressLRS/ExpressLRS/releases/tag/4.1.0] Also check for a weak or noisy [[Battery eliminator circuit (BEC)|BEC]], and set the output rate to what the servo supports (50Hz is the safe default).&lt;br /&gt;
* '''&amp;quot;Telemetry Lost&amp;quot; callouts:''' these mean some telemetry packets were missed, not that you've failsafed. ELRS 4.1 reduced them.[https://github.com/ExpressLRS/ExpressLRS/releases/tag/4.1.0]&lt;br /&gt;
* '''Robot hums, creeps, or the controls are reversed:''' see the trim and mixing advice on '''[[Radios]]''', then '''redo the failsafe'''.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* '''[[Radios]]''', '''[[Radios/Mixing]]''' and '''[[Radio List]]'''&lt;br /&gt;
* '''[[Failsafes]]''' and '''[[Safety]]'''&lt;br /&gt;
* '''[[ESCs]]''', '''[[ESC Firmware]]''' and '''[[Servos]]'''&lt;br /&gt;
* '''[[Driving Practice]]'''&lt;br /&gt;
* '''[https://www.expresslrs.org/ ExpressLRS documentation]''' and the '''[https://manual.edgetx.org/ EdgeTX User Manual]'''&lt;br /&gt;
* Team Run Amok's '''[https://runamok.tech/AskAaron/radio_guides.html Ask Aaron radio guides]'''&lt;/div&gt;</summary>
		<author><name>RobotRobot</name></author>
	</entry>
</feed>