ExpressLRS Firmware update

This article explains how to update ExpressLRS (ELRS) firmware for receivers and transmitters to ensure compatibility and optimal performance. It covers updating via the ELRS Configurator and WebUI, including configuration changes like bind phrase and regulatory domain. 

Quick Guide: Updating ELRS Firmware

Ensure transmitter and receiver are on the same major firmware version (e.g., 3.x.x). Visit ExpressLRS Firmware Options for details.

Prerequisites

  • Download ExpressLRS Configurator (Windows, macOS, Linux) HERE.

  • USB cable for transmitter; UART-capable flight controller or USB-to-serial adapter for receiver.

  • Backup model settings (EdgeTX: Model Setup > Backup).

  • For WebUI: Device with WiFi and a browser (smartphone/tablet recommended).

Steps (Configurator)

  1. Connect Device:

    • Transmitter: Connect to the PC via USB and select USB Storage (EdgeTX: SYS > USB Storage if not prompted).

    • Receiver: Connect via flight controller UART or USB-to-serial adapter.

  2. Open Configurator:

    • Select device type (TX/RX), target firmware (e.g., 3.x.x).

  3. Configure and Flash:

    • Set options (e.g., regulatory domain, bind phrase).

    • Click Build & Flash. Wait for completion.

  4. Verify:

    • Receiver LED: Solid green/red.

    • Test binding (see ExpressLRS Binding Guide).

Steps (WebUI)

  1. Enable WiFi Mode:

    • Receiver: Power cycle, wait 60 seconds (rapid LED blink), or hold boot button (5 seconds, if available).

    • Transmitter: EdgeTX > SYS > Tools > ExpressLRS > WiFi Connectivity > Enable WiFi.

  2. Connect to WebUI:

    • Join ExpressLRS RX or TX WiFi (password: expresslrs) or use home WiFi (http://elrs_rx.local or http://elrs_tx.local).

    • Access http://10.0.0.1 in the browser.

  3. Update Firmware:

    • Go to the Update tab, upload the .bin file from the Configurator.

    • Apply settings (e.g., bind phrase) in the Options tab.

  4. Verify: Solid receiver LED, “C” in Lua Script.

For issues, see ExpressLRS Troubleshooting Guide HERE.


___________________________________________________________________________________________

___________________________________________________________________________________________

___________________________________________________________________________________________

Detailed Instructions:

Prerequisites

  • Software: ELRS Configurator (v1.6.0+), Python 3.8+, Git (for CLI). WebUI requires browser access.

  • Hardware: Confirm ELRS model (2.4GHz/915MHz). Check ExpressLRS Hardware.

  • Backup: EdgeTX radios:

    • Color Touchscreen: Model Setup > Backup Models, save to SD card.

    • Black-and-White Non-Touchscreen: SYS > SD-HC > Backup Models, save.

  • Power: Stable 5V for receivers. Avoid underpowered USB ports.

Configurator Update Process

  1. Connect Device:

    • Transmitter:

      • Color Touchscreen: SYS > USB Storage or STM32 Bootloader.

      • Black-and-White Non-Touchscreen: SYS > USB Storage, press Enter.

      • Connect the USB; the radio appears as a drive.

    • Receiver: Use flight controller UART or USB-to-serial adapter (TX to RX, RX to TX, 5V, GND). See ExpressLRS Receiver Wiring.

      • SPI receivers: Flash via Betaflight Configurator (10.10+): Receiver tab > Flash Firmware.

  2. Configure ELRS Configurator:

    • Select Device Category (TX/RX), model, and firmware (e.g., 3.4.1, avoid beta unless needed).

    • Set: Regulatory Domain (FCC/EU for 900MHz), Bind Phrase, WiFi SSID/Password (for WebUI).

    • CLI option: Use ELRS CLI for custom builds.

  3. Build and Flash:

    • Click Build & Flash. Select USB device (TX) or COM port (RX).

    • Flashing takes ~1-2 minutes.

  4. Verify:

    • Receiver: Solid LED. Transmitter: Lua Script (EdgeTX: Tools > ExpressLRS) shows “C”.

    • Test in Betaflight Receiver tab.

WebUI Update and Configuration Process

  1. Enable WiFi Mode:

    • Receiver:

      • Power cycle; wait 60 seconds for rapid LED blink.

      • Or press the boot button (5 seconds, if available; 7 seconds may trigger the bootloader).

      • If the LED is solid, rewire the UART or follow the Unbricking Guide.

    • Transmitter:

      • Color Touchscreen: SYS > Tools > ExpressLRS > WiFi Connectivity > Enable WiFi.

      • Black-and-White Non-Touchscreen: SYS > Tools > ExpressLRS > Enter > WiFi Connectivity > Enable WiFi.

      • Or power TX module externally (2S/USB), wait 60 seconds (green breathing LED or OLED message).

    • If Lua Script shows “Loading...” or syntax error, ensure EdgeTX 2.8.0+ and the latest Lua Script from ExpressLRS Lua Script.

  2. Connect to WebUI:

    • Scan for ExpressLRS RX or TX WiFi (password: expresslrs).

    • If using home WiFi (previously flashed), access http://elrs_rx.local or http://elrs_tx.local.

    • Alternatively, use http://10.0.0.1 (disconnect from router if conflicts occur).

    • If MDNS fails, run arp -a in Command Prompt or check the router DHCP for the “elrs” device IP.

  3. Update Firmware:

    • In the WebUI Update tab, upload the .bin file (downloaded from Configurator).

    • Wait for upload and reboot (~1-2 minutes).

  4. Configure Settings (Options Tab):

    • Bind Phrase: Enter new phrase; UID updates automatically (read-only).

    • Regulatory Domain: Set for 900 MHz (FCC/EU). 2.4GHz EU-LBT requires a compile-time setting.

    • WiFi Auto On: Adjust interval (seconds) for auto-WiFi without CRSF/sync.

    • Receiver Settings:

      • UART Baud: Default 420000; use 400000 for KISS firmware.

      • Invert TX Pin: Enable for SBUS pads (set serialrx_inverted = on in flight controller).

      • Lock on First Connection: Enable for faster reconnects if RF mode is fixed.

    • Transmitter Settings:

      • TLM Report Interval: Default 240LU; adjust for telemetry frequency.

      • UART Inverted: Enable for EdgeTX/OpenTX S.Port pins.

      • Fan Runtime: Set fan duration (seconds) after low power.

    • Save changes; device reboots.

  5. Verify:

    • Receiver LED solid, Lua Script shows “C”.

    • Test stick movement in the Betaflight Receiver tab.


ExpressLRS WEB Update and Configuration Process

  1. Connect Device:

    • Transmitter: Connect to PC via USB, select USB Storage (EdgeTX: SYS > USB Storage).

    • Receiver: Connect via flight controller UART or USB-to-serial adapter (TX to RX, RX to TX, 5V, GND). See ExpressLRS Receiver Wiring.

  2. Access Web Flasher:

    • Open https://expresslrs.github.io/web-flasher/ in Chrome/Edge.

    • Select device type (TX/RX) and model (e.g., HappyModel EP1, BetaFPV Nano).

  3. Configure and Flash:

    • Choose firmware version (e.g., 3.4.1, avoid beta unless needed).

    • Set options: Regulatory Domain (FCC/EU for 900MHz), Bind Phrase (optional).

    • Click Flash. Select USB device (TX) or COM port (RX).

    • Wait ~1-2 minutes for flashing.

  4. Verify:

    • Receiver LED: Solid green/red.

    • Transmitter: Lua Script (EdgeTX: Tools > ExpressLRS) shows “C”.

    • Test binding (see ExpressLRS Binding Guide).

Notes

  • SPI Receivers: Not supported; use Betaflight Configurator (10.10+).

  • Troubleshooting: If flashing fails, check USB drivers, cable/port, or WebUI/Configurator methods. See ExpressLRS Troubleshooting Guide.


Troubleshooting

  • Flash Failure: Check the COM port, USB drivers, and cable/port. If USB fails, try WebUI.

  • WebUI Access: Disconnect from router if http://10.0.0.1 loads router dashboard. Use smartphone/tablet or manual IP (via arp -a).

  • Soft-Brick: Solid LED on receiver may indicate bootloader mode. Rewire UART or follow the Unbricking Guide.

  • Firmware Mismatch: Match major versions (e.g., 3.x.x). Minor mismatches (e.g., 3.4.0 vs. 3.4.1) are usually compatible.

  • Model Mismatch: In Lua Script, toggle Model Match Off/On:

    • Color Touchscreen: Tools > ExpressLRS > Model Match.

    • Black-and-White Non-Touchscreen: SYS > ExpressLRS > Model Match.

  • See ExpressLRS Troubleshooting Guide.

Additional Notes

  • EdgeTX Compatibility: Use EdgeTX 2.8.0+ for full ELRS support—update via EdgeTX Downloads.

  • WebUI Notes: This is available in ELRS 3.x+. The Buttons tab is specific to the RadioMaster Ranger module.

  • SPI Receivers: Flash via Betaflight Configurator (10.10+).

  • Firmware Storage: Save .bin files from Configurator for offline use.

  • Safety: Disconnect props before testing.

For more details, visit ExpressLRS WebUI Guide or Software Updates.

Last Updated: May 13, 2025