HUSBZB-1 Z-Wave firmware portion update

Just thought I would share a working method to update the Nortek HUSBZB-1 device, at least the Z-Wave side. This device is both a Zigbee and Z-Wave, and doing this upgrades the 2014-2015 based firmware to one updated in 2020. As I understand this is the last update for this Z-Wave chip, as the 500 series of devices has been replaced by newer 700 series devices.

Now, there isn’t really a strong reason to do this update, but it does include many years of fixes, and add SmartStart and S2 encryption as well as APIs for NVM backup and restore.

Just thought would share, the real credit goes to jp0550 how posted this in the Hubitat forums (seems Hubitat ships HUSBZB-1 sticks for some deployments).

It isn’t really easy as you do need to open up the stick and short a pin during the instructions, so damage to you device can occur. I can confirm it works though, and now my device which previous reported as Z-Wave 4.05 now shows as Z-Wave 6.09.

On a side note, I updated the Zigbee side using this docker container. It does need to be done on a windows machine. It upgraded the Zigbee stack from 5.4 to 6.6.


I would like to update my Zigbee side but Docker Desktop doesn’t support USB passthrough, correct? I tried to run the container but can’t figure out what the device id path would be?

Using VirtualBox I was able to pass my USB stick through to the Linux machine which ran docker just fine to update it. Cannot recall the mapping, but it depends on the VM technology you use and what it maps it to.

Thanks for sharing! Helpful info, but wish updating the z-wave side was as easy as the zigbee!

Ya, the Z-Wave side was much more difficult, but nice that is support S2 in case I need that some day:)

I’ve read the github info, but where do I type in the commands? I understand that I need to stop home assistant, but if I do, then I can’t ssh into it.

I don’t understand anything about a virtual box. I just want to upgrade the zigbee portion of my Nortek stick for now. Does the stick need to be connected to the pi or my windows machine for this procedure to work?


Thanks for bumping this. Didn’t know this was possible!


I could not do this on the Pi I use to host Home assistant since the docker image created only works on x86/x64 processors (ie. Intel/AMD based computers).

So, I shutdown home assistant. Took the USB stick out of my Raspberry pi, plugged into into my windows laptop, started virualbox running Unbuntu 18.04. Passed through the USB via the config and ran the commands as documented in the “Manual firmware update procedure” section here:

Then shutdown and move the USB stick back to your regular machine.


Thanks for your reply! I will try that tonight.


Got it updated! I had to find a guide on installing virtualbox to get that going.
I had to install docker in Ubuntu first and I had to use ‘sudo’ in front of the docker command to make it work.

I updated using the 6.84 SDK, that brings my Nortek stick up to 6.10. Although it seems to work fine in ZwaveJS it does report the product and product code incorrectly, Ultimately identifying as M417_9E which is a humidity sensor, Sigma Designs (Former Zensys) / Smart Temperature & Humidity Sensor. Very strange.

Did you find how to get the HUSBZB-1 to be reported correctly in ZwaveJS.

I just updated to zwavejs2mqtt 8.3.1 and it is now shown as a Silicon Labs Z-Wave 500 Series Controller ACC-USB3. Not shown as supporting security, but seems otherwise still functioning as expected without S2 security.

For those who updated the zwave portion. How did you guys do it? PIN 15 is tiny I feel like I need a tiny cable and a magnifying glass. I read there was another pad to attach to that’s a little easier. Does anyone know which one it is? It’d be great if you could highlight it in this picture. Also does S2 have to be supported by the firmware? It seems like zwavejs2mqtt (latest version) supports it.

I followed the Hubitat community article in the OP, post #35 mentioned the use of TP28 to do the reset. I used TP28 and it is a much bigger target than pin 15 on the chip. It is on the other side of the board next to the USB connector. Now that zwavejs and zwavejs2mqtt support S2, I will soon be trying to get my Zooz Zen16 included using S2.

Does anybody have a copy of the serialapi_controller_static_OTW_SD3503_US_WITH_BOOTLOADER.hex firmware file they would be willing to share? Silicon Labs has scrubbed everything related to the older 500 series SDK from their site and I’ve been unable to find it elsewhere.

The firmware files are included with the 500-series SDK. The download is available from Silicon Labs. You need an account to access it. Z-Wave 500 Series End Device Software Development Kit - Silicon Labs

Yeah, I have an account and looked through every page on the site (and their GitHub). The 500 series SDK link just goes to a page that says the download is not available, please try again later.

Hmm, not sure where you got stuck exactly, but it works for me. Here’s what I did:

Click on the link I posted. There’s a Download tab. Click on that. Click the blue “Z-Wave SDK” button.

That will take you to the account login page. Login with your account details. After logging in, it will go to this page:

As it says, the download will start automatically, or you can click the link. Did you make it this far?

The only other thing I can think of is that I think you need to agree to the data usage policy before it will let you download. Verify that you’ve accepted the policy in your user profile. That can be found by clicking on your name in the top right, and clicking My Profile. In the profile is a data usage policy setting and it should be “accepted”.


1 Like

Thank you for that tip… somehow I had two profiles on their site and the one that I was logged in with evidently had something corrupted. I logged in with the other one and was able to download without issue. Cheer!