SmartThings Link (USB stick) on PC?

I’ve been trying to get the Smartthings Link USB stick working on Openhab and Home Assistant. From the research I’ve conducted, I’ve found that the stick is running a Silicon Labs CP210x chipset, which is also used by other Zigbee/Zwave usb devices, and is a widely supported chipset on PC’s. The problem I’m facing is that with the generic Silicon Labs VCP drivers throw an error on Windows and Linux when trying to start the device. According to Silicon Labs, this can happen when the manufacturer has modified something. Is there any way we can get this working?

On Windows, the stick throws and Error 10 when using the SiLabs VCP driver. I have tried the USBXpress driver as well, and the device starts ok, but I get no serial ports so it is useless. Likewise, the Silicon Labs CDC Driver installs with no error, but gives no COM ports. The only other driver that “starts” the device without an error is the Windows built in “USB to Serial Adapter” driver. This gives me one COM port, but it doesn’t respond to anything.

In Linux, it connects as a ACM device, again with no serial connection.

I can get it to unbind from cdc_acm and bound to cp210x by running:

sudo modprobe cp210x
sudo tee /sys/bus/usb/drivers/cdc_acm/unbind <<<1-2:1.0
sudo tee /sys/bus/usb/drivers/cp210x/bind <<<1-2:1.0
sudo tee /sys/bus/usb/drivers/cp210x/bind <<<1-2:1.1

I got the 1-2:1.0 and 1-2:1.1 from dmesg and:

tree /sys/bus/usb/drivers

Once it’s is bound to cp210x, I looked at dmesg again, i can see the device linking to ttyUSB0 and ttyUSB1, but they end up with an error. Usually -32 or -71.

cp210x 1-2:1.0: cp210x converter detected
cp210x ttyUSB0: failed get req 0x4 size 2 status: 0
cp210x: probe of ttyUSB0 failed with error -71
cp210x 1-2:1.1: cp210x converter detected
cp210x ttyUSB1: failed get req 0x4 size 2 status: -32
cp210x: probe of ttyUSB1 failed with error -32

This is as far as I’ve gotten. I’m not sure what else to try. can anyone offer any suggestions? Better yet, can one of the engineers chime in about sharing the driver they used to talk to the stick during development? I wouldn’t even mind if it was unsigned or unsupported. The hardware seems like it is compatible with just the driver holding us back.

Thanks for any help offered :slight_smile:

3 Likes

I would love to hear more if you get this working.

But ST staff aren’t gonna help you do it.

2 Likes

The short answer is no. As designed, it will only work with the Nvidia Shield.

SmartThings is not an open source project. It is part of a proprietary platform. That is true of the hub as well as the extension devices like the link.

If you want something to work with other processors, I would look into the Nortek QuickStick.

3 Likes

That’s what I was afraid of :confused: I was hoping that since the hardware is commonplace, it wouldn’t be this big of a deal, but I know Samsung likes to lock their stuff down. Hopefully someday this will be possible! It doesn’t seem to work as advertised with the Nvidia Shield from reviews I’ve read, so hopefully someday they will get some better support outside of that realm.

1 Like

Hey All, we haven’t gone out our way to lock things down on this device but also are not marketing or supporting this device as something to be used outside of the integration on the NVIDIA shield. Were we to design a USB dongle anew today I think we might do a few things differently, but this hardware has some history and will probably never see major changes in its architecture.

Ok, for the notes and goodies.

  • The Link ships with firmware that is pretty old and the bootloader is a little finicky. The first thing done on the NVIDIA shield is to update the firmware to use a Proper SmartThings USB VID/PID and fix a bunch of issues. The stock firmware from the warehouse will be even less supported then the updated one.

  • A standard CDC ACM driver should work fine (but not CP210x; we don’t use that IC here). The serial port is being exposed directly by the ZigBee SoC and we tunnel Z-Wave traffic through it. This removes the need for a separate USB-Serial IC but means that there are some peculiarities with the USB stack provided by SiLabs. And by peculiarities I mean bugs that have had to add quirks to deal with on the NVIDIA Shield. If interested you should be able to find the Link VID/PIDs in the NVIDIA kernel should should be released under the GPL. These quirks don’t prevent enumeration but work around issues with USB suspend putting the device into a bad state.

  • The device exposes a single serial port which runs a proprietary framing protocol on the top layer to a custom firmware on the ZigBee chip running in SoC mode.

I wanted to share some details as part of being transparent and because I think people are generally curious. With that in mind, the design of the firmware on the device probably make it a poor choice for integrating with other systems since it is tied farily closely to how we have talked to the ZigBee chip from SmartThings historically. Reversing engineering the framing protocol to make use of the Z-Wave chip would probably be possible but likely not worth the effort.

If there are ongoing problems with the NVIDIA Shield that I can help investigate i would be happy to. I think several of the ones on Amazon I have seen are due to a bug on the shield for which we had a patch at launch but didn’t make it into the first release of the functionality to the shield.

5 Likes

Thanks so much for posting this information! I’ll do some digging into the nvidia gpl stuff when I get some time. My knowledge of this stuff is pretty limited, but I’m very fascinated in how it all works. I know you didn’t have to take the time to respond here, but I’m really happy you did. Thanks!

3 Likes

Nortek has discontinued the HUSBZB-1 Z-Wave/Zigbee dongle, according to
https://nortekcontrol.com/products/2gig/husbzb-1-gocontrol-quickstick-combo/

What if we don’t want to modify it, we just want to plug it into a PC vs Nvidia Shield.

Meaning, I just want to run smartthings like it normally would. I just want to plug it into a different device.

1 Like