Silicon Labs Firmware flashing utility

May 16, 2025 ยท View on GitHub

Note


This project is dormant, please use the much more capable utilty called Universal Silicon Labs Flasher.

Silicon Labs Firmware flashing utility

The silabs-flasher utility allows to flash products using the Silicon Labs Wireless Gecko Series 1 and 2 chips. It makes use of the zigpy bellows library to communicate using the EmberZNet Serial Protocol over serial port.

Install

Silicon Labs Flasher is available from PyPI:

$ pip install silabs-flasher

To use GPIOs to reset the chip (useful on Home Assistant Yellow) make sure to install with gpiod from PyPI as extra dependency:

$ pip install "silabs-flasher[gpio]"

Usage

Use the info command to check communication with the device and get information about the current firmware and the bootloader:

$ silabs-flasher --device /dev/ttyUSB4 info
Manufacturer: 
Board name: 
EmberZNet version: 6.7.9.0 build 405
bootloader version: 0x1902, nodePlat: 0x04, nodeMicro: 0x18, nodePhy: 0x0f

The firmware can be flashed using the flash command:

$ silabs-flasher --device /dev/ttyUSB4 flash --firmware ncp-uart-sw_679_115200.gbl 
Trying to connect using EZSP...
Launching bootloader in mode recovery mode via EZSP.
Bootloader detected successfully.
Bootloader version: 1.9.2
Starting firmware upload...
Firmware update  [####################################]  100%          
Bootloader reported successful upload.

To reset the chip using GPIO use the following arguments:

$ silabs-flasher --device /dev/ttyAMA1 --baudrate 115200 flash \
                 --no-ezsp-reset --cm4-gpio-reset \
                 --firmware NabuCasa_EZSP_v6.10.3.0_PA32_ncp-uart-hw_115200.gbl