Knock To Open Trasure Chest

The finished box


My daughter asked me to build her a treasure chest that she could use to store her most valuable things. Obviously she demanded it to have some kind of a locking mechanism so only she could open the box.

First thought was to use a keypad but then her grandfather bought her a diary with a secret code. So I had to come up with something else. On adafruit’s tutorials I came across the Secret Knock Activated Drawer Lock. Use a secret combination of knocks to open the box… An idea I instantly liked a lot. Another great thing about this drawer lock was that it was programmable, which means you can change the knock sequence to anything you like. Continue reading

Primo: Problems and stuck [Updated]

Right now I basically assembled all parts of the board and the Cubetto but it looks like the wireless communication is not working.

List of Problems:

  • Cubetto did not initialize. I could hear the motors stutter but they would not move. Looks like the 4 AA batteries don’t deliver enough juice. Now I’m temporary using an old cell phone charger to deliver the power. No more wireless 😉 but it helps me troubleshooting.
    Might have to go for LiPo batteries.
  • I then tried it out with the XBees installed on the Mega and the Uno (via Wireless sd shields) respectively. But nothing happened.
    Looking at the board’s output over serial I can see that the commands are being sent. And when connecting to Cubetto using the USB cable it also initializes correctly and executes commands that I send from the laptop via serial.

So I made a step back and just wanted to setup a basic XBee connection between the two Arduinos:

I came across this tutorial from Instructables but it is not working for me.

– Mega 2560
– Arduino Wireless Protoshield SD
– XBee 2mW Wire Antenna – Series 2 (ZigBee Mesh)


void setup() {
  // initialize serial communication:

void loop(){

I have the switch on the shield on “USB” while uploading and can see “h”‘s printed in the serial window after uploading. Switching to “Micro” after that.

– Uno R3
– Arduino Wireless Protoshield SD
– XBee 2mW Wire Antenna – Series 2 (ZigBee Mesh)


int sentDat;

void setup() {
  pinMode(2, OUTPUT);

void loop() {
  if (Serial.available() > 0) {
    sentDat =;

    if(sentDat == 'h'){
      digitalWrite(2, HIGH);
      digitalWrite(2, LOW);

Again, having the switch to USB when uploading and seeing the led blink when sending an “h” over serial. Then switching to “Micro”.

And then: Nothing!

How can I troubleshoot this? Any help appreciated.


I yanked the shield from the Mega and crossed tx/rx from the Mega to the shield. I also connected the 6 isp connections plus 5v, 3.3v and GND.
I then connected Mega’s rx with Uno’s rx and tx with tx with wires and my blink sketch worked!
I had the switches on the shields both to USB.

But then, when I remove the rx/tx wires the communication is dead. I switched the shield to Micro mode and back to USB, i played around with switching rx / tx… but no luck.

Not sure if I need to make more connections from the Mega to the shield… unfortunately it’s not on


Primo: Instruction blocks and interface board

Currently working on painting the parts, glueing the interface board and putting the copper tape to it and also to the instruction blocks. To make it more difficult, the laser cut slots of the instruction blocks are slighlty narrower than the 5mm copper tape. So I need to cut off a bit from the tape so it goes through the slot. Fortunately I don’t have this problem with the too narrow slots on the interface board.

Another thing that was too small were all the holes for the 5mm LEDs on the interface board.

Can’t wait to finally start soldering!

DigiSpark helps monitoring a log file

At work there was a problem with a tool that archives documents. Whenever that tool failed doing its task it would write an error code into a database table.
So some unfortunate user had to check that table for that error code about three times a day, would open that document in Word, save it and update the error code.

I got the order to write a program to automate the whole process. I used c#/.NET for the whole thing. The Task Scheduler would call this program every five minutes and would write its findings into a log.

Because I tested it I was pretty confident it would work smoothly. But what happened now was this: I would check the log regularly if my program picked up the wrong documents and corrected it. Instead of somebody checking the database for errors I would now check the log for the error indications!

So I wrote a second program – again in c#. It would check the log file and if it detected that the tool picked up and fixed a defect document it would then blink the DigiSpark‘s RGB led and turn from green to red. For this I used DigiStump’s DigiRgb.exe basically the same way I used it in my Minecraft mod.

I love it: It saves me a big amount of time of checking a log for something that hardly ever happens. Plus: It looks really cool on my desk 🙂

DigiSpark with RGB shield

DigiSpark indicating that all is good. If it detects an error log it blinks red ten times and then stays red until manually reset.


Primo Part I: Lasering the stuff

A while ago I backed the amazing Primo project on Kickstarter. Right on schedule, the source files were available by the end of February.

Went to the local FabLab today to laser all the components.
Their lasercutter is second hand and has its hiccups. I ended up lasering all the components twice for best results. So it took me twice the time.

But I’m happy having everything at hand and start assembling. Lots of guidance is also available on Sjoerd Dirk’s Blog.

A weather moodlight

To create a moodlight using Arduino was always in the back of my mind. When I came accross the Spark Core on Kickstarter I also wanted it to be connected to the internet. Spark’s onboard wifi chip would make it easy to have the moodlamp reacting to outside events (apps, web sites, etc.).

In a first step I created a .NET web application that pulls weather data from OpenWeatherMap and according to the condition and temperature it would return two color codes. For example for temperature of 0 to 5 degrees celsius it would return Blue and for condition “Few Clouds” it returned Light Green.

Temperature range is from Purple (very cold) to Red (very hot) and condition is from Purple/Red for severe conditions (Thunderstorm, Hail, Tornado, etc) to White (Snow, etc) to Green (Few/No clouds) and Blue (Rain). Continue reading

Hacking Minecraft, adding output using Arduino

With the future/career day coming up I was wrecking my brains on what to do on the day my son visits me at my workplace. There will be stuff organized for him in the morning but I will have to entertain him for about four hours in the afternoon.

I was thinking I would bring my laptop and let him do some Scratch programming, something he already did and enjoyed. Thinking further I thought I could bring my Arduino Uno and he could blink some LEDs. The most important thing for me is to bring him into programming and not to bore him so I searched further. I thought connecting Arduino and programming to something he is really into… like Minecraft!

I came across this blog post where Rozz decompiles, hacks and recompiles Minecraft to output the health status via a connected Arduino! DONE! This project had all the ingredients I was looking for!

Continue reading

Connecting to Arduino using Processing and bluetooth (HC-05, HC06)

USB bluetooth dongle

USB bluetooth dongle

The other day I bought myself a USB bluetooth dongle for my HP laptop and a HC-05 bluetooth adapter for the Arduino.

When I connected the dongle to my laptop running Windows 8 it appeared like it would install the default drivers for it. I connected the HC-05 to an Arduino and I could locate it from my laptop. I could even pair the dongle with the adapter. (Default code: 1234.)

HC-05 bluetooth module

HC-05 bluetooth module

But when checking the HC-05 in Windows’ device manager its status would say “Offline”. It took me several hours of googling until I came across a suggestion by another user that bought the same dongle on amazon: I installed the Toshiba Bluetooth Stack! Even though it says it’s only for toshiba laptops it worked on my HP like a charm.

I also had a HC-06 adapter lying around. Optically they look very similar. As far as I know HC-05 can work as master or slave whereas HC-06 is slave only. If you use them as slaves you can use either of them using the same pins. HC-05 came up under COM40 and HC-06 identifies itself as “linvor” under COM41.
Continue reading

I won a GPS Bee Kit from Seeed!



The kit is on its way, can’t wait to test it…