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 or EZSP to enter the bootloader and then flashes a firmware image with XMODEM.

Installation

$ pip install git+https://github.com/puddly/universal-silabs-flasher.git

Flashing firmware

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

In addition to validating the firmware image, the version number of the firmware image currently running on the device is read.

  • If the provided firmware image type does not match the running image type, the firmware will not be flashed. Cross-flashing can be enabled with --allow-cross-flashing.
  • If the provided firmware image is a lower version than the currently running image, the downgrade will not be allowed. Downgrades can be enabled with --allow-downgrades.
  • If the provided firmware image already matches the version running on the device, the command will exit early. Firmware re-flashing can be enabled with --allow-reflash-same-version.

Yellow

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

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

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 \
    --bootloader-baudrate 115200 \
    --baudrate 115200 \
    flash \
    --firmware NabuCasa_SkyConnect_EZSP_v7.1.3.0_ncp-uart-hw_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 unnecesarily.

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-0.0.1.tar.gz (18.1 kB view details)

Uploaded Source

Built Distribution

universal_silabs_flasher-0.0.1-py3-none-any.whl (20.0 kB view details)

Uploaded Python 3

File details

Details for the file universal-silabs-flasher-0.0.1.tar.gz.

File metadata

File hashes

Hashes for universal-silabs-flasher-0.0.1.tar.gz
Algorithm Hash digest
SHA256 a03cf4c77f9ef1d88f5a33e0fcb5e0c4451f7a075b072dfd6b460412044d6dd0
MD5 d041c095fa7b0022bd627dc6742a20c7
BLAKE2b-256 c9d710a791f1d028cfbb981bcc97a9cae0ee0176fb83016dfd4a480ba11f3627

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for universal_silabs_flasher-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 465165a154f23a3e4615c63b265421c2e622217c38ab8cf5eba356abd8264d80
MD5 ea7d5438b5981972c5cabfa17013ff57
BLAKE2b-256 885db5a7e30f1bdc9ef9547e3625420693294841e3f34464a70d745914c2b043

See more details on using hashes here.

Supported by

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