On this page

On this page

Flash USB dongle firmware

Factory firmware is usually enough for ZHA. Flash when you need a different stack, a newer EZSP, Zigbee / Thread / Matter, or the stick is not recognized.

Host firmware on ETH dongles is a different flow: see Flash ETH dongle firmware, not this page.

Before you start

Open Tools in Chrome or Edge, then open USB dongle model flasher. Prefer online flashing on that page.

Open USB dongle model flasher from Tools

Then check the following:

  1. Connect the dongle to this computer with a USB data cable
  2. Close anything using the serial port: ZHA / Zigbee2MQTT in Home Assistant, serial monitors, and other browser tabs already on this page
  3. Pick the matching model before you connect. Do not mix MG21 and MG24 images. Also pick the matching role: Zigbee coordinator, Zigbee router, Thread, or Multi-PAN

USB dongle on a USB cable

If Windows or macOS does not show a serial port, install the USB driver first, then unplug and replug. If the browser cannot use serial, switch to offline flashing on the same page (Windows tool; currently ZBM-MG21 and ZBM-MG24).

ModelChipUSB serialDriver
ZBT-1PEFR32MG21CP2102NCP210x
ZBM-MG21EFR32MG21CH9102CH9102 (macOS: CH34X)
ZBM-MG24EFR32MG24CP210xCP210x

Connect the stick

The steps below use ZBM-MG21 as the example. ZBT-1P and ZBM-MG24 are the same: click Connect on the matching card.

On USB dongle model flasher, find your model and click Connect. The screenshot uses CONNECT ZBM-MG21.

Click CONNECT on the matching model

In the browser serial picker, choose that dongle (the name usually includes the model and COMx / ttyUSB / ttyACM) and allow access. The list may also show other ports, such as an ETH host. Pick the USB dongle you are flashing, not ETH. Host firmware on ETH dongles uses Flash ETH dongle firmware.

Select the correct serial device

Wait until the tool identifies the device. You should see the model and current firmware (for example Zigbee EZSP). Then click CHANGE FIRMWARE.

Device identified with model and current firmware

Choose firmware

Official firmware for this model is already listed. Choose by role:

FirmwareUse
Zigbee CoordinatorZigbee coordinator for ZHA / Zigbee2MQTT
Zigbee RouterZigbee router, to extend the mesh
ThreadOpenThread RCP
Multi-PANZigbee and Thread at the same time. Not available on ZBM-MG21; offered on ZBM-MG24 and ZBT-1P

The screenshot shows Zigbee Coordinator selected. Confirm the type before you install.

Select official firmware; Zigbee Coordinator is selected

You can instead upload a local .gbl. Only do this when you know the image. A file for the wrong model, or an unsupported build, can leave the stick unusable.

Upload your own .gbl firmware

ZBT-1P uses official SkyConnect firmware, with coordinator, Thread, and Multi-PAN options.

Install

After the type is correct, click Install and wait. The LED may blink blue. Do not unplug or close the tab.

Installing firmware, progress 100%

When it finishes, you should see Installation success. Click CONTINUE, unplug and replug, then return to Home Assistant. Serial port, baud rate, and adapter in ZHA / Zigbee2MQTT must match the new firmware.

Installation success, then CONTINUE

FAQ

The serial list is empty, or the OS does not see the device. Install the driver in the table, try another port or cable, and confirm ZHA / Zigbee2MQTT is stopped. On Linux, the user needs serial permission (often the dialout group). If you get Serial port was not selected, install the driver and click RETRY (the screenshot is ZBM-MG21: CH9102 on Windows, CH34X on macOS; other models use the table above).

Serial port was not selected, driver prompt

Flashing fails or stalls. Close anything using the serial port and retry. If it still fails, open Debug log in the flasher, send the log to inswift888@gmail.com, and include the model and firmware type.

DEBUG LOG on the installation success dialog

ZHA / Zigbee2MQTT will not start after flashing. Unplug and replug first. Silabs coordinators: use ember on Zigbee2MQTT 1.36.0+ with EmberZNet 7.4.x or newer (EZSP v13+); use ezsp on older Z2M or older firmware. Baud rate is commonly 115200. For protocol mismatch, see the FAQ.

To compile or port your own firmware, or to match UART / BOOT / reset, see ZBM-MG dongle IO configuration.