This guide will teach you how to use Windows, Linux, or MacOS to use the tool: "Z-Wave JS: Firmware Flasher" with NodeJS. This proves to be much easier to utilize for updating or downgrading without the need to set ZWaveJS UI into bootloader mode if you need to restore to different firmware versions (or just to update it). 


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:


There are 4 sections to this article:

  1. Determine the port of your Z-Stick 7
  2. Install NodeJS
  3. Updating with ZWaveJS Firmware Flasher
  4. 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.




1. Determine the port of your Z-Stick 7


Windows:

  1. Open up Device Manager on Windows
  2. Expand Ports (COM & LPT)
  3. 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
  4. 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:

  1. Open Terminal
  2. Input cmd
    • dmesg | grep tty
  3. Usually the Z-Stick 7 should appear as /dev/ttyUSB0 (unless you have other USB serial connected).


MacOS

  1. For the most part, the PORT should be
    • dev/tty_usbserial-201 
  2. 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*

       




2. Install NodeJS 


Windows:

  1. Go to https://nodejs.org/en
  2. Click on 20.10.0 LTS to download it
  3. Install "node-v20.10.0-x64.msi" and follow the installation instructions.
  4. Open up your Windows Terminal (Command Prompt)
  5. 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.
  6. If this isn't recognized, go to your nodeJS folder (probably in C:\Program Files\nodejs) then try typing in the command again.

Linux: 

  1. Open Terminal
  2. Input cmd #1:
    • sudo apt-get
  3. Input cmd #2:
    • sudo apt-get upgrade
  4. Input cmd #3:
    • sudo apt-get install python-software-properties
  5. Input cmd #4:
  6. Input cmd #5:
    • sudo apt-get install nodejs
  7. Input cmd #6 - verify NodeJS installation:
    • npm -v



OSX / Mac with Homebrew: 

  1. Open Terminal
  2. Input cmd #1 - Update brew:
    • brew update
  3. Input cmd #2 - Upgrade brew:
    • brew upgrade
  4. Input cmd #3 - install NodeJS:
    • brew install node
  5. Input cmd #4 - update NodeJS:
    • brew upgrade node

  6. Input cmd #5 - Ensure you are pointing to the most recent Python version:
    • which -a python3
  7. 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”

  8. Input cmd #7 - Check your python version in a new terminal
    • python --version
  9. Input cmd #8 - verify NodeJS installation with two commands:
    • npx --
    • node -v





3. Updating with ZWaveJS Firmware Flasher

  1. 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.


  2. 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)

  3. 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

  4. You'll need to install packages, input y, and hit ENTER (You only need to do this once).

  5. 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.20.2.

  6. (Now Update to 7.21.3) 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.3 update:
      • All Frequencies
        • You must update to 7.18.X before you can update to 7.19.X or later.

  7. 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)

  8. 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

  9. You'll need to install packages, input y, and hit ENTER (You only need to do this once).

  10. 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.


  1. 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.
  2. 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
  3. 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. 
  4. Download the firmware update file now.
  5. To update the Z-Stick 7 to V7.17.2 or 7.20.2, 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