It's been a while since I posted anything and that deserves another post just to talk about everything that happened in the last 8 months since the March earthquake and tsunami here in Japan. I'm a little bit tired of heavy topics and serious projects so I thought I'd put together a little something that's kind of fun and also timely. Now that we're moving into the holiday season, we're about to start seeing the hard core Christmas people setting up the elaborate light displays. The equipment to switch all the lighting channels and sequence everything is usually a bit costly but it doesn't have to be. If you're familiar with the Arduino environment and willing to put in a bit of elbow grease, blinging out your lawn is just a couple of mouse clicks away :)

I put this three part video tutorial together on how to use the Arduino platform to decode the DMX protocol. The DMX protocol is a standard protocol for stage lighting displays and it happens to be supported by a nice freeware light sequencer called Vixen. In the first part, I go over the DMX-512 protocol and the Arduino source code to decode it. In the second part, I show how to configure a lighting sequence with Vixen, some hardware implementations, and the whole system working together. And in the final part, I show how some simple changes to the code can enable you to control your lights wirelessly.

You can download the source code here.

Note: A sample of the modified "HardwareSerial.cpp" is also included as a reference on how to modify the one inside your particular Arduino IDE installation. I'd recommend using a fresh installation of the Arduino IDE to try this tutorial out. The reason is that the HardwareSerial.cpp file needs to be modified and this may break other Arduino projects you might have. 

Hope you enjoy :)




Updated 2011-11-06: I just checked the latest version of Vixen and they no longer use the name DMX-512 for the DMX plugin. They now use the name "Enttec Open DMX" but it maps to the same DMX-512 DLL. Also, I forgot to mention but the DMX plugin looks specificatlly for FTDI USB/Serial chips which are standard for OpenDMX devices. Please see picture below:


Updated 2011-11-06: I've been getting a couple of questions about the boards in the videos. Regarding the devices that I'm using, one of them is an Arduino-platform based breadboard I designed for Tokyo Hackerspace. As of this writing, those are not yet released to the public. Mostly I need to finish up the documentation on them. In the third tutorial, I'm using the Freakduino which I sell in my webshop. Here is the link . Its also possible to use any Arduino based board that has an FTDI USB/Serial IC to connect to a PC/Mac.


+2 #1 Michael Scott 2016-09-14 06:03
Hello Akiba,
the hardware.cpp file is different in Arduino 1.6.
Could you tell me which part in this file I would need to comment out?
+1 #2 Michael Scott 2016-09-14 06:05
I meant HardwareSerial.cpp

Add comment

Security code