Name | universal-silabs-flasher JSON |
Version |
0.0.27
JSON |
| download |
home_page | None |
Summary | Tool to flash firmware onto any Silicon Labs radio running EmberZNet, CPC multi-PAN, or just a bare Gecko Bootloader |
upload_time | 2025-01-11 16:44:02 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.9 |
license | GPL-3.0 |
keywords |
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# 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
```console
$ pip install universal-silabs-flasher
```
## Usage
```console
Usage: universal-silabs-flasher [OPTIONS] COMMAND [ARGS]...
Options:
-v, --verbose
--device PATH_OR_URL [required]
--bootloader-baudrate NUMBERS [default: 115200]
--cpc-baudrate NUMBERS [default: 460800, 115200, 230400]
--ezsp-baudrate NUMBERS [default: 115200]
--router-baudrate NUMBERS [default: 115200]
--spinel-baudrate NUMBERS [default: 460800]
--probe-method TEXT [default: bootloader, cpc, ezsp, spinel,
router]
--bootloader-reset [yellow|ihost|slzb07|sonoff]
--help Show this message and exit.
Commands:
dump-gbl-metadata
flash
probe
write-ieee
```
## 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`.
- To always upgrade/downgrade firmware to a specific version (i.e. as the entry point for an addon bundling firmware), use `--ensure-exact-version`.
- All of the above logic can be skipped with `--force`.
### Yellow
The Yellow's bootloader can always be activated with the `--bootloader-reset yellow` option:
```bash
$ 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.
```bash
$ universal-silabs-flasher \
--device /dev/cu.SLAB_USBtoUART \
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:
```bash
$ 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`.
Raw data
{
"_id": null,
"home_page": null,
"name": "universal-silabs-flasher",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": null,
"author": null,
"author_email": "Puddly <puddly3@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/22/ab/2dfc979050d5a9ac47a13d0d8aee0af8d96b3aae743fbf61dcffa984265f/universal_silabs_flasher-0.0.27.tar.gz",
"platform": null,
"description": "# Universal Silicon Labs Flasher\nAutomatically communicates with radios over CPC, EZSP, or Spinel to enter the bootloader and then flashes a firmware image with XMODEM.\n\n## Installation\n```console\n$ pip install universal-silabs-flasher\n```\n\n## Usage\n\n```console\nUsage: universal-silabs-flasher [OPTIONS] COMMAND [ARGS]...\n\nOptions:\n -v, --verbose\n --device PATH_OR_URL [required]\n --bootloader-baudrate NUMBERS [default: 115200]\n --cpc-baudrate NUMBERS [default: 460800, 115200, 230400]\n --ezsp-baudrate NUMBERS [default: 115200]\n --router-baudrate NUMBERS [default: 115200]\n --spinel-baudrate NUMBERS [default: 460800]\n --probe-method TEXT [default: bootloader, cpc, ezsp, spinel,\n router]\n --bootloader-reset [yellow|ihost|slzb07|sonoff]\n --help Show this message and exit.\n\nCommands:\n dump-gbl-metadata\n flash\n probe\n write-ieee\n```\n\n## Flashing firmware\nFor safety, firmware GBL image files are validated and their checksums verified both before sending, and by the device bootloader itself.\n\nIn addition to validating the firmware image, the version number of the firmware image currently running on the device is read.\n\n - 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`.\n - 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`.\n - To always upgrade/downgrade firmware to a specific version (i.e. as the entry point for an addon bundling firmware), use `--ensure-exact-version`.\n - All of the above logic can be skipped with `--force`.\n\n### Yellow\nThe Yellow's bootloader can always be activated with the `--bootloader-reset yellow` option:\n\n```bash\n$ universal-silabs-flasher \\\n --device /dev/ttyAMA1 \\\n --bootloader-reset yellow\n flash \\\n --firmware NabuCasa_RCP_v4.1.3_rcp-uart-hw-802154_230400.gbl \\\n```\n\n### SkyConnect\nThe SkyConnect will be rebooted into its bootloader from the running application: either EmberZNet or CPC.\n\n```bash\n$ universal-silabs-flasher \\\n --device /dev/cu.SLAB_USBtoUART \\\n flash \\\n --firmware NabuCasa_SkyConnect_EZSP_v7.1.3.0_ncp-uart-hw_115200.gbl\n```\n\n\n## Writing IEEE address\nEnsure a target device running EmberZNet firmware has the correct node IEEE address:\n\n```bash\n$ universal-silabs-flasher \\\n --device /dev/cu.SLAB_USBtoUART \\\n write-ieee \\\n --ieee 00:3c:84:ff:fe:92:bb:2c\n```\n\nThe IEEE address can also be specified without colons: `--ieee 003c84fffe92bb2c`.\n\nIf the current device's IEEE address already matches the provided one, the command will not write it unnecessarily.\nDepending on firmware version, writing the IEEE address can be a **permanent** operation. If this is the case,\nyou will need to upgrade the firmware on your adapter to a more recent release of EmberZNet or perform the one-time\nwrite with `--force`.\n",
"bugtrack_url": null,
"license": "GPL-3.0",
"summary": "Tool to flash firmware onto any Silicon Labs radio running EmberZNet, CPC multi-PAN, or just a bare Gecko Bootloader",
"version": "0.0.27",
"project_urls": {
"repository": "https://github.com/NabuCasa/universal-silabs-flasher"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "15b60755d617367e4f67ef2fc74870da50675dd14484e4d47251cdcec61a0b6b",
"md5": "2cf10d033488ae87ade2dd9ec3dc016f",
"sha256": "77c17beafca6218730dfc27068c792d0a83d16ce697a52d071a57f9621c9faa8"
},
"downloads": -1,
"filename": "universal_silabs_flasher-0.0.27-py3-none-any.whl",
"has_sig": false,
"md5_digest": "2cf10d033488ae87ade2dd9ec3dc016f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 46917,
"upload_time": "2025-01-11T16:44:00",
"upload_time_iso_8601": "2025-01-11T16:44:00.228754Z",
"url": "https://files.pythonhosted.org/packages/15/b6/0755d617367e4f67ef2fc74870da50675dd14484e4d47251cdcec61a0b6b/universal_silabs_flasher-0.0.27-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "22ab2dfc979050d5a9ac47a13d0d8aee0af8d96b3aae743fbf61dcffa984265f",
"md5": "bc180b22c02794e63bf26acb324a3d8b",
"sha256": "b8b0092b9064b748c74a030362b1324e3de9bb75cd2a1debecc12bb4302d38c9"
},
"downloads": -1,
"filename": "universal_silabs_flasher-0.0.27.tar.gz",
"has_sig": false,
"md5_digest": "bc180b22c02794e63bf26acb324a3d8b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 45382,
"upload_time": "2025-01-11T16:44:02",
"upload_time_iso_8601": "2025-01-11T16:44:02.668371Z",
"url": "https://files.pythonhosted.org/packages/22/ab/2dfc979050d5a9ac47a13d0d8aee0af8d96b3aae743fbf61dcffa984265f/universal_silabs_flasher-0.0.27.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-01-11 16:44:02",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "NabuCasa",
"github_project": "universal-silabs-flasher",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "universal-silabs-flasher"
}