The ACT Z-Wave Serial Interface Saga


Some of the folks over at the HomeSeer forum badgered me into posting this here. Looked around and decided that it made sense. BTW, when I go into story-telling mode, you should be afraid. :angry:


I'm sure that many of you have either heard of or experienced issues with the original USB Z-Wave controller manufactured by ACT. Many possibilities were put forth: screwy drivers, bad power, too little power, bad usb port, needed usb2, etc. None really satisfied, as what worked for some people didn't work for others, and verse-visa. I myself had problems that didn't really go away until I upgraded computers entirely (for reasons other than this).

Enter the ACT serial controller. When introduced, it immediately became the darling of the community. It seemed that nearly everyone who had chronic issues while using the usb controller had much better luck with the serial version. It rapidly got to the point where the first question asked of anyone who reported Z-Wave issues was "Do you have the serial controller yet?". It's hard to argue with the success rate.

This puzzled me. Being something of a hardware hack, I had already peered inside the usb unit. What I saw was pretty simple - a standard zensys module, and a usb-to-serial interface. So wasn't this already a serial device? I brought this up on the forums a few times, but was basically ignored (actually I'm still amused by one person who was trying to label me as a usb fanboy). I also couldn't see anyway that host power quality could affect the device in any but the most extreme circumstances, as the whole darn thing ran on 3.3V internally anyway, and at very low current. Yet I was seeing people posting wondering if was possible to hack the usb unit to run on external power...

Of course, as one would expect, the serial controllers went out of stock. This situation seems to have lasted until last week. Martin got in a batch and promptly shipped them out to his backorder list. One enterprising individual, upon receiving his unit, did what any hardware tech would do with new hardware: he promptly took it apart.

And was appalled. What he was looking at appeared to be a usb controller, with the addition of one small card that had the serial cable and power connection, and a MAX232 chip. The usb host board had the original usb cable removed, one trace cut on the board, and four wires added that ran to the new board.

Which is where I re-entered the picture. My first thought was to shout: "See? I told you it was a serial device!" but then I decided that probably wouldn't help anybody. I asked zap to post pictures of his unit which he graciously did. After picking myself up off the floor, we started talking about what else might be different. Well, the only thing that was really left was the zen-sys module itself. I had always harboured a belief that firmware on the module was a likely culprit behind many of the issues. So naturally I wondered if there could be a difference here between the usb and serial units. Turns out that zap had already had the same idea. He had also tried swapping the zensys modules between his two units and both continued to operate as normal (as normal as they can, anyway).

Ok, so my pet theory was now shot to pieces. Well, in that case, let's see if I can reproduce the new version! In short order I had built up a simple circuit on a solderless breadboard based around a MAX232, and had added a buffer driver so I could hook in some activity leds (blinkies are always cool). I then proceeded to hack up my usb controller. Unsoldered the usb cable, cut the tx-to-rx trace on the board, and soldered a couple of wires on. And fired it up.

Wouldn't you know it? The darned thing worked!

I then proceeded to work up a schematic and sample layout that someone who was handy with a soldering iron would be capable of making. In the process, I noticed what appeared to be a few deficiencies in the design of the "new" serial controller (like feeding an apparently non 5V tolerant input on a 3.3V device with 5V anyway). I went ahead made a few changes to make the design more robust (but hey, how much *can* you do with something this simple?). I turned around and built this circuit on a soldered breadboard. Worked great too - except for one teeeny miscalculation - I put nice plugs on everything to make troubleshooting easier. This made my new board too tall to fit in the original case! Ooooops.

At any rate, I took plenty of pictures, and posted them for all to see. Surprisingly, I've had very little feedback, and the thread itself sort of degenerated into minor bickering over the best way for people to do this mod for themselves.

Personally, I'd like to see some people who are having problems with their usb controller to try this and see if it helps them. In the process of working out just what was going on, I came to the conclusion that the original ACT design has some "questionable" layout issues (sometimes I try to be polite).

Anyway, to cut this essay short, you can find the original thread at this location, in all it's gory details, pictures and all. It's my intention to put together a real writeup and post it on my website, where anybody can reference it. Shouldn't take me more than a year or two...

p.s. Nothing like throwing rocks at a hornet's nest for a first post, eh?
Wow, that's one heck of a first post! Welcome to CocoonTech, Jerry! That's some really interesting information. That post perfectly describes what hardware hacking is truly about, great job!

Thanks you for sharing this on cocoontech. Information like this should be shared here for one simple reason. Electron allows his members to post it like it is. You can be sure that whatever you post here will not be deleted unless it is offensive and not suitible for the entire family. Welcome to cocoontech!
Thanks for the welcome!

I've got to admit, I was a bit nervous posting that - didn't know how it would go over.

I actually intend to make a complete serial replacment for the usb host pcb at some point. Ye gods it should be simple. I just hate wasting all that board area because of the way the darn thing mounts.

But that's gonna come later - I've got too many other little projects going for now.

Maybe zap will show up. Anybody who adds a discone antenna to their zwave module deserves some credit too!

I had problems with the ACT USB device with Homeseer. Devices would stop responding. I would need to restart the device again. I started to use Controlthink SDK and I have an app that I have been running for a week without a problem. I did use a later USB driver from FTD the chip maker so I am not discounting a bad driver as the problem. However, I do not see a problem with the USB controller anymore. I do not think it is hardware related as many have speculated here. Anyway, I am still looking forward to the Intermatic USB stick in Jan.
If you install .net 2.0 you have to make sure you upgrade to service pack 2 for XP. Otherwise you may have other issues. I found this out the hard way :angry:
I guess the really funny thing is that the Z-Wave device has a serial interface, but they put a USB chip in front of it, which then requires a virtual port driver that just makes it look like a serial port again to the software driving it. I can understand the reasoning, since serial ports are fairly rare these days and they are trying to sell this the great unwashed masses, not just the automation crowd.
Also, I have seen intermitent issues while using the SDK. They all seem to come back to being hardware problems. As soon as I unplug the controller and plug it back in all starts working again. The issue that I have had was the SDK was not able to detect my controller. But it was NOT ONLY the SDK because I have tried to connect using HS and CQC when this has happened and they experienced the same problems. If it is a software related issue then I would say it has to do with the USB drivers and nothing higher. Thankfully it does not happen to often. It seems to happen when I stress the controller too hard by polling devices that are not available and other similar task that hog the network. I guess we will see what happens when the Intermatic USB controller gets shiped. I hope the problems go away.
I've had that happen once on mine. The controller was locked up completely. Nothing would make it happy again, so I unplugged it and plugged it back in and CQC picked right back up and took off again.

So one would assume that has to be the driver or something on the firmware hosing up and getting stuck, though it could be the USB stack as well, and unplugging it frees up whatever is stuck. But, given that the USB stack is used by many other things and they don't have this problem, the fickle finger of fate would seem to point more towards the Z-Wave controller firmware or its driver.
Tombo said:
I did use a later USB driver from FTD the chip maker so I am not discounting a bad driver as the problem. However, I do not see a problem with the USB controller anymore. I do not think it is hardware related as many have speculated here.
Zap and I both loaded up the current FTDI drivers. Mine was already working decent so it's a moot point. But zap was having boatloads of "device not responding" errors. The updated driver did not help him. The "serial" version did.

On the other hand, if you look at the changelog on the driver from the "original" version that was distributed with the device and the current version you will see some things fixed that look suspiciously like some of the issues people have reported.

I think it's some of each: software and hardware. And let's not forget the reports of people who were working pretty well with hs1.7 who started having lots of zwave problems with hs2. There's too many of those to be a random event. And please don't get me started about the board layout. :angry:

One thing I noticed with the "serialized" version is that there appears to be no device initialization taking place. While working on various things I would routinely kill power to the controller, fiddle with it, power it back up, and toggle a device on & off from the web page to test. Not sure what would have happened if I'd ever had it powered down when a poll hit...