X-Mas Decoration

X-Mas decoration This year i wasn't planning for a big Christmas dinner. Both my wife and I where having the flu so we didn't feel like making much hassle. Althrough all of this i couldn't withstand the urge to make some decoration for the dinner table. A quick fix with a knife and a nice small winter landscape was cut out of the paper table cloth. Winterland that makes you smile.


  • By: A.A. van Zoelen
  • On: 26/12/2014

WAP !!

Watchout Air Pockets !! I like to make automations from paper and a very good artist is www.paperpino.net
So when i saw this huge automation is had to make it. It took me a few days of cutting, folding and glueing but this piece turned out to function great.
Thanks PaperPino for sharing your work!


  • By: A.A. van Zoelen
  • On: 20/12/2014

Chrismas card 2014

Chrismas card 2014 The yearly returning Christmas card is here. A big flower that raises when you open the card.

I found this one on this great site http://www.peterdahmen.de/index.html


  • By: A.A. van Zoelen
  • On: 13/12/2014

Popup star

Popup star As a prelude to the annual Christmas card i made this small popup Christmas star

I found this one on this great site http://www.peterdahmen.de/index.html


  • By: A.A. van Zoelen
  • On: 06/12/2014

Bird drinker

Bird drinker This bird drinker is made from concrete. As a mold i used a big rhubarb leaf spread out on a pile of sand. I coated the whole leaf with concrete. I added some metal netting for extra stiffness and a square metal post so i will be able to attach a wooden frame underneat it.

Bird drinker After the concrete was hardened the remnants of the leaf was brushed out. Eventually all organic material will disapear leaving only the traces of the leaf veins.


  • By: A.A. van Zoelen
  • On: 13/10/2014


Kolibri Here's another wire animal. This time a kolibri lurking on a flower for nectar.


  • By: A.A. van Zoelen
  • On: 20/09/2014

Wire animals

Wire animals
These cute little wire figures are easy to make and fun to watch. And with just a few centimeters in size they doesn't cost much to make.


  • By: A.A. van Zoelen
  • On: 09/09/2014

Corso 2014

Corso 2014

Corso 2014
September is the time for the annual flower corso held in Zundert. Hug trailers are constructed with mere steel, paper and covered with Dahlia flowers only. 12 meters long and 4 meters high is no exception and everything is done by volunteers. The whole community work together for a full year to make this happen. Find out more over here http://www.corsozundert.nl/


  • By: A.A. van Zoelen
  • On: 07/09/2014

They really exist

They really exist

They really exist
You might have heard the stories about dwarves, gnomes, elves and other mysterious creatures. Till know I thought they where just a product of imagination but shiver and behold. Here's the proof. One is guarding my chicken coop.


  • By: A.A. van Zoelen
  • On: 06/09/2014

Garden labels

Garden labels
When you buy a plant you often get a plastic label with it that tells you the name of the plant. Sooner or later these labels get lost. They are blown away by the wind or they break down due to the UV rays in sunlight. Besides that they just look plain ugly. Because of that i make my own labels to stick in the ground near the plant.


  • By: A.A. van Zoelen
  • On: 18/08/2014


Plate with tulips
Today is my weddingday. What better then good honest food and some flowers to go with it. I prepared dinner for my wife. I started with tulips... or are they just tomato's with chives as stems?
As you can see you really can have both.


  • By: A.A. van Zoelen
  • On: 10/08/2014


Melon on a plate
Each year i grow my own melons. They are so tasty, sweet and full of juice. Unlike the unripe picked melons in the shops you can pick then when they are absolutely ripe and at their best. How to better serve them on a plate in a good looking shape.


  • By: A.A. van Zoelen
  • On: 29/07/2014

wicker basket weaving

wicker basket weaving
I always wanted to learn wicker basket weaving. I did made a few atempts but i didn't had the right materials. However last autumn I was cleaning up the garden and cutting some tall grass when it struck me that this grass might be the right material so i kept it.
Now it is summer and it's too hot to work in the garden or to do anything else then sit in the shade. I took the bundle of grass that i kept and started to make myself a birdhouse.

This is how it turned out.


  • By: A.A. van Zoelen
  • On: 21/06/2014

Pond light

Pond light
While wandering around at IKEA i saw this nice dome shaped solar light. I had to do something with it so i bought one. At home i found a styrofoam ring and i glued the solar dome on top of it and i left it floating in the pond.


  • By: A.A. van Zoelen
  • On: 10/06/2014

Paper roses

Roses made of paper
For a 50 year anniversary i needed 50 paper roses. I made two samples. One out of a tissue and one from thin paper. I couldn't choose between either of them so i kept both.


  • By: A.A. van Zoelen
  • On: 30/05/2014

Fruits of the season

First summer fruit
All the plants in the garden are doing great. This was my first pick of the season and this is looking very tasty already. There will be plenty more to come.


  • By: A.A. van Zoelen
  • On: 15/05/2014

Back in time: Snowboard

There was a time that you couldn't buy a snowboard in a shop. With just a feint idea how a snowboard should look like this snowboard was made. Being a ski enthousiast and a windsurf fanatic i was already dreaming of riding down the mountain on huge snow waves. In the end it proved to be much more difficult then imagined. Also the surfer style safety line didn't do well either.


  • By: A.A. van Zoelen
  • On: 21/04/2014

Back in time: Surfboard

Back in time when i was still young i loved to go windsurfing. However those shinny new sinker boards where far to expensive for me. What else to do then make one myself. Actually i made a total of three boards. This one was made with a wooden spine en styrofoam core. The skin was laminated with epoxy resin.


  • By: A.A. van Zoelen
  • On: 20/04/2014


ZMC v3
I've added the last parts of the ZMC serie. These last two articles are all about voice recognition setup and some nice addons
ZMC v3 VR Part 1
ZMC v3 VR Part 2


  • By: A.A. van Zoelen
  • On: 22/03/2014

ZMC V3 part 4

ZMC v3
The last part of this serie about a domotica audio system on the cheap. I haven't talked yet about doing voice recognition with this because that is a more specialized subject that deserves it's own serie of articles. So watch this space for those. In the meanwhile have a nice read here ZMC v3 Part 4


  • By: A.A. van Zoelen
  • On: 23/02/2014

Duct tape to the rescue

Duct tape rose
Valentine's day is here and no rose to give, disaster!
Here comes Duct tape to the rescue.


  • By: A.A. van Zoelen
  • On: 14/02/2014

ZMC v3 part 3

ZMC v3

Buttons, events en script

The XAP800 is a device that can be controlled via the serial port. To do this you just have to send a text string with the command to execute and that's it. However many commands also give a result back so you need a callback script too. The homeseer example for serial communication tells you to use a separate callback script. Although this is a clean way to do it you will run into problems because the communication is a-synchronic. For example when you ask the device which gate is active and you need to act on the result then the following happens. The gate request is send in and for the script things are finished and it will continue processing then next command. But it hasn't had the correct state yet so processing will fail. You can work around this behavior in various ways by using delays, virtual devices and much more but a more elegant method is used here. I have everything in one script, including the callback functionality. This way I can monitoring constantly the value of variables, also those coming from the callback functions and let the script wait no longer then necessary before continuing processing. To do this the script is loaded when you connect to the device. After that you can call the various methods in the script and the script takes care of the timing, switching en reporting back.
To make the script work you a few things

  • A few HomeSeer devices for control and to display state.
  • A HomeSeer group called Audio System
  • An INI file (grab it here)
  • Optional images for the buttons

  • The whole system is controlled by just one script and an ini file. I've include the ini file that I have in use. It's well commented so it would be simple for you to make the changes to reflect your situation. Parts that are marked as dynamic can be left alone since they are filled in by the system. The ini file must be placed in the HomeSeer config folder. Have a special look at the section [SPEAKTOME] since this contains also a few setting that are used overall

    ; --==[ START ZMC VR SYSTEM ]==--
    If this device is ON then none of the rooms will have any announcement nor music to prevent extra burden to the migraine patient.

    This device holds the name of the selected radio station. Nice to have for HSTouch

    ; The following devices must ALL have the same device letter

    These three settings define the button range you used. For each setting it counts at the first device so volume button 1 is here device code Z71 and the first mute button have a device code of Z91.
    Make sure that all three ranges have the same house letter, in this case it is the Z.

    ZMC v3 The ZMC RESET section contains the default setting for the system how I prefer it. You should use Gware and tune the various levels to your own liking and fill in the values in this section. Just in case you have to reset your system back to a state where you know that all sound levels are correct. A reset can be done with the command AZ_ZMC3.vb("Main", "RESET")

    ZMC v3 Make for each room or controlled speaker a device of the type 'status only' and call it volume, another device of type 'status only' called 'speech or radio' and a third device called 'Mute'. This last device is a virtual device. The first two devices will give you state information about the system and can be used for example on a HSTouch screen. The mute button actually will mute the output on the XAP800.

    ZMC v3 For the events you need two events for each room. One to turn the sound off and another two to do the mute and unmute command. Also there must be 2 events to connect and disconnect the XAP800 and two events to start and stop the media player. Each event calls the ZMC script with a command and provides parameters for the command to execute.
    At places where you can se the room name you can also use the word ALLES (Dutch for ALL) to control all rooms at once.

    About the script, you can find it here
    The script is setup in a modular way where you call each method. I've include the whole script here so you will probably have functionality that you don't use (yet). Don't be put off by the complexity of it at first glance. It's just doing the same trick over and over again.

    What to do first.
    You have to fill in the section called GLOBALY USED VARIABLES at the start of the script to match your situation. If you used the suggested naming of events and buttons this far than you only have to check


    Have also a look at
    WavPath (I use HSPRO. Your setup may vary)

    Remark :
    These two variables assume that you use images for the speaker on and off state. If you can't find those images on your system then get these.
    ZMC v3  ZMC v3

    With everything in place connect to the XAp800 by starting the connect event (AZ_ZMC3.vb("Connect") ) This will open up the serial connection and enable the callback function. Your system is ready to take commands. At the start of the script you can find all implemented commands. For the daily use of audio system the following commands are used
    AAN (English: ON)
    UIT (English: OFF)

    Using the words AAN and UIT has preference over the English versions because they do not interfere with reserved scripting words in vbscript

    ZMC v3 To turn on make an event that will trigger for example due to a motion sensor in the kitchen. Let the event fire the script with AZ_ZMC3.vb("Main","KITCHEN;AAN;1080"). This will turn on the music in the kitchen for 1080 seconds (18 minutes). After this period of time the music will turn automatically off by calling the event ' music uit' event. If the triggers fire again in this period then the timer will be reset.

    ZMC v3 The mute event that should trigger an event that mute the system with AZ_ZMC3.vb("SetMute","0|8|O|1") In this example the 8 stands for the room. If you look in the ini file you can see that room8 is the bathroom (badkamer). I didn't substitute the room number by their names to keep the serial XAP800 command as similar as possible to what you can find in the XAP800 manual. This will simplify looking up parameters if you need them. The same will happen for the unmute command AZ_ZMC3.vb("SetMute","0|8|O|0")

    This is the basic version of the ZMC audio system. But it can do much more with it such as announcements.

    However that is something for the next part


    • By: A.A. van Zoelen
    • On: 25/01/2014

    ZMC v3 part 2

    ZMC v3
    The music system

    The music is produces on my light weight server running a Windows 7 OS. For the payer I use an old version of WinAmp (version 5.6.2) because it gives me a lot of control and it is a light weight player. You can use Windows media player or whatever as long as it gives you the possibility to control it via a command line.

    Next wire the output of the soundcard in your system to the XAP800. The headphone output on the soundcard is the preferred one but any other one can be used. Set the volume level of the soundcard at about 90%, this will give you some room to do adjustments. The right setting will be determined later.

    The connection to the XAP800 can be done with a 3.5mm jack plug on the soundcard side. Where the tip is positive and the base ground. The XAP has balanced inputs meaning that there is plus, minus and a ground tap. The line level output is unbalanced. To connect this to the XAP800 you have to bridge the minus and the ground on the XAP and connect the ground of the output to it. The wire that is connected to the tip of the jack plug goes to the plus post.
    Connect the audio from your PC to input 12 on the XAP800.

    To get the audio system working we need some way to distribute the music to the desired rooms. I am a strong believer in wired solutions mainly because they are reliable and they are cheap. However other solutions can be used too. It's up to you. If you use wires then remember this, add a few extra while you can. An extra wire at the location is always good so I use often CAT5 cable. This cable has 8 wires and if you want to keep all systems separate then you have 2 wires for the speaker, 3 for a good microphone and 3 wires spare that could be used for IR, a switch or whatever. While planning your layout it's good to keep in mind that the speakers and microphones shouldn't be next to each other to prevent feedback. I have a few locations that have a small speaker in the ceiling installed, others like the bedroom have an old speaker box under the bed. Cheap speaker boxes in all sizes can be found in recycle shops. I have connected the speaker directly to the output of the XAP800 without any amplification. For 99% of the time the music is loud enough. However if you need a bit more oomph then these really cheap amplifiers based on a LM386 will boost up the sound to about 3W ( LM386 amplifier ) Can't beat those at $3,- a piece.
    But keep in mind the purpose of this system.

    Some notes to think of when you wires things up to the XAP800.

  • Please think about the order in which you connect things. This will make life easier.
  • Keep in mind that you may attach microphone in the future.

  • If you do so then think of which room|(s) will have microphones. It's best to put these rooms starting at output 1 and up before the other rooms. Although it's easy to change this later on it's better to have it right already in the beginning. So if you are asked in which rooms you would place a microphone in the future and the answer is the kitchen and living room then make these rooms output 1 and 2. The reason for this is that doing it this way you can put your microphones on input 1 and 2 and that will make processing things a lot easier since microphone 1 is in room 1 or saying it an other way. The kitchen microphone is in the kitchen.

    Now you have everything wired up to the XAP800 it's time to connect wires internally I presume you have installed G-Ware already and updated the firmware on the XAP800 with it (latest firmware is included in the package). If not then get it from this site www.clearone.com
    After that follow these tabs to the resources location
    - resources -> resource library -> professional audio -> Legacy product

    The rest you can find yourself I guess.
    Tip, get everything XAP related and safe guard it. There is a wealth of info there

    Setup window Read the manual, setup your first site and connect to your XAP800. These are relative simple steps to do. One remark on this. Networking the box is only possible with an additional xnet device. All it will do it translating ethernet traffic to serial so there is no point on adding that.

    Image of the setup settings

    inputs 9 to 12 The image on the left shows the settings i use.
    For now you are only intrested in input 12. This is the input on the far right. Next you will see a rather impressive diagram of the inner workings of the XAP800. You will see a button called 'inputs 9-12', click that one. Click on label 'input 12' and rename that one to 'Audio IN'. Next check the checkbox next to the VU meter called post gain. This will give you an active volume level meter. Start your media player with some music and watch the VU meter. Keep the gain at 0dB. Now use you volume control on the PC to raise the VU so far that it is in yellow without going in to the red area. You might need to adjust the gain on the input to get it right. For all levels it counts that they must never get into the red area otherwise sound might get clipped.

    The amtrix The image above is a view of the matrix in a full setup and is for reference only.

    The sound is in the box, now getting it out.
    Close the input window and click on the button called 'matrix'. On the left side you see a label called Audio IN. At the top side of the matrix you notice a few block and above the block called inputs there are labels, click one of these and name the inputs with meaningful names like input 1 to Kitchen and input 2 to Living room and so on. When that is done close the label editing window and you are back in the matrix. If you click on the cross section of Audio In and Kitchen it turns green and you will hear music in the kitchen. It's as easy as that.

    However we are all tinkerers in heart and soul so we will add more features in the future and to be prepared for this we will make a rather different connection. At first this seems to be pointless but trust me it will be a big time saver in the future.
    In the image above you see a green box at the crossing between 'Audio In and 'Proc Audio' that will connect the audio to the sound processor. The out put of the processer is then connected to the livingroom (Woonkamer in Dutch) via the green box at 'Proc Audio" and 'Woonkamer'.

    The processors 1 to 4 Remove the green cross section you made earlier. On top of the matrix, click one of the labels above the To Processing block and rename processor C to Proc Audio. Make the cross section Audio In and Proc Audio green. With the processor you can do al kind of processing on the signal such as filters and mute with one button for all channels instead of each separately which takes time if you have many rooms. To get music to a room you now activate the cross point at Proc Audio and the desired output

    These commands can be also given as a command via the serial port. For controlling the XAP800 you don't need the G-Ware software, just a serial connection. The G-Ware software is nice to use for initial setup. To control the XAP800 I made a vbscript that just does the things I need. There is an excellent JavaScript (AP800Lib.js) available for the AP800 which 90% of the commands will work too on the XAP800. Although the matrix commands are differently so you must adjust those or you use my script. Because I do a lot more with the XAP800 my script has grown reasonable in size and this might set you off. That's why I will spend the next article for explaining the script.

    The next article will deal with the scripting side.


    • By: A.A. van Zoelen
    • On: 25/01/2014

    ZMC v3 part 1

    ZMC v3
    For a few years now I have a home made whole house audio system called ZMC. Two months back I fried my ZMC v2.0 due to an electrical discharge. Six of the 12 amps where burned out including two power supplies. This mischief gave me the opportunity to improve the system and implement lessons learned from the two previous systems. I have ZMC v3.0 up and running for a month now and it is working like a charm.

    If you want to have whole house audio you have to ask yourself a few questions first like.

    What do you expect from the system?
    My goals where far, far too high when I started with this. After two versions I noticed that I didn't use most of the functionality I had built in and a few of them I really never used at all. What my wife and I want is music in the background, not to loud, not to annoying. Something like a portable radio on the shelve in the kitchen but then a bit more sophisticated.

    How important is stereo for you?
    I had stereo at four locations but never really noticed the benefits of that. I had stereo in the kitchen but mono sounds just as good. And I see no point in having stereo anymore inside the fridge.. (Yes, I had that.)

    How loud must the music be?
    I don't want the music so loud that you can't have a conversation. Because of this I can just drive the speaker directly from the box without any extra amplifier.

    Do you need instant volume control?
    This could be a maybe. The sound levels in all my rooms are tuned to a pleasant level. There isn't hardly a moment that you want to change that but some means to raise or lower the level would be nice.

    How much time would you like to spend in controlling this all.
    For me this is none. I just want that the music goes on when I enter the room and off when there isn't movement in the room for some time. Another thing I wanted is to raise the volume automatically in the bathroom when I turn on the fan and take a shower. All can be automated.

    It will tell here in detail how I did my whole house audio ZMC v3.0 in a few articles and I will include also a few nice to have features that are rather neat to implement. So if you are reading this up to here then you really want to know what is possible and what I use for it

    The hardware.

  • One XAP800 (eBay).
  • Wires (CAT5 cable is always good).
  • Speakers (see note below).
  • Serial cable with all wires connected one on one.
  • Optional TelCom unit (TH2).
  • Optional microphones.

  • The software.
  • G-Ware (XAP800 software)
  • HomeSeer plus a control script.
  • Or any other way to send serial commands.

  • Note :
    For speakers I use a few cheap ceiling speakers and old speaker boxes from old stereo systems bought from a second hand store (kringloop winkel) for Euro 5,- a set. You really don't need high end speakers if you put then under the kitchen cupboard in to the dust and spider webs.

    What you will get due to the XAP800
  • Up to 12 output channels per XAP800
    (You can stack up to 8 of them to a max. of 96 outputs per stack)
  • Up to 12 inputs
    (You can stack up to 8 of them to a max. of 96 inputs per stack)
  • 8 of those inputs are high end mic inputs that also can be used as line inputs
  • A matrix mixer. Connect one or any input to any one or any output like you want it.
  • Filters, dynamic compression, full control over your audio.
  • Microphone gating detection.
  • An industry grade system.

  • But what did I do with it?
  • I have audio in 9 rooms, including the garden.
  • Automatic volume control depending on the situation.
  • Announcements in any or all the rooms without disturbing the music in others.
  • Killing those annoying commercials that sound louder then the normal music.
  • Four rooms are equipped with microphones for VR control.
  • Only VR communications to the room where the question is asked.
  • VR control of the whole HA system.
  • Baby phone functionality with any number of rooms equipped with a microphone.
  • Intercom functionality with any number of rooms.
  • Security monitoring due the use of microphones.
  • Answering the phone through the audio system and making phone calls through out the house.
  • Switching in other room(s) into the phone call.
  • High WAF. (this is the best reason)

  • In the next article I will describe how to setup things the preferred way for audio distribution.


    • By: A.A. van Zoelen
    • On: 19/01/2014

    IR System

    IR Project
    I have a few appliances in different rooms that are controlled via IR. Think of TV sets, settop box, amplifier and LED lamps. To take control of these i needed just as many remote controles scattered around the house as i have devices. There had to be a more universal system. This triggered this IR project.

    I started with Shirriff's IRremote library for the Arduino.
    More info could be found here.
    As base controller i ordered an Arduino Mega. I know its rather overkill for this project but in the back of my mind i have the idea that i can use this over capacity later on for other projects. I wired up a receiver setup on breadboard and took every remote controle i could find and started to record each and every button press in a file. Next i wired up a IR transmit setup and send out a few codes again to test if they are working, and they did.

    In a simple setup you have only one device of each in your house. Put in every room a few IR LED and connect them in parallel. Blast them with the right signal and your finished. However if you have, like me, two small TV's that are indentical then both will respond and that is not what you want.

    Another problem is reception. The further away the IR led is the weaker the signal and the set just won't respond. To overcome this last problem i made an 'IR Blaster' for everyroom. Each blaster contains 3 high power wide beam IR leds, 2 high power narrow IR leds and a small green control led to make visible when a code is send. Each blaster is powered by 12V and controled by an 2n2222 transistor. Because of this higher voltage i needed to seperate this from the 5V powerline used for the Arduino.

    The multi room setup i have is solved this way.
    ZMC v3
    Please note that the Mega has a different pin numbering

    The IR library provide only one pin that can be used to send IR codes. However i want to send IR codes to the blaster i select based on its location. To do this i made a blaster for each room and switch via a relay the 12V rail to that blaster circuit. The output of the Arduino is connected to control transistor (2n2222) but only the one that have actually power will send them out. The one that you use is based on the controle script. To operate the blaster you just send the code information and the room id, that's it.

    Additionally i made a few vbscripts to control everything via VR (voice recognition). Just say "put the television on discovery" and the script know s in which room the command was said, what type and model of television there is, finds the right code and transmits it.

    Here's the complete Arduino code used

    ZMC ARDUINO v1.0
    - IR Control via HomeSeer
      Direction : INPUT
      Format : I, Protocol type, value, bits, location
      IR Output On the 2560 mega this is pin 9 not pin 3 
    Values for IR protcol_type
     #define NEC 1 - In use
     #define SONY 2 - In use
     #define RC5 3
     #define RC6 4 - In use
     #define DISH 5
     #define SHARP 6
     #define PANASONIC 7
     #define JVC 8
     #define SANYO 9
     #define MITSUBISHI 10
     #define UNKNOWN -1
    #include <IRremote.h>
    // these constants won't change:
    const byte MAXIRPROTOCOLS  = 10;
    const byte MAXIRLOCATIONS  =  5;
    // Assign pin numnbers for the locations
    int locations[]            = { 0, 22, 23, 25, 24 };
    boolean DEBUG              = false;
    IRsend irsend;
    void setup()
      pinMode(9,OUTPUT);       // The library initializes pin 3 as an output
      digitalWrite(9, LOW);    // Since our LED is connected to pin 9, 
                               // we initialize it here
      for(int i = 0; i < MAXIRLOCATIONS; i++)
        if(locations[i] > 0) pinMode(locations[i], OUTPUT);
    void loop() {
      // Receiving serial data kicks in here
      // Action, byte1, unsigned long, byte3, byte4
    void serialReceived() {
      // I = IR
      // D = Debug On/Off
      while (Serial.available() > 0) {
        char Action = Serial.read(); 
        int Byte1  = Serial.parseInt();
        unsigned long Byte2  = Serial.parseInt();
        int Byte3  = Serial.parseInt();
        int Byte4  = Serial.parseInt();
        if (DEBUG == true)
          Serial.print("Action = ");
          Serial.print(" Byte1 = ");
          Serial.print(" Byte2 = ");
          Serial.print(" Byte3 = ");
          Serial.print(" Byte4 = ");
        switch (Action) {
          case 'D':
              if (Byte1 == 1 )
                DEBUG = true;
                Serial.println("Debugging is ON");
                DEBUG = false;
                Serial.println("Debugging is OFF");
          case 'I': // IR command
              int location = Byte4;
              location = constrain(location, 1, 8);
              if(locations[location] > 0) {
                digitalWrite(locations[location], HIGH);
                // Protocol type, value, bits, location
                if ((Byte1 != 0) && (Byte1 <= MAXIRPROTOCOLS)) {
                  // Type, Value, Bits
                  DoIR(Byte1, Byte2, Byte3);
                digitalWrite(locations[location], LOW);
    // ===============
    // == FUNCTIONS ==
    // ===============
    void DoIR(int type, unsigned long value, int bits){
      if(DEBUG == true)
          Serial.print(" type = ");
          Serial.print(" value = ");
          Serial.print(" bits = ");
      if (type == NEC) {
        irsend.sendNEC(value, bits);
      else if (type == SONY) {
        for (int i = 0; i < 3; i++) {
          irsend.sendSony(value, bits);
      else if (type == RC5) {
        irsend.sendRC5(value, bits);
      else if (type == RC6) {
        irsend.sendRC6(value, bits);
      else {
        Serial.println(" - Undefined IR type !");


    • By: A.A. van Zoelen
    • On: 11/01/2014

    ZMC v3

    ZMC v3
    Due to an electric discharge my domotica audio system went down seriously. I managed to get it up and running again but functionality was still lacking reliability. That made me thinking of doing it differently with the equipment i already have. In my domotica system i have a XAP800 mic mixer that i use for voice recognition. Actually the device is just doing nothing most of the time. Looking at the specs i noticed that it could replace my whole house audio system. I wired everything up, wrote a few scripts and there you have it. My new ZMC v3. I am so pleased with it that i ordered 2 more XAP800's from eBay as spare.


    • By: A.A. van Zoelen
    • On: 01/01/2014



    Pruning the trees and bushes leaves you with a lot of twigs and branches. Nice material for making a wreath to hang in bird food for the winter.


    • By: A.A. van Zoelen
    • On: 01/01/2014

    IR extender

    IR extender
    Working on the IR system i thought it would be a good idea to tackle the problem with a HD recorder that's in a cupboard. Everytime we want to operate it we need to open the doors otherwise the IR commands can't reach it. But leaving the doors of the cupboard open displays you the clutter inside. Not a nice view and the wife got annoyed about it.
    To overcome this annoyance i tried a few schema's of 'so it seemed to be' working IR repeaters. This one actually worked. I changed the IR LED driver part (BC337) to a more conventional design with a 2N2222 but that was more because of personal taste. The TSOP1738 wasn't available so i just took a generic 38KHZ one.


    • By: A.A. van Zoelen
    • On: 01/01/2014

    IR System

    IR System

    In the previous posting i mentioned the IR blasters i made. This box is controling them. It's based on a Arduino which is used for more functionality then just IR Control alone. On the right side you can see the IR driver circuitry. Each room is addressed by it's own room code and only that blaster will be fed with the right device codes comming from my domotica system.


    • By: A.A. van Zoelen
    • On: 01/01/2014

    IR Blaster

    IR Blaster

    I have been busy updating my domotica system to incooperate IR controlled devices such as the television and some cheap LED lamps. Instead of putting IR leds everywhere i made a few IR blasters, one for each room where i need control. Each blaster have 3 wide beam and 2 narrow beam high intensity IR LEDs and a green control led showing it's operation.


    • By: A.A. van Zoelen
    • On: 01/01/2014

    Christmas card 2013

    Christmas card 2013

    As most followers know by now that i make every year a special Christmas card for my wife. However for 2013 i made something different then the usual 3D popup card. I made a small box (9x5x5cm). It will fold open into a small theather to display a stone carved whale.

    Christmas card 2013

    About four months ago i found a nice looking stone and i descided to carve a small whale out of it. It took me a reasonable amount of time carving and polishing it. Meanwhile Christmas was closing in.

    Christmas card 2013


    • By: A.A. van Zoelen
    • On: 01/01/2014

    First posting 2014

    The first posting for the new year (it's still 2013 when i wrote this). It was a very turbulent year for me and maintaining this site had a low priority on my todo list. However with the holidays between Christmas and New Year i had some time to fill in the blanks and update this site.


    • By: A.A. van Zoelen
    • On: 27/12/2013
    Postings in 2013