700 series Controller Firmware Updates (Linux) - kpine/zwave-js-server-docker GitHub Wiki
Overview
This guide describes where to download Over-The-Wire (OTW) firmware upgrade files for Z-Wave 700 and 800-series controllers, and how to flash the controllers using freely available tools.
If using unofficial tools does not appeal to you, stop now and follow your vendor's official instructions, or contact them directly for support. See Disclaimer.
Table of Contents
Disclaimer
[!WARNING] While much effort has been made to provide accurate and up-to-date information and instructions, the information here may become out-of-date or contain mistakes. We provide this information on an "as-is" basis and make no warranty regarding any information provided on or through it, and disclaim liability for damages resulting from using it. See License for details.
SDK and Firmware Downloads
There are multiple certified releases being maintained at this time. The latest of these are:
- 7.23.2 based on Simplicity SDK 2024.12.2 (release notes) - 800-series only
- 7.21.6 based on Gecko SDK v4.4.6 (release notes)
- 7.18.8 based on Gecko SDK v4.1.6 (release notes)
[!TIP] Before upgrading your controller, make an NVM backup using Z-Wave JS UI. In case of a catastrophic failure (controller brick) you will be able to restore the NVM and entire Z-Wave network onto a new replacement controller.
[!NOTE] As of v7.22.0, the Gecko SDK has been replaced by the Simplicity SDK and support for 700-series controllers has been dropped, with 7.21.x being the last release.
[!CAUTION] Z-Wave JS has reported an issue to Silicon Labs for a controller firmware bug. It is recommended to stay on v7.18 or earlier, or upgrade to 7.22.1 or later for 800-series, and 7.21.6 or later for 700-series. See:
[!WARNING] Downgrading versions is usually not possible as it is blocked by the Gecko bootloader. For example, if you update to a 7.20 version you cannot later downgrade to 7.19 or 7.18, etc. Error
0x18
is usually an indicator of this. In some cases the bootloader may be unlocked and allow the downgrade.
[!IMPORTANT] Not all vendors support the latest versions. Some vendors use the same firmware files included with the Simplicity / Gecko SDK, but this is not guaranteed. Do not assume that you can install a Simplicity / Gecko SDK firmware on your device. Contact your vendor's support before installing an unsupported version from a newer SDK, as there may be reasons why they haven't updated to the latest or they may be using their own custom firmware.
We recommend always using the vendor provided files and versions to reduce the risk of bricking your controller. Use other versions and files at your own risk. All downloads linked here go directly to their respective vendor websites.
Choose your device
- Aeotec Z-Pi 7 (ZWA025)
- Aeotec Z-Stick 7 (ZWA010)
- Everspring SA370
- HomeSeer SmartStick G8
- HomeSeer SmartStick+ G3
- HomeSeer Z-NET G3
- Silicon Labs UZB-7 (SLUSB001A / SLUSB7000A)
- Silicon Labs EFR32xG28 Explorer Kit (xG28-EK2705A)
- Silicon Labs Z-Wave 800 Series Development Kit (ZGM230-DK2603A)
- Wise Connect Z-Wave 800 & ZigBee 3 PoE Network Unit
- Wise Connect Z-Wave 800 & ZigBee 3 PoE Unit for Pi5
- Wise Connect Z-Wave 800 & ZigBee 3 PoE Unit for Pi4b
- Wise Connect Pi4 Pi5 PoE Hat
- Wise Connect Z-Wave 800 LR 1.5 mile USB Dongle
- Wise Connect Z-Wave 800 & ZigBee 3 GPIO Unit
- Z-Wave.Me Multi-Protocol Controller
- Z-Wave.Me RaZberry 7 (ZME_RAZBERRY7)
- Z-Wave.Me RaZberry 7 Pro 868 MHz (ZMEERAZBERRY7_PRO)
- Z-Wave.Me RaZberry 7 Pro 908-921 MHz (ZMEURAZBERRY7_PRO)
- Z-Wave.Me Z-Station 868 MHz (ZMEEZSTATION_ZW_ZB)
- Z-Wave.Me Z-Station 908-921 MHz (ZMEUZSTATION_ZW_ZB)
- Z-Wave.Me Z-Station (No antennas) (ZME_ZSTATION_ZW_ZB)
- Z-Wave.Me mPCIe adaptor
- Zooz ZAC93 800 Long Range GPIO Module
- Zooz ZST10 700 Z-Wave Stick
- Zooz ZST39 800 Long Range Z-Wave Stick
For alternative download options, see other downloads.
Missing a product? Let us know by starting a discussion.
Aeotec Z-Stick 7 / Z-Pi 7
The Z-Stick 7 and Z-Pi 7 are 700-series controllers based on the EFR32ZG14 chipset.
Refer to official Aeotec update instructions:
- Update Z-Stick 7 with Z-WaveJS UI
- Update Z-Stick 7 with Windows
- Update Z-Pi 7 with ZWaveJS UI
- Update Z-Pi 7 with Raspbian OS / RPi
- How to downgrade Z-Stick 7 with ZWaveJS UI
Everspring SA370
The SA370 is a 700-series controller based on the ZGM130S module. There are currently no official update instructions or downloads available.
Known working versions:
- 7.17.2
- Download ZW_SerialAPI_Controller_7_17_2_406_ZGM130S_REGION_US.gbl
- MD5 checksum:
6cc0961168d209221869bdfd64d5a138
HomeSeer SmartStick
- SmartStick G8 is an 800-series controller
- SmartStick+ G3 is a 700-series controller based on the ZGM130S module
Refer to the official HomeSeer update instructions:
HomeSeer Z-Net
The Z-NET G3 is a 700-series controller.
Refer to the official HomeSeer update instructions:
Silicon Labs UZB-7 (SLUSB001A / SLUSB7000A)
The UZB-7 controller is based on the EFR32ZG14 chipset.
As this is a developer reference board with no official support, the latest GA versions of firmware are listed. New versions may introduce new bugs, so take care if you are using this in a production system. Consider waiting until the firmware is vetted by others.
The firmware file to install depends on your requirements:
- BRD4201A: +14dBm, with SAW filters
- BRD4206A: +14dBm, Z-Wave Long Range (US only)
[!WARNING] Some users have reported problems with versions 7.19, 7.20 and 7.21 for the the BRD4206A variant. These versions can result in severely reduced RF range. The BRD4201A variant works fine (and in my testing Long Range still works). See 1, 2 and 3 for details.
[!CAUTION] Always upgrade to v7.18.8 before going to v7.21 or later. Upgrading directly to v7.21 with versions before v7.18.8 may either fail or brick the controller. Always upgrade to v7.18.8 first, then v7.21. See 700-Series Firmware Compatibility for details.
Latest and stable releases:
- BRD4201A
- 7.21.6 (latest)
- There is no direct download. Download demo-applications.zip and extract the
zwave_ncp_serial_api_controller_BRD4201A.gbl
file manually. - MD5 checksum:
a3b48ecb428ae38cf5878c1e13153018
- There is no direct download. Download demo-applications.zip and extract the
- 7.18.8 (stable)
- Download zwave_ncp_serial_api_controller_BRD4201A.gbl
- MD5 checksum:
38df5ac73299169c957f257f2d8c3cff
- 7.21.6 (latest)
- BRD4206A
- 7.21.6 (latest)
- There is no direct download. Download demo-applications.zip and extract the
zwave_ncp_serial_api_controller_BRD4206A.gbl
file manually. - MD5 checksum:
1880e482060b2966dc1a403acf6d9f0a
- There is no direct download. Download demo-applications.zip and extract the
- 7.18.8 (stable)
- Download zwave_ncp_serial_api_controller_BRD4206A.gbl
- MD5 checksum:
496924733c76a82eadef0ca4a848ea54
- 7.21.6 (latest)
Here are some shell commands (Linux, etc.) to download and extract the files from the demo-applications.zip
file:
# Download
wget https://github.com/SiliconLabs/gecko_sdk/releases/download/v4.4.6/demo-applications.zip
# unzip
unzip -o -j demo-applications.zip protocol/z-wave/Apps/bin/gbl/zwave_ncp_serial_api_controller_BRD4201A.gbl
unzip -o -j demo-applications.zip protocol/z-wave/Apps/bin/gbl/zwave_ncp_serial_api_controller_BRD4206A.gbl
# 7z
7z -y e demo-applications.zip protocol/z-wave/Apps/bin/gbl/zwave_ncp_serial_api_controller_BRD4201A.gbl
7z -y e demo-applications.zip protocol/z-wave/Apps/bin/gbl/zwave_ncp_serial_api_controller_BRD4206A.gbl
# Verify checksum
md5sum zwave_ncp_serial_api_controller_*.gbl
Official Silicon Labs update instructions:
Silicon Labs Z-Wave 800 Series Kits
- 800 Series Dev Kit (ZGM230-DK2603A) is based on the ZGM230S SiP module and utilizes the BRD2603A radio board. It is a multifunction device that can be used as either a controller are an end device depending on how it's programmed.
- EFR32xG29 Explorer Kit (xG28-EK2705A) is based on the EFR32ZG28B312F1024IM48 SOC and utilizes the BRD2705A radio board. It is a multifunction device that can be used as either a controller are an end device depending on how it's programmed.
The preferred way to update the firmware on either of the above devices is with Simplicity Studio.
Wise Connect USB / GPIO / POE
Wise Connect make a number of 800-series Z-Wave controllers with USB, GPIO and POE formats. These use a proprietary firmware. Refer to the official Wise Connect downloads and update instructions:
Z-Wave.Me
The Z-Wave.ME controllers use a proprietary firmware. The Z-Way software is the easiest and safest way to update.
Refer to the official Z-Wave.Me update instructions and downloads:
- UZB/RaZberry Firmwares
- UZB/RazBerry Versions Graph (sometimes this lists newer versions than the previous page)
Zooz ZST10 700 Z-Wave Stick
The Zooz ZST10 700 Z-Wave Stick controller is a BRD4202A radio board (ZGM130S module). This controller is discontinued and receives no further updates. The last SDK version provided by Zooz is v7.18.3. This is sufficient for most users.
Refer to the official Zooz update instructions and downloads:
- Zooz OTA Firmware Files
- How to Perform an OTW Firmware Update on Your ZST10 700 Z-Wave Stick
- ZST10 700 Z-Wave Stick Change Log
There may be multiple revisions of the ZST10. The oldest ones use the official Silicon Labs Gecko SDK for the BRD4202A radio board, which means they can be upgraded using the firmware files from the Gecko SDK. These revisions identify as "Silicon Labs CP210x UART Bridge" USB devices.
$ lsusb -d 10c4:
Bus 001 Device 003: ID 10c4:ea60 Silicon Labs CP210x UART Bridge
If your ZST10 700 identifies as a Zooz, it is not upgradable past v7.18.3.
[!CAUTION] Always upgrade to v7.18.8 before going to v7.21 or later. Upgrading directly to v7.21 with versions before v7.18.8 may either fail or brick the controller. Always upgrade to v7.18.8 first, then v7.21. See 700-Series Firmware Compatibility for details.
Latest and stable releases:
- 7.18.8 (stable)
- Download zwave_ncp_serial_api_controller_BRD4202A.gbl
- MD5 checksum:
fd779040e09d2c93fb30d16bdfda85f3
- 7.21.6 (latest)
- There is no direct download. Download demo-applications.zip and extract the
zwave_ncp_serial_api_controller_BRD4202A.gbl
file manually. - MD5 checksum:
dce52f8136758d4af1ab0a1d8afb70f5
- There is no direct download. Download demo-applications.zip and extract the
Here are some shell commands (Linux, etc.) to download and extract the file from the demo-applications.zip
file:
# Download
wget https://github.com/SiliconLabs/gecko_sdk/releases/download/v4.4.6/demo-applications.zip
# unzip
unzip -o -j demo-applications.zip protocol/z-wave/Apps/bin/gbl/zwave_ncp_serial_api_controller_BRD4202A.gbl
# 7z
7z -y e demo-applications.zip protocol/z-wave/Apps/bin/gbl/zwave_ncp_serial_api_controller_BRD4202A.gbl
# Verify checksum
md5sum zwave_ncp_serial_api_controller_BRD4202A.gbl
Zooz Z-Wave 800 Stick / GPIO Modules
- ZAC93 800 Long Range GPIO module is an 800-series controller based on the EFR32ZG23A chipset
- ZST39 800 Long Range Z-Wave Stick is an 800-series controller based on the EFR32ZG23A chipset
Zooz devices uses custom firmware, so you should not use any of the generic Silicon Labs firmware. Use only Zooz firmware.
Refer to the official Zooz update instructions and downloads:
- Zooz OTA Firmware Files
- How to Perform an OTW Firmware Update on Your ZST39 800 Long Range Z-Wave Stick
Other Downloads
- Download the Simplicity SDK 2024.12.2 demo-applications.zip archive for all of the v7.23.2 firmware files.
- Download the Gecko SDK v4.4.6 demo-applications.zip archive for all of the v7.21.6 firmware files.
700-Series Firmware Compatibility
This section applies to 700-series controllers which can be upgraded using the Silicon Labs Gecko SDK firmware.
There are a number of buggy firmware versions that have been released. Upgrading to one of these versions may fail, or even worse, brick the controller. Consult this version compatibility matrix before applying an upgrade:
Find the row of your current SDK version on the left-most column of the matrix. Then find the column corresponding to the firmware version you intend to upgrade to. If the row/column intersecting cell contains 0x18
, then the update will fail. If the cell contains Brick
, then the update will brick you controller. Only choose updates that indicate Success
!
In general, if your version is v7.18 or earlier, the safest method is to upgrade to the latest v7.18 version first, then upgrade to the latest v7.21. Do not upgrade to any versions in-between those. Of course, consult your vendor's instructions first.
This compatibility matrix was provided in the Silicon Labs Z-Wave forum in a post titled Z-Wave v7.17.2. A direct download to the original attachment can be found at z-wave_OTW_update_map.
Firmware Update Instructions
There are several ways to update the controller firmware. Choose the most convenient method or, when in doubt, the one recommended by your manufacturer.
Z-Wave JS UI Update
You can use the controller OTW functionality of Z-Wave JS UI (version 8.8.2 or later).
- Navigate to the ZUI Control Panel page
- Select the blue FAB (floating action button), which is a floating round plus sign at the bottom of the screen
- Select the "Advanced actions" button, which looks like a magic wand
- Select "Update" under "Firmware update OTW"
- Read the warning message
- Select "File" to open the file selector, and choose the firmware file you downloaded from a source above
- Select "UPDATE" to start the OTW update, and progress will be displayed in the message box on the top right of the UI
If the update fails, it is often recoverable. The controller will reboot into the bootloader menu and Z-Wave JS will fail to start. To recover you must re-configure Z-Wave JS UI to enter bootloader mode and try the update again. To do this:
- Navigate to the ZUI Settings page
- Go to the Z-Wave settings panel
- Enable the "Bootloader only" option
- Scroll to the bottom of the settings page and select "SAVE"
- ZUI will reboot, if the controller is in a failed state the driver will pause on startup and allow interaction with the controller
- Repeat the update settings above, and hope it works!
- You can disable "Bootloader only" afterwards, although it has no effect when the controller is in a working state
Home Assistant Z-Wave Integration Update
You can use the device update functionality provided by the Z-Wave integration in Home Assistant (version 2023.3 or later).
- Navigate to Settings -> Devices & Services -> Devices
- Select your Z-Wave controller Device
- Select "UPDATE" in the Device info panel
- Read the warning message and select "YES" if you are sure
- Select the "Upload Firmware" field to open the file selector, and choose the firmware file you downloaded from a source above, or drag and drop a file into the dialog box
- Select "BEGIN FIRMWARE UPDATE" to start the OTW update, and progress will be displayed in the dialog
If the update fails, it is often recoverable. The controller will reboot into the bootloader menu and Z-Wave JS will fail to start. HA does not support recovery. You will need to switch to Z-Wave JS and use its update recovery method (describe above), or use the flash utility method (described below).
Z-Wave JS Flash Utility Update
Z-Wave JS provides a flash command line utility, @zwave-js/flash. It requires Node.js and npm:
npx -y @zwave-js/flash /dev/ttyUSB0 /path/to/fw/fw.gbl
Use the --verbose
command line option to see detailed logging.
The flash utility can also recover the controller if it is stuck in the bootloader menu from a previous update failure.
[!WARNING] Be sure to stop any other Z-Wave JS applications prior to running the above. Otherwise, the update can fail and the controller will be hung at the bootloader.
If you are using HAOS, you can run the npx
utility within either of the Terminal/SSH add-ons. You will need to install the Node Package Manager (npm) first:
apk add npm
Container Flash Update
The kpine/zwave-js-server
container image includes the above Z-Wave JS flash utility:
docker run --rm -it \
--device /dev/ttyUSB0:/dev/zwave \
--volume /path/to/fw:/fw \
ghcr.io/kpine/zwave-js-server:latest \
flash /fw/fw.gbl
Use the --verbose
command line option to see detailed logging.
[!WARNING] Be sure to stop any other Z-Wave JS applications prior to running the above. Otherwise, the update can fail and the controller will be hung at the bootloader.
Minicom and Z-Modem
Before Z-Wave JS supported OTW updates, the update procedure could be performed using the Minicom terminal emulator. If for some reason you cannot use Z-Wave JS or other software, refer to the archived instructions to update manually with Minicom.