Zwave Aeotec Z-PI7 Firmware upgrade

Hi
I’ve just bought Z-PI7 HAT for Raspberry Pi 4. It states that I need to upgrade the firmware.
I have some struggles with the firmware upgrade:

  1. I cannot disable the protection mode of the SSH, I need to do this to run the firmware upgrade, I’ve addressed that issue here:
    Home Assistant Community Add-on: SSH & Web Terminal - #546 by Haraldhj1970

  2. When 1 is solved, I believe I miss information about how to run the script on the HA OS.
    What the firmware upgrade instruction says is the following:
    (700 series Controller Firmware Updates (Linux) · kpine/zwave-js-server-docker Wiki · GitHub)

-Run the `zfw-update.sh` script with the appropriate options. Use `bash zfw-update.sh -h` for help.

update /dev/ttyUSB0 with upload path /tmp/fw

bash zfw-update.sh

update /dev/ttyACM0 with upload path $HOME/fw

bash zfw-update.sh -d /dev/ttyACM0 -f $HOME/fw

In my case the option -d should be:
-d /dev/ttyAMA0
Since this is the serial port where the z-pi7 is setup.

My question is what should I put on the -f option?
When I run the bash zfw-update.sh with -f $HOME/fw I get the error ‘minicom must be installed’.
The upgrade script says the following:

-f Optional default upload directory for minicom. Also set
with environment variable ZFWU_FW_DIR.
[default: ${DEFAULT_FW_DIR}]

This is the upgrade script: https://raw.githubusercontent.com/kpine/zwave-js-server-docker/d46d19f9088a11f739a35f30968c7c466d54445d/scripts/zfw-update.sh

You missed a critical prerequisite highlighted in the instructions:

To do so requires installing the SSH & Web Terminal community add-on (not to be confused with the Core Terminal add-on).

You are using the wrong SSH add-on. There is a link to the correct one.

Put any directory you want. If you’re downloading the file inside the terminal with curl, just use the directory you download to, or save it someplace like /tmp. If you’re using something like the Samba add-on, you could make a new directory inside /config, like /config/fw and use that directory, and upload the file from your computer.

1 Like

Thank you freshcoast, you solved it for me.
As you said I had the wrong SSH.

For other Linux dummies out there:
-It is basically all written here
-700 series Controller Firmware Updates (Linux) · kpine/zwave-js-server-docker Wiki · GitHub

-I needed to use the correct SSH addon to be able to disable the protection mode, which is the community one:

It is advised to generate keys for SSH access

-based on the advise Downloaded PuTTYgen
-To generat public and private key for secure SSH

-Downloaded PuTTY
-To use as the terminal to connect to HA Host and run commands to upgrade the firmware
-Setting up PuTTY to connect to the HA Host this is a good video telling you how to setup PuTTY with
keys Home Assistant SSH With Keys - YouTube

-Downloaded the firmware .gbl file. I struggled to Curl the firmware to the HA host until I discovered ‘-L’ curl -L (telling curl to follow redirect)
curl -L -O https://github.com/SiliconLabs/gecko_sdk/raw/v4.1.2/protocol/z-wave/Apps/bin/gbl/zwave_ncp_serial_api_controller_BRD4206A.gbl

-Then I followed the instructions on the firmware upgrade referenced above. I needed some attempts to understand the ui and it also took me some time to actually understand that I needed to download the .gbl file in a separate operation first, in the beginning I thought it was included in the the script.

Now the firmware is upgraded, and looks operational, but I haven’t used it for anything yet.

I hope someone out there will find this helpful, anyway I will, the next time I need to upgrade firmware on the raspberry.

2 Likes