*Sticky?* Aeotec Z-Stick Gen5 - Raspberry Pi4

This thread is crazy.

I just ported my HA to Docker on RPi4 and encountered this problem. Thanks for all the hard work. I am trying the hub option first, then the resistor, and then will give up and buy a new stick.

I also want to thank everyone in this thread. I got a RPI4 to replace my old RPI2 and faced this same problem. Luckily I stumbled upon this thread before giving up and buying a new Z-Wave adapter.

After applying the mod, the stick was recognized and it’s working perfectly.

Thanks again!

1 Like

Thank you very much for this very very usefull topic!

I resolved this problem thanks to you.

Unfortunatelly I couldn’t sold the CMS resistor so I used classic resistors I have (1k + 500 since I didn’t have one of 1,5k) :

1 Like

Would this also work with 1k and 470Ω resistors in series? I have nothing else available atm…

1 Like

Should be fine as it’s very close to the values required anyway

I ended up using a 1k, a 470Ω and a 47Ω… The stick still works, so all good :slight_smile:

Glad all is well :+1:t2:

Hi. Can anyody share this software PC Programmer because i can not found it… and download…

Hi,

I did’t try this. But maby this helps.

Hello
After a bad USB hub, U1 on the stick has burnt.
Do you know what is the component?

Thanks! Aeotec Z-Stick Gen5 is now working on my Pi 4.

Hi,
it also worked for my Aeotec Gen5 ZStick EU frequency version. I atteched one 1kOhm, two 200Ohm and one 100Ohm resistor as I didnt have a suitable one at hand.
I also updated the firmware to version 4.54 as my stick still had version 3.95 on it.

Thank you @liamstears for the detailed description of this hack :slight_smile:

Same here. Cant find the SDK that is crucial to downloading the PC program.
Anyone that can share a link where they found the SDK and possible a screenshot aswell. =)

New link for software: https://siliconlabs.force.com/s/validatezwsdk?ContentId=0681M000006WUzV%20&ContentType=SDK&rURL=https%3A//www.silabs.com/products/development-tools/software/z-wave/embedded-sdk.html

You must register to download

I have the oldest one. Version 3.95.
Can I still use it with the RPi 4? Besides the hardware mod, do I also need a firmware upgrade?
If so, where can I find the firmware?

The firmware is not made available and taken down by Aeotec, I guess due to issues/bricking of the stick so it’s not advised.

However the hardware mod should work fine and get you up and running :+1:

1 Like

Thanks for replying. I think I can do that mod, but I get cold feet because I don’t have a way to get a new one, should I screw it up.

Edit: I also don’t think there’s physical room behind my Pi to connect another dongle, so I guess I’ll go with the hub.

Hi, all. I landed here because I have an Aeotec Z-Stick Gen5 but a Raspberry Pi 3B+. My issue is that the Z-Stick is not recognized at boot time. BUT if I unplug it and plug it in again, it comes up and everything’s fine.

I’m using the Pi to run zwave2mqtt to call my Home Assistant which is currently on a Hyper-V VM (Hyper-V cannot pass through USB devices, oy!)

I tried the cheap unpowered Sabrent USB hub, but that didn’t fix anything.

Tonight I got a solution working, which involves compiling a short .c program that can reset the USB bus. This is a software equivalent to unplugging and plugging back in the USB devices.

The downside is that it takes all USB devices offline. I tried targeting only the Z-Stick but it doesn’t work.

I don’t have a storage device on USB (yet), but my network goes down and back up again. But hey, it works fine for me, so I figured I’d share this non-hardware-hacking solution for anyone else who ends up here with a RPI3.

Do be aware that if you have a sensitive device on USB like a hard drive, this might not be the best solution for you. A hard drive might not like being dropped off the USB bus in this manner.

Here’s where I found the C program usbreset.c: https://gist.github.com/x2q/5124616

Compile it with: gcc -o usbreset usbreset.c

Here’s the bash script I use to call it, targeting the Aeotec device:

#!/bin/bash

USBNAME=0424:9514
LSUSB=$(lsusb | grep --ignore-case $USBNAME)
FOLD="/dev/bus/usb/"$(echo $LSUSB | cut --delimiter=' ' --fields='2')"/"$(echo $LSUSB | cut --delimiter=' ' --fields='4' | tr --delete ":")
echo $LSUSB
echo $FOLD
sudo /root/usbreset/usbreset $FOLD; #The path where you have the usbreset executable

I have my .c source, compiled binary and bash script in /root/usbreset.

I modified my zwave2mqtt systemctl service definition to call my bash script before executing zwave2mqtt via docker-compose.

My systemctl service definition for zwave2mqtt looks like this:

# /etc/systemd/system/zwave2mqtt.service

[Unit]
Description=zwave2mqtt Docker Service
Requires=docker.service
After=docker.service

[Service]
User=root
Type=oneshot
RemainAfterExit=yes
WorkingDirectory=/root/zwave2mqtt
ExecStartPre=/root/usbreset/resetusb.sh
ExecStart=/usr/local/bin/docker-compose up -d
ExecStop=/usr/local/bin/docker-compose down
TimeoutStartSec=0
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=zwave2mqtt

[Install]
WantedBy=multi-user.target

Works very well, and I may not need to break out the soldering iron at all.

1 Like

Hi,

I managed to get the Aeotec Z-Stick Gen5 it to work with Raspberry Pi 4 Model B 8GB.
If you add a USB 2.0 hub between the stick and the Raspberry Pi 4 it works.

z-stick

I needed to connect to /dev/serial/by-id/usb-0658_0200-if00 and NOT the /dev/ttyAMA0 device i used on the Pi3

This modification works great !!!

Done with a 1k and 510 ohm resistor in series. To make soldering easier, you can first fix the resistors with hot glue.

1 Like