ZWaveJS: Firmware Flasher is a CLI utility to flash Z-Wave Controllers.
Notes - It is entirely possible to use this same tool on Linux or OSX as long as you can install NodeJS and NPM and determine the serial port used by the Z-Stick 7.
Used in this guide:
- Z-Stick 7
- Terminal (Command Prompt) on Windows/Linux/MacOS
- NodeJS
- ZWaveJS: Firmware Flasher
There are 4 sections to this article:
- Determine the port of your Z-Stick 7
- Install NodeJS
- Updating with ZWaveJS Firmware Flasher
- Downgrading with ZWaveJS Firmware Flasher
WARNING: Flashing the wrong firmware may brick your controller. Use at your own risk! Using the wrong firmware files will void the warranty of your Z-Stick 7.
Windows:
- Open up Device Manager on Windows
- Expand Ports (COM & LPT)
- Look for "Silicon Labs CP210x USB to UART Bridge (COMX)" where COMX determines your com port. For example, in the image below, that Z-Stick 7 is COM3
- If you can't locate it for some reason, unplug your Z-Stick 7, take note of what COM port disappears, then re-plug your Z-Stick 7.
Linux:
- Open Terminal
- Input cmd
dmesg | grep tty
- Usually the Z-Stick 7 should appear as /dev/ttyUSB0 (unless you have other USB serial connected).
MacOS
- For the most part, the PORT should be
dev/tty_usbserial-201
- If you are not sure and want to double check what port Z-Stick 7 uses - use this command:
ls /dev/*
ls /dev/tty.usbserial*
Windows:
- Go to https://nodejs.org/en
- Click on 20.10.0 LTS to download it
- Install "node-v20.10.0-x64.msi" and follow the installation instructions.
- Open up your Windows Terminal (Command Prompt)
- First, check if npx is installed by typing in the command "npx --v"
npx --v
This will display a number and will tell you if it is installed or not. - If this isn't recognized, go to your nodeJS folder (probably in C:\Program Files\nodejs) then try typing in the command again.
Linux:
- Open Terminal
- Input cmd #1:
sudo apt-get
- Input cmd #2:
sudo apt-get upgrade
- Input cmd #3:
sudo apt-get install python-software-properties
- Input cmd #4:
curl -sL https://deb.nodesource.com/setup_10.x |sudo -E bash -
- Input cmd #5:
sudo apt-get install nodejs
- Input cmd #6 - verify NodeJS installation:
npm -v
OSX / Mac with Homebrew:
- Open Terminal
- Input cmd #1 - Update brew:
brew update
- Input cmd #2 - Upgrade brew:
brew upgrade
- Input cmd #3 - install NodeJS:
brew install node
- Input cmd #4 - update NodeJS:
brew upgrade node
- Input cmd #5 - Ensure you are pointing to the most recent Python version:
which -a python3
- Input cmd #6 - Ensure Python path with Edit ~/.bash_profile
cat ~/.bash_profile - input the path
export PATH="$PATH:/Applications/DevDesktop/drush"
export NVM_DIR="$HOME/.nvm"
. "/usr/local/opt/nvm/nvm.sh"
export PATH="/usr/local/sbin:/usr/local/bin:$PATH"
export PATH="/usr/local/opt/python@3.12/bin:$PATH”
- Input cmd #7 - Check your python version in a new terminal
python --version
- Input cmd #8 - verify NodeJS installation with two commands:
npx -- node -v
- Download the file you want to flash the Z-Stick 7 with, it's recommended to use an easy-named file rather than the default name title (use something like 1.gbl which is much easier to type in).
- Download V7.18.8 update:
- All Frequencies
- You must update to 7.18.X before you can update to 7.19.X or later.
- You must update to 7.18.X before you can update to 7.19.X or later.
- All Frequencies
- Download V7.18.8 update:
- Place the file into a folder you will be running the command below. (For instance, just place it into "C:\" root drive)
- It's highly recommended to rename the firmware file to something easily typable (for example 1.GBL)
- It's highly recommended to rename the firmware file to something easily typable (for example 1.GBL)
- Input the command
npx @zwave-js/flash@latest<port> <filename> [--verbose] - <port> =
- Windows = COMX
- Linux = dev/ttyUSB0
- MacOS = /dev/
- <filename> = the file name of your downloaded firmware file
- <port> =
- You'll need to install packages, input y, and hit ENTER (You only need to do this once).
- Once installed, it'll run the firmware flash update (*1.gbl is renamed to be easily entered, this is firmware 7.18.8):
When finished it'll state that the firmware flash was successful. Now continue forward down these steps to update to 7.21.5. - (Now Update to 7.21.5) Download the file you want to flash the Z-Stick 7 with, it's recommended to use an easy-named file rather than the default name title (use something like 1.gbl which is much easier to type in).
- Download V7.21.5 update:
- All Frequencies
- You must update to 7.18.X before you can update to 7.19.X or later.
- You must update to 7.18.X before you can update to 7.19.X or later.
- All Frequencies
- Download V7.21.5 update:
- Place the file into a folder you will be running the command below. (For instance, just place it into "C:\" root drive)
- It's highly recommended to rename the firmware file to something easily typable (for example 1.GBL)
- It's highly recommended to rename the firmware file to something easily typable (for example 1.GBL)
- Input the command
npx @zwave-js/flash@latest<port> <filename> [--verbose] - <port> =
- Windows = COMX
- Linux = dev/ttyUSB0
- MacOS = /dev/
- <filename> = the file name of your downloaded firmware file
- <port> =
- You'll need to install packages, input y, and hit ENTER (You only need to do this once).
- Once installed, it'll run the firmware flash update (*1.gbl is renamed to be easily entered, this is firmware 7.20.2):
When finished it'll state that the firmware flash was successful.
4. Downgrading with ZWaveJS Firmware Flasher
This method can be used to install earlier firmware versions if you need to go to a lower firmware version. This method can be used if you find a firmware version more unstable than a future firmware version.
- Download the Bootloader, this will flash the Z-Stick 7 to bootloader mode, this will allow you to install any firmware version to your Z-Stick 7.
- Bootloader firmware
- Recommended renaming the file to something like "bootloader.gbl"
- Recommended renaming the file to something like "bootloader.gbl"
- Bootloader firmware
- To set the Z-Stick 7 into bootloader mode. Type in
npx @zwave-js/flash@latest <port> bootloader.gbl [--verbose] - <port> =
- Windows = COMX
- Linux = dev/ttyUSB0
- <filename> = the file name of your downloaded firmware file
- <port> =
- After a successful update to bootloader, give it a minute, you'll need to unplug the Z-Stick 7, then re-plug it back before the Z-Stick 7 initiates bootloader mode.
- Download the firmware update file now.
- Download V7.21.5 update (make sure to update to V7.18.X before updating to 7.19 or later):
- Download V7.20.2 update (make sure to update to V7.18.X before updating to 7.19 or later):
- Download V7.18.8 update:
- Download V7.17.2 update:
- US Frequency
- EU Frequency
- AU Frequency
- Recommended renaming the file to something like "1.gbl"
- To update the Z-Stick 7 to V7.17.2 or 7.21.5, type in:
npx @zwave-js/flash@latest <port> 1.gbl [--verbose] - <port> =
- Windows = COMX
- Linux = dev/ttyUSB0
- MacOS = /dev/
- <filename> = the file name of your downloaded firmware file
- <port> =