Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature Request] Ability for Z-Wave JS to perform OTW firmware updates of Z-Wave 700 series USB sticks like the Silabs UZB-7, Aeotec Z-Stick 7, and Zooz USB 700 Series Z-Wave Plus S2 Stick #2545

Closed
Hedda opened this issue May 5, 2021 · 92 comments · Fixed by #5321
Labels
enhancement New feature or request

Comments

@Hedda
Copy link
Contributor

Hedda commented May 5, 2021

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

This is a enhancement feature request for OTW to first automatically enter the bootloader and then flash firmware GBL image file.

The same OTW upgrade process and flash method for ZW SerialAPI Controller Firmware over UART serial interface should also be applicable to all adapters based on ZGM130/ZGM130S or ZGM230/ZGM230S radio modules and EFR32ZG14 or FR32ZG23 SoCs.

https://www.silabs.com/documents/public/data-sheets/DSH14483.pdf

https://www.silabs.com/documents/public/data-sheets/efr32zg14-datasheet.pdf

https://www.silabs.com/documents/public/data-sheets/zgm130s-datasheet.pdf

OTW programming of Silabs UZB7 Controller Stick and other EFR32ZG14 or ZGM130S based Z-Wave 700 series controllers:

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

Aeotec posted these OTW upgrade guides for Aeotec Z-Stick 7:

https://help.aeotec.com/support/solutions/articles/6000252997-update-z-stick-7-through-raspian-os

https://help.aeotec.com/support/solutions/articles/6000252296-update-z-stick-7-sdk-7-15

Zooz posted this OTW upgrade guide for Zooz ZST10 700 Z-Wave Stick:

https://www.support.getzooz.com/kb/article/931-how-to-perform-an-ota-firmware-update-on-your-zst10-700-z-wave-stick/

UZB-7 BRD1001A dongle is the official Z-Wave 700 reference design from Silabs SLWSTK6050A Z-Wave 700 Wireless Starter Kit:

https://www.silabs.com/development-tools/wireless/z-wave/z-wave-700-starter-kit

https://www.silabs.com/development-tools/wireless/z-wave/z-wave-long-range-700-starter-kit

Surprisingly the SLUSB001A / SLUSB7000A UZB-7 looks like the most affordable Z-Wave 700 USB adapters readily available today:

https://www.google.com/search?q=SLUSB001A

PS: This is related to the questions about firmware posted in the discussion section -> #2544

PPS: This is a follow-up feature request to #1357 which was about adding support for SLUSB001A (SLUSB7000A) UZB-7 USB stick.

@Hedda Hedda added the enhancement New feature or request label May 5, 2021
@Hedda
Copy link
Contributor Author

Hedda commented May 5, 2021

As long as the standard Silabs Gecko bootloader is used it should be also able to upgrade firmware via XMODEM binary transfer:

https://silabs-prod.adobecqms.net/content/usergenerated/asi/cloud/content/siliconlabs/en/community/wireless/z-wave/knowledge-base/jcr:content/content/primary/blog/z-wave_700_programm-4Hx0.social.0.10.html

As such a workaround could be to port or modify Elelabs EZSP Firmware Update Utility and/or walthowd firmware updater image:

https://github.com/Elelabs/elelabs-zigbee-ezsp-utility

https://github.com/walthowd/husbzb-firmware

While Elelabs EZSP Firmware Update Utility is made for Silabs Zigbee adapters it works with EFR32 that have a similar bootloader(?).

PS: Like other Z-Wave 700 sticks it is based on EFR32ZG14 Zen Gecko Z-Wave and require CP210x USB to UART Bridge VCP Drivers.

https://www.silabs.com/documents/public/schematic-files/PHD14501.zip

@blhoward2
Copy link
Collaborator

blhoward2 commented May 6, 2021

I'm not saying this isn't worthwhile, but one issue is that the firmware is bundled with Simplicity Studio. If OTW was supported, from where would you get the file? By the point you install that to get the file you're already one click from upgrading in Simplicity Studio.

@stephenl03
Copy link

Being able to download the software and then just point to a bin file (or whatever the extension is) to update is much easier than installing additional software and having to run it. This is especially true if you are running zwavejs in a headless environment on a non-Ubuntu host.

@blhoward2
Copy link
Collaborator

blhoward2 commented May 7, 2021

It doesn't work that way though. You have to run Simplicity Studio to tell it to install the additional tools for zwave to have it install the next 2-3 GB including the zwave controller. At least I think that is the point at which it is installing the file. The whole thing is a series of enormous downloads. If someone can verify that it installs the file on the Mac version (which can install but not run the zwave controller), or that it is installed in the first download, then it is of much greater utility.

@blhoward2
Copy link
Collaborator

blhoward2 commented May 7, 2021

FTR, I just emailed Zooz and Aeotec to see if they intend to distribute firmware files directly for their sticks either now or in the future.

As indicated above, SiLabs documents suggest that OTW updates for the UZB-7, and likely the other 700 sticks, is via the XMODEM protocol. Baud rate is 115200 bps. https://www.silabs.com/community/wireless/z-wave/knowledge-base.entry.html/2019/01/04/z-wave_700_programm-4Hx0

Rather than try to use one of the Python implementations linked, there is at least one XMODEM module for Node.js. https://github.com/exsilium/xmodem.js/

@Hedda
Copy link
Contributor Author

Hedda commented May 7, 2021

FTR, I just emailed Zooz and Aeotec to see if they intend to distribute firmware files directly for their sticks either now or in the future.

I guess the question here is also about if the Z-Wave JS project/community should even bother to ask for permission before hosting and/or distributing commercial companies self-contained copyrighted OTW firmware images in their unmodified binary blob format (e.i. .gbl, .ebl, .hex, .s37, .bin, .img, etc.).

Distributing unmodified copyrighted firmware binary blobs is usually fine as long as you simply do not ask for permission. You would be using these OTW firmware image files for their intended purpose and that should not hurt the company in any way.

It is probably better not to ask and just do, wait and hope that they will not send your cease and desist letter. I am guessing that the chances are much higher than you are more likely to get a no as the answer if you ask in advance than them stopping you later if you do not ask at all in the first place.

Not sure if fully legal or not but from what I can tell hardware manufacturers normally do not actively chase or sue open-source projects for simply hosting and/or distributing their companies self-contained binary blobs such as firmware image files or driver binaries as long as they are not modified in any way or used for anything other then their intended purposes.

For reference, see examples https://github.com/Koenkk/Z-Stack-firmware/ and https://github.com/Koenkk/zigbee-OTA

Maybe not quite covered by "Fair use" or "Fair dealing"

https://en.wikipedia.org/wiki/Fair_use

https://en.wikipedia.org/wiki/Fair_dealing

@Hedda
Copy link
Contributor Author

Hedda commented May 7, 2021

Rather than try to use one of the Python implementations linked, there is at least one XMODEM module for Node.js. https://github.com/exsilium/xmodem.js/

FYI, one of the benefits of the firmware updater Docker image by walthowd is that it contains scripts to probe/scan to detect which exact adapter it is and if the adapter supports it can automatically restart it into bootloader-mode so it can upgrade "automagically"

https://github.com/walthowd/husbzb-firmware

But yes, for Z-Wave JS purpose it would probably be better to just borrow inspiration from that concept for a new implementaion.

@blhoward2
Copy link
Collaborator

blhoward2 commented May 7, 2021

We've already decided we are not interested in hosting firmware images. It's a copyright violation and we want to work with manufacturers. SiLabs has been supportive, as has Aeotec and Zooz. They ship us pre-release devices to test and samples when there are problems. SiLabs answers our questions. It's not worth it.

We've already asked and have some agreement with Aeotec, Zooz, and Inovelli as a start to push their firmware updates through the UI we just haven't built out the functionality yet.

@blhoward2
Copy link
Collaborator

blhoward2 commented May 7, 2021

I've confirmed that Zooz doesn't intend to issue firmware updates for their sticks.

Aeotec has no present plans to do so as the source code from SiLabs isn't available yet for them to build their own. They've asked SiLabs if they'd be allowed to distribute the bundled file if we supported this.

@jspanitz
Copy link

I've confirmed that Zooz doesn't intend to issue firmware updates for their sticks.

Well that sucks - I hope if enough of us ask they will change their mind.

@blhoward2
Copy link
Collaborator

I've confirmed that Zooz doesn't intend to issue firmware updates for their sticks.

Well that sucks - I hope if enough of us ask they will change their mind.

It's all the same firmware so if anyone of them post it that would work. Aeotec is still working with SiLabs to see if they can post the firmware.

@Hedda
Copy link
Contributor Author

Hedda commented Sep 22, 2021

Aeotec now has a 'how-to' upgrade firmware guide with download links for the Aeotec Z-Stick 7 GBL firmware files for OTW:

https://help.aeotec.com/support/solutions/articles/6000252296-update-z-stick-7-sdk-7-15

For serial commands see:

https://siliconlabs.force.com/s/article/z-wave-700-programming-uzb7-controller-stick?s1oid=00DA0000000L2

The SerialAPI command 0x27 FUNC_ID_AUTO_PROGRAMMING will drop the 700 series into the bootloader.

Send the binary string below.

01h, 03h, 00h, 27h, DBh will drop into the bootloader as described in the 500 series INS11681 section 5.2

https://cn.silabs.com/documents/public/user-guides/INS11681-Instruction-500-Series-Z-Wave-Chip-Programming-Mode.pdf

@jspanitz
Copy link

Aeotec now has a 'how-to' upgrade firmware guide with download links for the Aeotec Z-Stick 7 GBL firmware files for OTW:

https://help.aeotec.com/support/solutions/articles/6000252296-update-z-stick-7-sdk-7-15

Anyone want to brick their Zooz?

@Hedda
Copy link
Contributor Author

Hedda commented Sep 22, 2021

Aeotec now has a 'how-to' upgrade firmware guide with download links for the Aeotec Z-Stick 7 GBL firmware files for OTW:
https://help.aeotec.com/support/solutions/articles/6000252296-update-z-stick-7-sdk-7-15

Anyone want to brick their Zooz?

I do not have a Zooz USB 700 Series Stick, but know that flashing that EFR32ZG14 firmware for US Frequency should not brick it.

PS: Check out additional flashing instructions for OTW Firmware Upgrade via Simplicity Studio v5 Z-Wave Tool in #2544 and #2549

@blhoward2
Copy link
Collaborator

blhoward2 commented Sep 25, 2021

Confirmed manual process to upgrade working in Linux. Credit to cpw:

  1. installed minicom
  2. figured out where device was (/dev/ttyUSB0 for me)
  3. unplugged/plugged in device
  4. in a shell: stty 115200 cs8 -cstopb -F /dev/ttyUSB0
  5. then in same shell: printf '\x01\x03\x00\x27\xDB' >/dev/ttyUSB0
  6. configure minicom: minicom -s important: turn hw flow control OFF here, set baud etc
  7. run minicom: minicom -D /dev/ttyUSB0
  8. press enter a bunch of times, you'll see menu as demoed. (may need to replug stick to get this to happen)
  9. select 1 in menu to flash. in minicom, use ctrl shift S, select xmodem, and specify path to file. Upload should proceed (it'll take a minute)
  10. press 2 once upload is complete in minicom to "run" the new firmware.

@blhoward2
Copy link
Collaborator

Aeotec put together detailed instructions. Oddly for some reason zwavejs2mqtt has to be running for this to work. We need to look into that more as we may be missing an initialization step or something.

https://help.aeotec.com/support/solutions/articles/6000252820-update-z-pi-7-with-raspbian-os-through-an-rpi

@kpine
Copy link
Contributor

kpine commented Oct 12, 2021

For another perspective, here's my guide: https://gist.github.com/kpine/f7206cfc5625b4c2c54a8f6ceb6aa2ca

I went through the process today and wanted something to refer to in the future.

I did not have zwavejs2mqtt running, it didn't seem like a good idea to me.

@Hedda Hedda changed the title Ability to perform OTW firmware update Z-Wave 700 series USB sticks like the SLUSB001A Ability to perform OTW firmware update Z-Wave 700 series USB sticks like the Silabs UZB-7, Aeotec Z-Stick 7, and Zooz USB 700 Series Z-Wave Plus S2 Stick Oct 19, 2021
@kpine
Copy link
Contributor

kpine commented Dec 3, 2021

FYI, just picked up a Zooz ZST10 700. It came installed with SDK version 7.15.01. Either the stick I received does not support controller OTW firmware updates, or something is different than the others. I attempted to install multiple newer versions of FW and all fail.

image

From the OTW guide:

If you may get error 0x50 or 0x18 during ZGM130S or EFR32ZG14 controller firmware update, please make sure the bootloader and encryption keys have already been flashed into the device via SWD interface before you perform the OTW/OTA update. UZB-7 does not expose the SWD interface, it is required to open the plastic box and connect its SWD interface to programmer in this situation. Besides, ensure the gbl file being load contains an increased firmware version comparing the one that the device is currently running.

PC-Controller, minicom, and zw_programmer all fail. The bootloader is installed, and the fw version is newer. I'm wondering if they are using different encryption keys than are used for the Silicon Labs GBL files, or the keys are not installed?

root@dev:/app/bin# ./zw_programmer -s /dev/ttyUSB0 -p ZW_SerialAPI_Controller_7.16.3_297_EFR32ZG14_REGION_US.gbl
Using serial device /dev/ttyUSB0
Connected to Serial device: OK
Serial version: 9, Chip type: 7, Chip version: 0, SDK: 7.15.01, SDK Build no: 178 SDK git hash: 30313233343536373839414243444546
Chip library: 7, ZW protocol: 7.15, NVM: bridge7.15
nvm_id: bridge7.15
Auto Programming enabled

Gecko Bootloader v1.12.01
1. upload gbl
2. run
3. ebl info
BL >1

begin uploadnumbytes: 159488, oldnumbytes: 159452
Enter C(67) ACK(1) NAK (2)
Received: d
unknown char received d
Enter C(67) ACK(1) NAK (2)
Received: a

unknown char received a
Enter C(67) ACK(1) NAK (2)
Received: 0
unknown char received 0
Enter C(67) ACK(1) NAK (2)
Received: 43 C
Received C
2106708837 Sending Firmware file to Gecko module
|send_data 0 159488 1                                |
Sent 0 bytes, remaining:159488 bytes
>sent offset :0
new offset :128
sending 133 bytes: 0x01 0x01 0xfe
Enter C(67) ACK(1) NAK (2)
Received: 18

2106708869 Received CANError in transmission
Closing Serial connection

@Hedda
Copy link
Contributor Author

Hedda commented Dec 3, 2021

FYI, just picked up a Zooz ZST10 700. It came installed with SDK version 7.15.01. Either the stick I received does not support controller OTW firmware updates, or something is different than the others. I attempted to install multiple newer versions of FW and all fail.

@kpine If you have a Windows OS machine then maybe try the instructions I posted in #2544 for Silicon Labs UZB-7 USB Stick:

Originally posted by @Hedda in #2544 (comment)

Note! Users should first update firmware to a later GA (General Availability) version of firmware before using UZB-7 as a commercial product.

Tip! You can perform local firmware upgrade using OTW (Over The Wire) on UZB7 USB stick using Z-Wave 700 Serial API firmware GBL XModem file via the "OTW Firmware Upgrade" option in Silabs "Z-Wave PC Controller" tool that gets installed with Simplicity Studio.

Quick Start-Up Guide to flash UZB-7 USB stick with latest firmware

Here is a quick start-up guide on how to perform OTW Firmware Upgrade on UZB-7 using "Z-Wave PC Controller" tool in Simplicity Studio.

Prerequisites:

To actually get/download the latest firmware file for Z-Wave 700 USB stick you need to register for a free Silicon Labs Community account at https://community.silabs.com/SL_CommunitiesSelfReg and install Simplicity Studio v5 for your operating system, start it and login to install + update the Z-Wave technology type SDK package inside Simplicity Studio. See https://www.silabs.com/developers/simplicity-studio

  1. Connect/plug-in the Z-Wave 700 Controller USB stick to your computer.
  2. Z-Wave 700 Controller USB sticks will normally use a Silabs CP2102N USB-to-serial converter chip for the MCU SoC so if needed by your operating system then install the Virtual COM Port (VCP) drivers and CP210x VCP Drivers from Silicon Labs. The latest drivers are available at https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers (for Windows 10 download and install the "CP210x Universal Windows Driver" package).
  3. If using Windows 10 then be sure to disable Energy Saving Mode on the virtual com port so the dongle does not go into sleep: https://silabs-prod.adobecqms.net/community/wireless/z-wave/knowledge-base.entry.html/2020/06/04/uzb7_not_accessibleonwindows10-0Dw1
  4. Start and run the "Z-Wave PC Controller" from Simplicity Studio from under the Tools menu.
  5. Click on the “Setting-wheel” in the Right-Top corner of the Z-Wave PC Controller tool and select “Silicon Labs CP210x USB
    to UART Bridge”. Click OK.
  6. Click on "NVM Backup/Restore" select a folder and file path to backup files to in order to keep your a backup network stored. Make sure to name it with something like "ZWave_USB_Stick_Backup_date_and_time". Click on Backup.
  7. Click the "OTW Firmware Upgrade" box and select the correct GBL file, (taking note that if you do not select a firmware with a version that is newer than your existing version you will get an error an upgrade will fail as downgrade or reflashing same version is not possible here). Firmware upgrade should be started and completed automatically.

FYI, if use default directories for Simplicity Studio + the Z-Wave technology type package GBL firmware binary files should after install be in:

C:\SiliconLabs\SimplicityStudio\v5\developer\sdks\gecko_sdk_suite\v3.2\protocol\z-wave\Apps\bin\gbl

Silabs UZB-7 USB Stick uses an EFR32ZG14 SoC so you need to select the latest ZW SerialAPI Controller firmware for it and your RF region.

So for example, currently, currently the latest firmware file (Version 7.16.2.0 / Version 7.16 Build 267) for the UZB7 USB sticks for Europe (RF region) is:

"ZW_SerialAPI_Controller_7.16.2_267_EFR32ZG14_REGION_EU.gbl"

Respectively, currently, the latest firmware file (Version 7.16.2.0 / Version 7.16 Build 267) for the UZB7 USB sticks for the United States / North America (RF region) is:

"ZW_SerialAPI_Controller_7.16.2_267_EFR32ZG14_REGION_US.gbl"

PS: Move information is available in INS13114 Z-Wave PC based Controller v5 User Guide from Silicon Labs:

https://www.silabs.com/documents/public/user-guides/INS13114-Z-Wave-PC-Based-Controller-v5-User-Guide.pdf

@kpine
Copy link
Contributor

kpine commented Dec 3, 2021

I don't see anything in your reply that isn't something I've already tried. Is there some new information there?

@blhoward2
Copy link
Collaborator

I'll just ask Zooz.

@kpine
Copy link
Contributor

kpine commented Dec 3, 2021

And yes, the region matches the firmware files I tried, US. For good measure, I applied the region setting even though it was already listed as US.

image

In total I tried 3 files:

  • ZW_SerialAPI_Controller_7.15.4_256_EFR32ZG14_REGION_US.gbl
  • ZW_SerialAPI_Controller_7.16.2_267_EFR32ZG14_REGION_US.gbl
  • ZW_SerialAPI_Controller_7.16.3_297_EFR32ZG14_REGION_US.gbl

My UZB7 is currently running 7.16.2, I had no problem upgrading it with that and 7.15.4.

@jspanitz
Copy link

jspanitz commented Dec 3, 2021

I'll just ask Zooz.

Hope you get a better answer than I did - I asked when the stick was still pre-release and they stated then they won't support upgrades to it.

@blhoward2
Copy link
Collaborator

They won’t support upgrades to it but that’s not what I asked them. Supporting upgrades is different than affirmatively blocking upgrades. In any event, we’ll see what our contact has to say.

@kars85
Copy link

kars85 commented Dec 4, 2021

Plugged my Zooz ZST10 into my Win10 laptop and gave Simplicity Studio OTW a shot. Same error as @kpine - this was at ZW_SerialAPI_Controller_7.16.3_297_EFR32ZG23_REGION_US.gbl

Nothing of substance to add here, really. I have had my stick for maybe 6 weeks preinstalled with 7.15.

@blhoward2
Copy link
Collaborator

Can you all try a different version? I'm curious if it's just an issue with 7.16.3.

@Hedda
Copy link
Contributor Author

Hedda commented Feb 24, 2022

They were referring to ZW_SerialAPI_Controller_7_17_1_344_ZGM130S_REGION_US.gbl

FYI, not sure if Silicon Labs will upload 7.17.2 GBL and future updates on GitHub but they did at least upload 7.17.1 here:

https://github.com/SiliconLabs/gecko_sdk

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

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

Example:

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

GitHub web interface offers a truncated list so click the "Go to file" on GitHub and enter "ZW_SerialAPI_Controller_7_17".

Otherwise have to register for a free Silabs account and download + install the Silicon Labs Simplicity Studio application:

https://www.silabs.com/developers/simplicity-studio

PS: Gecko SDK 7.17 was the first version they published on GitHub and not sure if they will continue to publish all there.

@kpine
Copy link
Contributor

kpine commented Feb 24, 2022

They were referring to ZW_SerialAPI_Controller_7_17_1_344_ZGM130S_REGION_US.gbl

Hmm, doesn't make much sense then. Why are only "some users" affected? I was successful using the Silicon Labs file, and others were too, so what's the difference? The file Zooz is distributing (via their guide) is identical to the Silicon Labs file. Sorry, I know you're only passing along the message, but the explanation is missing something.

❯ sha256sum *.gbl
ef0b004cb62c118d0a59b1b82b432385c4a9ff6f4cef1cd9cc708c1b9c5bf880  ZST10-700-ZW_SerialAPI_Controller_7_17_1_344_ZGM130S_REGION_US.gbl
ef0b004cb62c118d0a59b1b82b432385c4a9ff6f4cef1cd9cc708c1b9c5bf880  ZW_SerialAPI_Controller_7_17_1_344_ZGM130S_REGION_US.gbl

@alexruffell
Copy link

Why are only "some users" affected?

I have one I purchased in Dec 2021 and it upgraded fine. I am guessing that something missed on their (Zooz) end when flashing a number of units then shipped to customers is triggering this issue. If that is the case, then only customers who received units with improper firmware may run into this issue. In their response they stated they have a tool to reflash the dongle properly, that overcomes the same/older firmware limitation. Unless these users are down (no zwave), then it sounds like a solution (new file from SiLabs fixing issue) is only 2 weeks away and users will be able to update. If I were them, I'd wait instead of shipping my zwave controller off as transit time to and back along with handling will likely eat up most of the time anyway.

To clarify - I am assuming there is a difference between the first bring up of the hardware zwave controller, and later firmware updates. Something along the lines of a bootloader needing to be loaded first using a JTAG programmer (or similar), and future updates being enabled by this existing code loaded at the manufacturing stage. I have no idea whether it is the case here but this is what I've seen before on other hardware.

@jspanitz
Copy link

I am assuming there is a difference between the first bring up of the hardware zwave controller, and later firmware updates

Very good possibility, however, mine is from April 2021 and I flashed without issue.

@lappat
Copy link

lappat commented Feb 26, 2022

Hi,

i have a ZST10 700, and have issue with dead node every time. i have try with Simplicity studio to flash to version 17.1 but got error 0x50. if i understand, a new version will came out in 1-2 week 17.2 to correct this issue? or it is possible to update with another way?

thanks for your time,

Patrick

@Hedda
Copy link
Contributor Author

Hedda commented Feb 28, 2022

i have a ZST10 700, and have issue with dead node every time. i have try with Simplicity studio to flash to version 17.1 but got error 0x50. if i understand, a new version will came out in 1-2 week 17.2 to correct this issue? or it is possible to update with another way?

@lappat That specific problem is really off-topic for this request about an OTW feature, so that is instead discussed here -> #3906

@Hedda
Copy link
Contributor Author

Hedda commented Mar 22, 2022

FYI, here is direct links for EU and US regions to 7.17.2 firmware image download for the most common Z-Wave 700 series chips:

https://github.com/SiliconLabs/gecko_sdk/blob/gsdk_4.0/protocol/z-wave/Apps/bin/gbl/ZW_SerialAPI_Controller_7_17_2_406_EFR32ZG14_REGION_EU.gbl?raw=true

https://github.com/SiliconLabs/gecko_sdk/blob/gsdk_4.0/protocol/z-wave/Apps/bin/gbl/ZW_SerialAPI_Controller_7_17_2_406_EFR32ZG14_REGION_US.gbl?raw=true

https://github.com/SiliconLabs/gecko_sdk/blob/gsdk_4.0/protocol/z-wave/Apps/bin/gbl/ZW_SerialAPI_Controller_7_17_2_406_ZGM130S_REGION_EU.gbl?raw=true

https://github.com/SiliconLabs/gecko_sdk/blob/gsdk_4.0/protocol/z-wave/Apps/bin/gbl/ZW_SerialAPI_Controller_7_17_2_406_ZGM130S_REGION_US.gbl?raw=true

  • Silicon Labs UZB-7 (Silabs SKU: SLUSB001A/SLUSB7000A) (based on EFR32ZG14)
  • Aeotec Z-Stick 7 - Z-Wave 700 series USB adapter/dongle/stick (based on EFR32ZG14)
  • Aeotec Z-Pi 7 - Z-Wave 700 series gateway development board (based on EFR32ZG14)
  • Zooz USB 700 Series Z-Wave Plus S2 Stick ZST10 700 (based on ZGM130S)
  • Z-Wave.Me RaZberry 7 (zme_razberry7 by Smart Systems @ Z-Wave.Me) (based on ZGM130S but require custom firmware)
  • Z-Wave.Me RaZberry 7 Pro (zme_razberry7 by Smart Systems @ Z-Wave.Me) (based on ZGM130S but require custom firmware)

As mentioned before, Silicon Labs are now releasing on GitHub so other regions and different chips can also be found by selecting "Go to file" on https://github.com/SiliconLabs/gecko_sdk/tree/gsdk_4.0/protocol/z-wave/Apps/bin/gbl and then entering "ZW_SerialAPI_Controller_7_17_2_406_" (for web download must then go to the GiHub web page first and then click "Download").

@xCJPECKOVERx
Copy link

Having the same issue updating firmware on the Zooz zst10-700.
I've tried with the new 7.17.2 images from Zooz' site as well as the gecko_sdk one linked above. Both fail with error 0x50. Seems contacting Zooz for warranty might be the only option.

@thoulegend
Copy link

image
then
image
then
image
then crash
image

can someone help me with this?
I have a ZooS zst10 s2 stick
thanks!

@blhoward2
Copy link
Collaborator

blhoward2 commented May 11, 2022

Did you click OTW or OTA? Sticks use OTW. Also, make sure the fw file isn't corrupted.

Also, is that the 700 stick? They have another with the same name.

@thoulegend
Copy link

definetely OTW - ota doesnt provide me with the options to update the firmware with the dialog screenshots shown

says its the 700 Bought this:
https://www.amazon.ca/gp/product/B07GNZ56BK/ref=ppx_od_dt_b_asin_title_s00?ie=UTF8&psc=1

@thoulegend
Copy link

thoulegend commented May 11, 2022

it doesnt say 700 on the stick though - crud wonder if something happened and i got an older one

@Hedda
Copy link
Contributor Author

Hedda commented May 11, 2022

As OP can I suggest maybe post in the discussions section instead as this issue tracker is for an OTW feature request to zwave-js:

https://github.com/zwave-js/node-zwave-js/discussions

Maybe a create new dedicated discussion there about "Zooz 700 Series Z-Wave Plus S2 USB Stick ZST10 700" similar to these:

#2544
#2549
#4112

@strid3r21
Copy link

image then image then image then crash image

can someone help me with this? I have a ZooS zst10 s2 stick thanks!

im having exactly the same issue right now. did you ever solve this?

@Hedda
Copy link
Contributor Author

Hedda commented Aug 3, 2022

can someone help me with this? I have a ZooS zst10 s2 stick thanks!

im having exactly the same issue right now. did you ever solve this?

Again, as OP I suggest posting in the discussions section instead as this issue tracker is for an OTW feature request to zwave-js:

https://github.com/zwave-js/node-zwave-js/discussions

Maybe a create new dedicated discussion there about "Zooz 700 Series Z-Wave Plus S2 USB Stick ZST10 700" similar to these:

#2544
#2549
#4112

@darkbasic
Copy link
Contributor

darkbasic commented Nov 29, 2022

@vezinpi Thanks, but we figured that out over two months ago. wink I also have it documented in my upgrade guide.

@kpine how do you get the latest supported version for each model? I see 7.18.1 for the Z-Pi 7 and 7.18.3 for the UZB-7 but they use the same exact firmware, in fact I'm using 7.18.3 on the Z-Pi as well.

@Hedda
Copy link
Contributor Author

Hedda commented Nov 29, 2022

Not sure if its code could also be reused for OTW firmware update flashing of Silicon Labs EFR32 series of SoCs for Z-Wave 700 and Z-Wave 800, but FYI, puddly and agners (developers from the Home Assistant project) are currently working on a Python-based "Universal Silicon Labs Flasher" (universal-silabs-flasher) library/CLI-tool that uses XMODEM for OTW firmware update flashing of Silicon Labs EFR32 series of SoCs for Zigbee and Thread.

https://github.com/puddly/universal-silabs-flasher

That Python script communicates with radios using the application CLI to first automatically enter the bootloader mode and then it flashes a firmware image with XMODEM, so maybe could replace the first application CLI part to also allow Silicon Labs EFR32 series of SoCs with Z-Wave firmware to automatically enter the bootloader?

I believe that all Silicon Labs EFM32 and EFR32 series of SoCs (including Z-Wave 700 and Z-Wave 800) use the standard Silabs Gecko bootloader so once in bootloader mode it could, in theory, also be made to upgrade Z-Wave Controller firmware using GBL image files via XMODEM binary transfer, or?

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

https://www.silabs.com/documents/public/user-guides/ug266-gecko-bootloader-user-guide.pdf

https://www.silabs.com/documents/public/user-guides/ug489-gecko-bootloader-user-guide-gsdk-4.pdf

puddly's "Universal Silicon Labs Flasher" library/CLI-tool is in turn meant to be used as a dependency in Home Assistant's official "SiliconLabs Zigbee/OpenThread Multiprotocol Add-on" (I believe puddly and agners is working on that tool for Nabu Casa):

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

That Home Assistant addon is currently meant for handling both Silabs multiprotocol dependencies and offer ability to perform OTW firmware update flashing of Silicon Labs EFR32-based "Home Assistant SkyConnect USB Stick" for Zigbee and Thread:

https://www.home-assistant.io/skyconnect/

https://community.home-assistant.io/t/home-assistant-skyconnect-usb-stick-announced-will-be-compatible-with-both-zigbee-and-thread-including-matter-chip-over-thread/433594

(As well as same for integrated Silabs EFR32 Zigbee/Thread radio in "Home Assistant Yellow" -> https://yellow.home-assistant.io/ )

@darkbasic
Copy link
Contributor

xmodem ain't that bad, definitely better than the shitty Aeotec Z-Stick Windows executable that bricks your stick on VMs: https://youtu.be/sGl3b394JsQ

@kpine
Copy link
Contributor

kpine commented Nov 29, 2022

@vezinpi Thanks, but we figured that out over two months ago. wink I also have it documented in my upgrade guide.

@kpine how do you get the latest supported version for each model? I see 7.18.1 for the Z-Pi 7 and 7.18.3 for the UZB-7 but they use the same exact firmware, in fact I'm using 7.18.3 on the Z-Pi as well.

I go by what the vendor is providing, e.g.:

https://aeotec.freshdesk.com/support/solutions/articles/6000252296-update-z-stick-7-with-windows

image

https://aeotec.freshdesk.com/support/solutions/articles/6000252997-update-z-stick-7-through-raspian-os

image

@darkbasic
Copy link
Contributor

Ah ok, but I think they're just too lazy to keep that page updated with Silabs' latest.

@blhoward2
Copy link
Collaborator

No, they just test the images before recommending that users upgrade.

@Hedda
Copy link
Contributor Author

Hedda commented Nov 30, 2022

Please respect that this specific feature request thread is not for asking for help how to flash Z-Wave adapters by different means!

Again, please post off-topic support in discussions section instead as this issue tracker is only for TW feature request to zwave-js.

https://github.com/zwave-js/node-zwave-js/discussions

No offence is meant, I just don't want this feature request thread to continue with off-topic subjects and get unreadable for it.

9c97a6c65ca737844e48b4aec14d57d64a9e6ff0

Risk of Thread Hijacking according Urban Dictionary to https://www.urbandictionary.com/define.php?term=Thread%20Hijacking

So please instead post a new discussion thread there or look if any of the existing discussions are actually on-topic, see examples:

#2549

#2544

#4112

@Hedda Hedda changed the title Ability to perform OTW firmware update Z-Wave 700 series USB sticks like the Silabs UZB-7, Aeotec Z-Stick 7, and Zooz USB 700 Series Z-Wave Plus S2 Stick [Feature Request] Ability for Z-Wave JS to perform OTW firmware updates of Z-Wave 700 series USB sticks like the Silabs UZB-7, Aeotec Z-Stick 7, and Zooz USB 700 Series Z-Wave Plus S2 Stick Nov 30, 2022
@Hedda
Copy link
Contributor Author

Hedda commented Jan 26, 2023

@AlCalzone Slightly off-topic but as a follow-up question I am sure many end-users are wondering if you now also have plans on adding an easy-to-use OTW firmware update feature to the frontend GUI of the official Home Assistant integration for Z-Wave JS?

https://www.home-assistant.io/integrations/zwave_js/

https://github.com/zwave-js/node-zwave-js/blob/master/docs/api/controller.md#updating-the-firmware-of-the-controller-otw

#5362

#5321

#5326

#4742

#4515

@darkbasic
Copy link
Contributor

@Hedda does he work on the HASS frontend as well? Btw you can already use zwavejs-ui with hass and have it integrated into the app.

@AlCalzone
Copy link
Member

Z-Wave JS UI has support already. HA support is in the works too 👍🏻

@Hedda
Copy link
Contributor Author

Hedda commented Jan 26, 2023

Z-Wave JS UI has support already. HA support is in the works too 👍🏻

@AlCalzone Awesome to hear that also Home Assistant support is in the works too!

@Hedda does he work on the HASS frontend as well?

@darkbasic Not sure if AlCalzone will also actively work on the Z-Wave JS integration's frontend / GUI parts in Home Assistant (I think that the frontend / UI parts for Z-Wave JS integration have so far mostly been done by raman325 and bramkragten), however, it was covered in Home Assistant's "Building the Open Home" newsletter that AlCalzone (Dominic Griesel) has recently been fill-time employed by Nabu Casa (Home Assistant's founders company/organization) with focus on improving the @zwave-js project among other things.

https://building.open-home.io/a-new-home-for-our-newsletter/

https://www.nabucasa.com/about/

PS: One of the ongoing forever goals of Home Assistant founders / Nabu Casa is "Streamlining Experiences", e.g. more GUI usage:

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.