Skip to main content

Tool to flash firmware onto any Silicon Labs radio running EmberZNet, CPC multi-PAN, or just a bare Gecko Bootloader

Project description

Universal Silicon Labs Flasher

Automatically communicates with radios over CPC, EZSP, or Spinel to enter the bootloader and then flashes a firmware image with XMODEM.

Installation

$ pip install universal-silabs-flasher

Usage

usage: universal-silabs-flasher [-h] [-v] [--device DEVICE] [--probe-methods PROBE_METHODS]
                                [--bootloader-reset BOOTLOADER_RESET]
                                {dump-gbl-metadata,probe,write-ieee,flash} ...

positional arguments:
  {dump-gbl-metadata,probe,write-ieee,flash}

options:
  -h, --help            show this help message and exit
  -v, --verbose
  --device DEVICE
  --probe-methods PROBE_METHODS
                        Comma-separated list of application type and baudrate pairs to use when probing the device.
                        Each pair should be in the format '<application_type>:<baudrate>'. Valid application types:
                        bootloader, cpc, ezsp, spinel, router. Example: 'ezsp:115200,ezsp:460800,spinel:460800'
  --bootloader-reset BOOTLOADER_RESET
                         Reset methods to attempt when triggering bootloader mode. Multiple methods can be chained by
                         separating them with a comma. Valid values: yellow, ihost, slzb07, rts_dtr, baudrate

For flash, you can also pass --profile to use a predefined device profile. --profile cannot be combined with --probe-methods or --bootloader-reset.

Flashing firmware

For safety, firmware GBL image files are validated and their checksums verified both before sending, and by the device bootloader itself.

Yellow

The Yellow's bootloader can always be activated with the --bootloader-reset yellow option:

$ universal-silabs-flasher \
    --device /dev/ttyAMA1 \
    --bootloader-reset yellow \
    flash \
    --firmware NabuCasa_RCP_v4.1.3_rcp-uart-hw-802154_230400.gbl

SkyConnect

The SkyConnect will be rebooted into its bootloader from the running application: either EmberZNet or CPC.

$ universal-silabs-flasher \
    --device /dev/cu.SLAB_USBtoUART \
    flash \
    --firmware NabuCasa_SkyConnect_EZSP_v7.1.3.0_ncp-uart-hw_115200.gbl

Home Assistant Connect ZBT-2

The Home Assistant Connect ZBT-2 can use the built-in zbt2 profile:

$ universal-silabs-flasher \
    --device /dev/ttyACM0 \
    flash \
    --profile zbt2 \
    --firmware zbt2_openthread_rcp_2.4.4.0_GitHub-7074a43e4_gsdk_4.4.4.gbl

Sonoff ZBDongle-E

The Sonoff dongles use the RTS/DTR bootloader reset method:

$ universal-silabs-flasher \
    --device /dev/ttyUSB0 \
    --bootloader-reset rts_dtr \
    flash \
    --firmware ncp-uart-hw-v7.4.5.0-zbdonglee-115200.gbl

Writing IEEE address

Ensure a target device running EmberZNet firmware has the correct node IEEE address:

$ universal-silabs-flasher \
    --device /dev/cu.SLAB_USBtoUART \
    write-ieee \
    --ieee 00:3c:84:ff:fe:92:bb:2c

The IEEE address can also be specified without colons: --ieee 003c84fffe92bb2c.

If the current device's IEEE address already matches the provided one, the command will not write it unnecessarily. Depending on firmware version, writing the IEEE address can be a permanent operation. If this is the case, you will need to upgrade the firmware on your adapter to a more recent release of EmberZNet or perform the one-time write with --force.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

universal_silabs_flasher-1.0.3.tar.gz (60.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

universal_silabs_flasher-1.0.3-py3-none-any.whl (52.8 kB view details)

Uploaded Python 3

File details

Details for the file universal_silabs_flasher-1.0.3.tar.gz.

File metadata

  • Download URL: universal_silabs_flasher-1.0.3.tar.gz
  • Upload date:
  • Size: 60.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for universal_silabs_flasher-1.0.3.tar.gz
Algorithm Hash digest
SHA256 ffe0c4a2960b7f56ec76dbf5563f9fc3cac14fc92ecd4729b629836315c14ae3
MD5 c485c6f008b35e84ac3f85f864cedc15
BLAKE2b-256 18f1e034b3034cefd66482b5d2c8660777f9fdd40d0330bedae751a5dc2903b2

See more details on using hashes here.

File details

Details for the file universal_silabs_flasher-1.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for universal_silabs_flasher-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 429153715cad6f2461f0ea47928dcad51c5779a9887ed220a09c87cbbed534db
MD5 7eff8a2ce1e5866de37f31c911769232
BLAKE2b-256 dca451c477fd26cb63c3cdb0eb52fcf06572e2c952873c7f3593a6d5c90673b5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page