My first contact with the KNX world was through the training course I attended. The company I’m working for got a new client and the client was into building KNX based software.
Since I had no idea what is KNX, I did the only thing I knew. I started reading documents from the KNX organization. Soon there was a KNX training course organized in a city nearby and I enrolled.
KNX training was pretty cool, I learned some basic stuff there. Among other things, I learned that there is a KNX device called USB interface device. Main purpose of the USB interface device is to enable any computer to communicate with the KNX network.
For example, ETS software which is used to configure a KNX installation can use USB interface device to communicate with a KNX network.
KNX USB interface device is a standard USB based plug and play device. You simply plug USB cable into the computer and start using it. There are no drivers to install. There are no configurations which need to be setup.
Creating the KNX test environment
Armed with knowledge I have gathered during my KNX training, I was full of confidence. I knew “almost” everything there is to know about KNX. I was ready for the “Hello world” project.
First thing first. I needed a KNX test board that I can use and play around. I gathered a couple of KNX components:
- Power supply
- Binary input device
- Dimming actuator
- Switch/Blinds actuator
- Push sensor
- USB interface device
I took a wooden board. Mounted all the devices on a DIN rail. Connected everything properly, all the power 220V wires and all the KNX bus wires.
That was it, the moment of truth. I flipped the main power switch and all the lights on the devices turned green. So far so good, no warning light indicators turned on.
Oh man, I was good! I got everything working from the first attempt. Now, all I need to do is to program the devices and that was it. I have a working KNX test environment.
Up to this point everything went smoothly. I can honestly say better than I expected. In the beginning I was a bit worried about the hardware side. Taking all the components and connecting them together. After all, I’m a software engineer and not an electrician.
But when that was done, and without any issues I was confident that I can get the software part, programming the KNX network, done in no time. Oh boy, was I wrong.
I connected the USB cable from KNX USB interface device to my laptop. I have installed the ETS 4 application and I was ready to start programming the KNX network. I started the ETS application, opened the Connections screen, and there was discovered connection to the USB interface device waiting for me.
Perfect. I selected the discovered connection and clicked on the test button. In my mind this was pro forma because the connection is there and it will work. But executed it anyway. To my unpleasant surprise the test failed.
This was unexpected. The never dying optimist in me yelled try it again, maybe it will work and I did. To no surprise, I got the same result.
USB plug and pray
There was an internal joke in the company about plug and play USB devices. We always referred to them as plug and pray devices.
Plug and play devices were always marketed as easy to use devices. You just need to plug them into a free USB port and they work. No fuss. No mess.
But over the time, I have realized that often plug and play devices just don’t work. For many number of reasons this can happen:
- The device is not compatible with the mother board
- The device is not compatible with the OS
- Wrong driver used by the OS.
The worst thing is that there is no way of knowing why the plug and play device is not working. There is no indication which can point you to the right direction, toward the solution. This is exactly what happened to me.
I have tried the usual suspects. First I tried to reboot the system. After that, I tried a different USB port on my computer. Then I tried to use different USB cable. But none of my efforts produced any result. The KNX USB interface connection was there but I could not use it.
You can imagine that I was becoming frustrated. The time was passing by and I was nowhere closer to the solution of my problem. I tried to find the solution on the internet but the KNX is not widely used and the information available is scarce at best.
And then I hit the breakthrough. I stumbled upon a post explaining the same problem I was having. There was solution offered, a knx usb fix. Application which needs to be executed and the problem will be solved.
At that point I was desperate enough to try anything. I have executed the application, rebooted the system and tried the USB interface connection again. To my surprise it worked. At that time I had no idea why it worked, but it did. I was so happy, finally I can continue configuring my KNX network.
In the end the solution is easy to apply:
- Download the KNX USB fix (you can download it from here).
- Unpack the content of the zip archive
- Execute the tool (while the USB cable is plugged in)
- Reboot the system
After the reboot USB interface device should be ready to use.
There are a couple of things I need to point out (I learned these the hard way):
- When executing the KNX USB fix tool you need to be logged in with the administrator account,
- Patch is applied to specific USB port on your computer. If you change the USB port used by the USB interface device you have to repeat the procedure,
- If you have multiple KNX USB interface devices you have to repeat the procedure for each and every one of them.
Later I realized what the problem with the KNX USB interface device is.
KNX USB interface devices are pretty old devices. They exist on a market for number of years. As it often happens, new Windows versions introduce changes which are not always backward compatible. This is exactly what happened to the KNX USB interface device.
With Windows 8.1 there was a change introduced with handling of the USB devices. Microsoft introduced a feature called “USB sleep mode”. In this mode the USB device goes to sleep when not used. This was introduces to extend battery life on laptop and tablet devices.
Unfortunately KNX USB interface device is not compatible with the USB sleep mode. When Windows cannot use the sleep mode it turns the KNX USB interface device off. And because of this the device cannot be used.
The solution is to turn the USB sleep mode of for the KNX USB interface device. This can be done by using the KNX USB fix tool.
If I only knew this I could have saved myself a lot of time and headache.