How to Update Zorro Internal ELRS Module Firmware

by Oscar
Radiomaster Zorro Radio Transmitter Elrs Expresslrs Configure Settings

This is a guide to show you how to update the internal ELRS TX module firmware in the Radiomaster Zorro radio.

Some of the links on this page are affiliate links. I receive a commission (at no extra cost to you) if you make a purchase after clicking on one of these affiliate links. This helps support the free content for the community on this website. Please read our Affiliate Link Policy for more information.

Check out my review of the Radiomaster Zorro, it’s a great radio. This tutorial only applies to Zorro ELRS version.

Download ExpressLRS Configurator

If you haven’t already downloaded the latest ExpressLRS configurator, get it here and install it on your computer:

https://github.com/ExpressLRS/ExpressLRS-Configurator/releases

Compiling Firmware

Open ExpressLRS configurator:

  • In Releases, select the latest version.
  • In Device category, select Radiomaster 2.4GHz
  • In Device, select Radiomaster Zorro 2400 TX
  • Flashing method, EdgeTXPassthrough

Choose your preferred Device options, if not sure what they mean, check out my ELRS tutorial here. Here’re a few important ones:

  • Regulatory domains, choose ISM_2400
  • Binding phrase

Flashing ELRS Firmware

Turn on the Zorro radio, and plug in the USB cable (to the top connector, NOT the bottom one). On the radio, you should be prompted 3 options, choose USB serial (debug).

Back to the ELRS configurator, hit Build and Flash.

If this is your first time, it can take a few minutes.

If you have trouble flashing via USB, you can also try flashing using WiFi:

  1. Turn on WiFi on the internal TX module in the ExpressLRS LUA Script
  2. In the ExpressLRS Configurator on your computer, build the firmware (just Build, NOT Build and Flash), this will save a firmware file on your computer
  3. Then upload the firmware file via the browser
  4. Here’s my detail instructions: https://oscarliang.com/setup-expresslrs-2-4ghz/#compile-and-flash-tx-firmware

Updating LUA Script

After successful flashing, hit the DOWNLOAD LUA SCRIPT button, and save the file somewhere.

Close the configurator and unplug USB cable.

Reconnect the radio’s USB cable, this time select USB Storage (SD). You should see two newly added external drives. Open the one with lots of folders.

Go to the \SCRIPTS\TOOLS folder, delete the old LUA scripts (with the same name as the one you just downloaded), there should be two files, .lua and .luac, delete both. Copy the downloaded file to the TOOLS folder.

Eject the external drive safely and unplug USB cable.

Verifying Firmware Update

In Model Setup, scroll down to Internal RF, and make sure Mode is set to CRSF.

Hold down the SYS button and go to TOOLS, find ExpressLRS. At the very bottom, you can see the current firmware version number (e.g. 2.3.0), make sure it’s the version you just flashed to confirm successful firmware update.

Leave a Comment

By using this form, you agree with the storage and handling of your data by this website. Note that all comments are held for moderation before appearing.

14 comments

Hend_wij 21st April 2023 - 12:27 pm

Hi oscar, my problem is i can’t even just build, is still coming out error
“Platformio dependency error”

Any other way i can flash?

Thank you

Reply
Oscar 21st April 2023 - 9:12 pm

Try this alternative method: flashing using the SD card.

Download the firmware file: instead of clicking the “build and flash” button, click “build”, this will save the firmware file locally.
Put this file in the SD card in your Zorro, put it in the “FIRMWARE” folder.

Long press “SYS” key on your radio, scroll to the second page “SD-HC Card”. You should see the “FIRMWARE” folder there, click on that.

Look for the “.bin” file you just placed there. Click on it, and select the option “Flash internal multi”, and the update will start. It should only take a minute or so.

Reply
Ray G 10th December 2022 - 4:55 am

When I plug in my Zorro it says usb serial vcp not debug. Flash not flashing is this the reason? What’s it mean?

Reply
Oscar 10th December 2022 - 12:40 pm

You can also try flashing it via Wifi. Go to the Lua script and turn on Wifi on the TX module. Build the firmware in the Configurator (just build, NOT build and flash). Then upload the firmware file via the browser following my instructions here: https://oscarliang.com/setup-expresslrs-2-4ghz/#compile-and-flash-tx-firmware

Reply
Srini 26th July 2022 - 2:53 am

Hi Oscar,

I have got Radiomaster zorro ELRS version, I am having problems in flashing i have followed as per the instruction but each time i am getting the same error, I did this in 3 of my windows 10 machine i get the same error in all 3 as below.

Failed to find Platformio on your computer. Trying to install it automatically…Installer version: 1.1.0
Platform: Windows-10
Python version: 3.11.0a4 (main, Jan 17 2022, 13:12:23) [MSC v.1929 64 bit (AMD64)]
Python path: C:\Program Files\ExpressLRS Configurator\dependencies\windows_amd64\python-3.11.0a4.amd64\python3.exe
Creating a virtual environment at C:\Users\raju\.platformio\penv
Updating Python package manager (PIP) in a virtual environment
Virtual environment has been successfully created!
Installing PlatformIO Core
Collecting platformio
Using cached platformio-6.1.3.tar.gz (245 kB)
Collecting bottle==0.12.*
Using cached bottle-0.12.21-py3-none-any.whl (89 kB)
Collecting click=8.0.4
Using cached click-8.1.3-py3-none-any.whl (96 kB)
Collecting colorama
Using cached colorama-0.4.5-py2.py3-none-any.whl (16 kB)
Collecting marshmallow==3.*
Using cached marshmallow-3.17.0-py3-none-any.whl (48 kB)
Collecting pyelftools=0.27
Using cached pyelftools-0.28-py2.py3-none-any.whl (155 kB)
Collecting pyserial==3.5.*
Using cached pyserial-3.5-py2.py3-none-any.whl (90 kB)
Collecting requests==2.*
Using cached requests-2.28.1-py3-none-any.whl (62 kB)
Collecting semantic_version==2.10.*
Using cached semantic_version-2.10.0-py2.py3-none-any.whl (15 kB)
Collecting tabulate==0.8.*
Using cached tabulate-0.8.10-py3-none-any.whl (29 kB)
Collecting zeroconf=17.0
Using cached packaging-21.3-py3-none-any.whl (40 kB)
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by ‘ReadTimeoutError(“HTTPSConnectionPool(host=’pypi.org’, port=443): Read timed out. (read timeout=15)”)’: /simple/idna/
WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by ‘ReadTimeoutError(“HTTPSConnectionPool(host=’pypi.org’, port=443): Read timed out. (read timeout=15)”)’: /simple/idna/
Collecting idna=2.5
Using cached idna-3.3-py3-none-any.whl (61 kB)
Collecting certifi>=2017.4.17
Using cached certifi-2022.6.15-py3-none-any.whl (160 kB)
Collecting urllib3=1.21.1
Using cached urllib3-1.26.10-py2.py3-none-any.whl (139 kB)
Collecting charset-normalizer=2
Using cached charset_normalizer-2.1.0-py3-none-any.whl (39 kB)
Collecting anyio=3.4.0
Using cached anyio-3.6.1-py3-none-any.whl (80 kB)
Collecting h11>=0.8
Using cached h11-0.13.0-py3-none-any.whl (58 kB)
Collecting sniffio>=1.1
Using cached sniffio-1.2.0-py3-none-any.whl (10 kB)
Collecting pyparsing!=3.0.5,>=2.0.2
Using cached pyparsing-3.0.9-py3-none-any.whl (98 kB)
Collecting ifaddr>=0.1.7
Using cached ifaddr-0.2.0-py3-none-any.whl (12 kB)
Using legacy ‘setup.py install’ for platformio, since package ‘wheel’ is not installed.
Installing collected packages: sniffio, pyparsing, idna, colorama, urllib3, packaging, ifaddr, h11, click, charset-normalizer, certifi, anyio, zeroconf, wsproto, uvicorn, tabulate, starlette, semantic-version, requests, pyserial, pyelftools, marshmallow, bottle, ajsonrpc, aiofiles, platformio
Running setup.py install for platformio: started
Running setup.py install for platformio: finished with status ‘done’
Successfully installed aiofiles-0.8.0 ajsonrpc-1.2.0 anyio-3.6.1 bottle-0.12.21 certifi-2022.6.15 charset-normalizer-2.1.0 click-8.1.3 colorama-0.4.5 h11-0.13.0 idna-3.3 ifaddr-0.2.0 marshmallow-3.17.0 packaging-21.3 platformio-6.1.3 pyelftools-0.28 pyparsing-3.0.9 pyserial-3.5 requests-2.28.1 semantic-version-2.10.0 sniffio-1.2.0 starlette-0.20.4 tabulate-0.8.10 urllib3-1.26.10 uvicorn-0.18.2 wsproto-1.1.0 zeroconf-0.38.7
WARNING: You are using pip version 21.2.4; however, version 22.2 is available.
You should consider upgrading via the ‘C:\Users\raju\.platformio\penv\Scripts\python.exe -m pip install –upgrade pip’ command.

PlatformIO Core has been successfully installed into an isolated environment `C:\Users\raju\.platformio\penv`!

The full path to `platformio.exe` is `C:\Users\raju\.platformio\penv\Scripts\platformio.exe`

If you need an access to `platformio.exe` from other applications, please install Shell Commands
(add PlatformIO Core binary directory `C:\Users\raju\.platformio\penv\Scripts` to the system environment PATH variable):

See https://docs.platformio.org/page/installation.html#install-shell-commands

Result
Error
An error has occured, see the above log for the exact error message. If you have not already done so, visit Expresslrs.org and read the Flashing Guide for your particular device as well as the Troubleshooting Guide. If you are still having issues after reviewing the documentation, please copy the build logs above to an online paste site and post in the #help-and-support channel on the ExpressLRS Discord with a link to the logs and other relevant information like your device, which flashing method you were using, and what steps you have already taken to resolve the issue.

Reply
Oscar 26th July 2022 - 5:08 pm

As the error message suggests you should report this issue on the ExpressLRS Discord.

However, you can try this alternative method: flashing using the SD card.
Download the firmware file: instead of clicking the “build and flash” button, click “build”, this will save the firmware file locally.
Put this file in the SD card in your Zorro, put it in the “FIRMWARE” folder.

Long press “SYS” key on your radio, scroll to the second page “SD-HC Card”. You should see the “FIRMWARE” folder there, click on that.

Look for the “.bin” file you just placed there. Click on it, and select the option “Flash internal multi”, and the update will start. It should only take a minute or so.

Reply
Jim Bacus 12th July 2022 - 2:29 pm

Hi Oscar, Im having a problem with ExpressLRS Configurator updating my Zorro. Ive tried it on two Macs I have and on two Windows machines, stops in the same place. It cant execute the script ExpressLRS, just says Loading… ?/??? I have tried so many things… any ideas? THANK YOU

Reply
Oscar 13th July 2022 - 6:37 pm

You can try this alternative method: flash it through the SD card.
Download the firmware file: instead of clicking the “build and flash” button, click “build”, this will save the firmware file locally.
Put this file in the SD card in your Zorro, put it in the “FIRMWARE” folder.

Long press “SYS” key on your radio, scroll to the second page “SD-HC Card”. You should see the “FIRMWARE” folder there, click on that.

Look for the “.bin” file you just placed there. Click on it, and select the option “Flash internal multi”, and the update will start. It should only take a minute or so.

Reply
Stephane 21st June 2022 - 9:03 pm

Thank you for the guide. After updating my Zorro (edge tx and ELSR) it doesn’t recognize ELRS internal module!
What should I do?

Reply
Bokononist 15th April 2022 - 3:58 am

For people having issues with Windows “spliting” the serial port. Search for the STSW-STM32102 STM32 Virtual COM Port Driver. This fixed it for me.

Reply
matt GD 20th May 2022 - 2:43 am

@BOKONONIST
I’m having that trouble – the device is detected as the zorro and also an unknown device connected to (COM Port 7) in my case.
Will I need to download the driver – if so have any suggestions for a reputable source?

Reply
Gavin 9th June 2022 - 3:59 am

Thank you! I was having problems flashing. installing that driver fixed it.

Reply
Straw 3rd April 2022 - 5:07 pm

Do I need to flash the zorro what firmware does it come with

Reply
Oscar 4th April 2022 - 10:58 am

You don’t have to flash it right now, but keep an eye on the new release of ELRS firmware, if you see a bug fix or new feature you want only then flash it.
The Zorro comes with ELRS V2 firmware.

Reply