Logo Banner

Velleman K8000 - [K8000 Standalone Usage] - [K8000 Home Automation]

K8000 Standalone Home Automation


Some people are using a Velleman K8000 card for a home automation system. They have push buttons around the house to start,stop,dim or time channels. These buttons are connected to I/O input channels of the K8000. The I/O output channels will control lights or other output devices.

The K8000 card doesn't contain any intelligence. So you need a controller: Some people are using a personal computer for this. While possible, it is overkill and it needs a lot of power. The second alternative is the Velleman K8001. It is a card with a microcontroller that can be programmed. Unfortunately the K8001 is a discontinued product.

This page is about another solution: use a FEZ Panda II board as the controller. With the right software it can control your K8000 board. The K8000 uses the I2C protocol for the communications, a protocol the FEZ supports. I designed a complete C# project to setup your own home automation system, with a K8000 and a FEZ. The project is optimized for simplicity (for the end user, that is).

My FEZ Software

My automation software is written in Visual C#. It is written in such a way even a novice can build his/her own automation applications. Yes, you would still need to use the C# programming environment, but the end user has to type a minimal amount of programming code:

You only need to add one single line of code for each push button in your house!. This is done in the Program.cs file. Let's build a sample to make things clear: Assume we have an automation system with 3 push buttons. They are connected to I/O 1,2 and 3. They are supposed to be toggle buttons: each push should invert the state of a light. These lights are connected to I/O 10,11 and 12. The code example below shows what you need to code:

    // Specify the number of K8000 cards (already written)
    SwitchButton.numberOfK8000Cards = 1;
    // Define the used controls (TODO: add your controls here)
    new CmdToggle(1, 10);
    new CmdToggle(2, 11);
    new CmdToggle(3, 12);
    // Execute the program (already written)

Pretty self explaining, no? The first line will specify the number of connected K8000 cards. Then you need to add a line for each pushbutton you want to define. All of these lines are beginning with the new keyword. At home automation application is executed by calling the SwitchButton.executeAll(); command. This creates an infinite loop: the program keeps executing.

The software architecture behind this is rather complex. You don't need to know about it if you are just going to use my predefined classes. Some more understanding is only required if you want to create your own extension classes. Read more about the software architecture.

Software functionalities

My Home Automation application is very modular: each functionality is contained within a C# .cs class. You only need to use the desired classes in your program. For now I have designed up to 11 different classes you can use. View more detailed information.


You can download my C# project here. It contains an example for any of the available commands.

Copyright ©1998-2022 Vanderhaegen Bart - last modified: August 24, 2013