Article

ExpressLRS Backpack: set the goggles' video channel from your radio

At a group session, someone tells you to fly on R2. You then change the channel twice: once on the quad, through the OSD menu or a button on the VTX, and once on the goggles. ExpressLRS can do both from the radio. The VTX side goes through the receiver and the flight controller. The goggles side needs an extra piece called the Backpack.

The ExpressLRS documentation describes exactly this scenario. With the quad still unpowered, you set R2 in the ExpressLRS Lua script, power the goggles, then plug in the battery. When the link comes up, the VTX and the video receiver in the goggles both switch to R2.

Two Backpacks, one radio link

The Backpack is a small ESP chip that talks to other devices over ESP-NOW, a short-range protocol on the 2.4 GHz Wi-Fi band. It does not use the ExpressLRS control link at all. There are two sides:

  • TX Backpack - an extra ESP chip inside the transmitter module. The documentation says most ESP-based ExpressLRS modules have one, and every new ExpressLRS transmitter released after October 10, 2023 must have one built in. Older and cheaper modules may not. The docs keep a partial list, which marks for example the BETAFPV 2.4 Micro TX 500mW and the Jumper Aion Nano as not compatible.
  • VRX Backpack - an ESP device attached to the video receiver in the goggles. It receives the band and channel from the TX Backpack and sets the receiver to them.

The Backpack has its own firmware and its own version numbers, separate from ExpressLRS itself. At the time of writing, the latest release on GitHub is 1.5.9, from July 2026.

What the Lua script does

The setting lives in the VTX Administrator folder of the ExpressLRS Lua script. It has four fields:

  • Band - A, B, E, F, R or L. Off means VTX Administrator leaves the VTX alone.
  • Channel - 1 to 8.
  • Pwr Lvl - the power level by index, 1 to 8, matched to the VTX table on the flight controller. The docs give an example where 1 is 25 mW, 2 is 100 mW, 3 is 200 mW and 4 is 500 mW, but your table decides.
  • Pitmode - on or off.

[Send VTX] sends the settings right away. They are also sent every time the transmitter connects to a receiver. The documentation points out a side effect: if you changed the VTX power through the OSD and then lose and regain telemetry in flight, VTX Administrator puts its own settings back.

The goggles get the channel even if you power them up after the radio. The TX Backpack keeps the last VTX settings in memory, and the Backpack source code shows that a VRX Backpack asks for them repeatedly during its first 5 seconds after boot.

If the VTX never changes but you can still change channels through the OSD menu, the troubleshooting page has the answer. VTX Administrator uses MSP, which depends on telemetry. Make sure telemetry is on in the flight controller configuration and that the radio shows more than 10 telemetry sensors (Model Setup, Telemetry page, delete and discover the sensors again).

Which goggles work

The Backpack firmware currently has VRX targets for:

  • HDZero goggles and HDZero BoxPro, which have the ESP32 built in,
  • Skyzone SteadyView, either with Skyzone's own ELRS module or with a DIY backpack,
  • Orqa goggles through the FPV.Connect port,
  • ImmersionRC rapidFIRE (firmware 1.2.5 or newer, according to the setup guide),
  • TBS Fusion, which has a built-in ESP module,
  • generic RX5808 receiver modules, including diversity versions,
  • the HDZero VRX4 receiver module and the Shark Byte RX5.1.

For a DIY VRX Backpack, the docs suggest reusing any ESP-based ExpressLRS receiver, with EP1 and EP2 recommended because they have boot pads instead of a button. A bare ESP-01F module also works, and Happymodel sells the EP82 as a ready-made VRX Backpack.

Setup in order

1. Flash the TX Backpack

In ExpressLRS Configurator, open the Backpack section, pick a release and your module, enter your binding phrase and, if you like, your home Wi-Fi details. The flashing method depends on the module:

  • Passthrough over USB for newer modules without DIP switches, for example the Radiomaster Ranger series.
  • EdgeTXPassthrough for internal modules in radios like the RadioMaster TX16S or Zorro. Connect the radio with USB and pick USB Serial (VCP) or USB Serial (Debug) on the radio.
  • WiFi for any module whose Backpack already runs working firmware. In the Lua script, choose WiFi Connectivity and Enable Backpack WiFi, connect to the ExpressLRS TX Backpack network (password expresslrs) and open http://10.0.0.1/.
  • UART for older modules with DIP switches or jumpers, such as the Happymodel ES24TX. After flashing, set the switches back to normal operation. The docs warn that the Backpack will not work otherwise.

To check the result, start Backpack Wi-Fi from the Lua script and open the page at http://10.0.0.1/ (or http://elrs_txbp.local/ on your home network). The banner shows the device type and firmware version.

2. Flash the VRX Backpack

Choose the target that matches your video receiver. The guide is blunt about it: with the wrong firmware, it will not work properly.

On HDZero goggles you build the firmware in Configurator and copy four files (firmware.bin, partitions.bin, bootloader.bin, boot_app0.bin) to a folder called ELRS on the SD card. In the goggles, enable the backpack on the Connections page, then run Update ESP32 on the Firmware page.

For a DIY backpack made from an ExpressLRS receiver, the guide says to flash it before wiring it into the goggles, over Wi-Fi or with a USB to UART adapter.

3. Wire it in (DIY only)

According to the guide, the VRX Backpack talks to modules like the rapidFIRE, SteadyView and RX5808 over SPI: three signal wires (CLK, DATA, CS), plus power and ground. An ExpressLRS receiver takes 5 V. A bare ESP-01F needs 3.3 V, which in the guide comes from an AMS1117 regulator. Before you connect anything, set the video receiver to its highest channel, usually Race 8 (5917 MHz), so the Backpack knows where the receiver starts from. The guide has pin-by-pin diagrams for each receiver, and some, like the SteadyView, need a few pins cut or desoldered first. Follow the diagram for your exact module.

4. Bind the two Backpacks

If both Backpacks were flashed with the same binding phrase, they connect on their own. The phrase can be the one you use for your receivers or a different one.

Without a phrase, bind by hand:

  1. Power cycle the VRX Backpack three times, about every 30 seconds. If it has a button, switching between Wi-Fi mode and normal mode three times does the same.
  2. Its LED starts to blink twice, pause, and repeat.
  3. In the Lua script, press Bind. Both LEDs blink once and then stay on.

If no bind packet arrives within 120 seconds, the VRX Backpack switches to Wi-Fi mode. On HDZero goggles, binding goes through Start Backpack Binding on the Connections page, and the goggles show the bound UID next to that button.

The LEDs tell you the state: solid means ready, fast blinking means Wi-Fi mode, a double blink with a pause means binding mode.

Beyond the channel

The Backpack folder in the Lua script has a few more options:

  • DVR Rec sets an AUX channel and switch position that starts DVR recording in the goggles, with separate start and stop delays. In the Backpack code, recording control is implemented for HDZero goggles and for the Skyzone SteadyView ELRS module.
  • HT Enable and HT Start Channel send head tracking from supported goggles to the radio, again only on some goggles.
  • Telemetry set to ESPNOW forwards every telemetry frame the transmitter receives. The documented use is the Sentinel antenna tracker, which reads GPS position from that feed. This needs ExpressLRS 3.4.0 or newer, and the docs recommend keeping the tracker within 10 m of the transmitter, ideally 5 m.

The telemetry option has one downside the docs name directly. Every frame goes out again on 2.4 GHz, so leave it off when you do not need it, especially at race days, where the spectrum is crowded.