NabuCasa / universal-silabs-flasher

Flashes Silicon Labs radios running EmberZNet or CPC multi-pan firmware
GNU General Public License v3.0
94 stars 18 forks source link

[REQUEST] Support for Silicon Labs Z-Wave 700/800 OTW flashing of Z-Wave Controller #66

Open Hedda opened 7 months ago

Hedda commented 7 months ago

Requesting support in "Universal Silicon Labs Flasher" tool for flashing Silabs Z-Wave 700 series and 800 series firmware via OTW,

And/or other implementation needed for also Zwave Controller OTW updated to be possible via "Silicon Labs Flasher Add-on":

https://github.com/home-assistant/addons/tree/master/silabs_flasher

I believe this is a relevant request now that Nabu Casa has joined the Z-Wave Alliance and is working towards Z-Wave certification:

https://www.home-assistant.io/blog/2024/02/15/nabu-casa-joins-z-wave-alliance/

https://community.home-assistant.io/t/psa-upcoming-z-wave-js-changes-and-z-wave-certification-how-it-impacts-you/638288

https://github.com/orgs/zwave-js/projects/1/views/1

I think this feature would also be appropriate considering the new partnership between Silicon Labs and Nabu Casa:

https://www.home-assistant.io/blog/2023/12/12/silicon-labs-official-partnership-nabu-casa/

After all, every single Z-Wave Controller SoC chip available today is designed and manufacturered by Silicon Labs:

https://www.home-assistant.io/docs/z-wave/controllers/

Thus this enhancement feature request for Z-Wave OTW, to automatically enter bootloader mode and flash firmware GBL image.

FYI, Silicon Labs also already provides pre-built firmware image downloads for Z-Wave Controller via their Gecko SDK (GSDK):

https://github.com/SiliconLabs/gecko_sdk/

Example, see latest sample downloadable "zwave ncp serial api controller" GBL files for Silabs supported Z-Wave chips today:

https://github.com/SiliconLabs/gecko_sdk/blob/gsdk_4.4/protocol/z-wave/Apps/bin/gbl/

The same firmware images are also included in the Simplicity Studio SDK installation directory

https://docs.silabs.com/z-wave/7.21.1/zwave-api/md-content-firmware-update-images-and-bootloader

Please consider adding support to flashing OTW firmware ZW Serial API Controller GBL updates on Z-Wave Controller USB sticks.

https://community.silabs.com/s/article/z-wave-700-otw-of-controller

https://community.silabs.com/s/article/z-wave-700-programming-uzb7-controller-stick

https://www.silabs.com/community/wireless/z-wave/knowledge-base.entry.html/2019/01/04/z-wave_700_programm-4Hx0

https://www.silabs.com/community/wireless/z-wave/forum.topic.html/will_serialapi_imagesupporttheserialbootloader-Wwib

Same zwave OTW upgrade process and flash method for ZW SerialAPI Controller Firmware over UART serial interface should also be applicable to all Z-Wave Controller radio USB adapter dongles, radio modules, network-attached gateways, and SoCs.

Note! Z-Wave 500 series OTW programming is slightly different from Z-Wave 700 and Z-Wave 800 series which is the same:

https://community.silabs.com/s/article/gateway-z-wave-500-how-to-implement-otw-programming

For reference, Z-Wave JS UI app already has support for performing OTW (Over-The-Wire) firmware update of Z-Wave Controller.

https://zwave-js.github.io/node-zwave-js/#/api/controller?id=updating-the-firmware-of-the-controller-otw

https://zwave-js.github.io/node-zwave-js/#/troubleshooting/otw-upgrade?id=over-the-wire-otw-firmware-upgrades-of-z-wave-controllers

PS: Think this would align with goal of Home Assistant founders / Nabu Casa of "Streamlining Experiences" for HA frontend/GUI?

https://www.home-assistant.io/blog/2022/01/19/streamlining-experiences/

puddly commented 7 months ago

Have you tested it?

Hedda commented 7 months ago

Have you tested it?

No, I actually just assumed universal-silabs-flasher did not support it since there is no mentioning of the zwave ncp serial api.

Is it supported? Can universal-silabs-flasher already communicate with Z-Wave SerialAPI to automatically enter bootloader?

By the way, note the latest "known issues" regarding OTW update here:

https://docs.silabs.com/z-wave/7.21.1/zwave-api/md-mnt-raid-workspaces-ws-y-vud-vssd9-overlay-gsdk-protocol-z-wave-apps-zwave-ncp-serial-api-readme

and change to OTW Update of Serial API controller in version 7.20 of the Z-Wave SDK:

https://docs.silabs.com/z-wave/7.21.1/zwave-api/#otw-update-of-serial-api-controller

PS: I have previously been using the official Simplicity Commander from Silicon Labs to perform Z-Wave Controller OTW upgrade:

https://docs.silabs.com/z-wave/7.21.1/zwave-api/md-content-firmware-update-images-and-bootloader