Overview & Design Philosophy



Introduction

I wanted color changing Christmas lights this year, so I decided to build some. I've put this whole project together in an online 'journal' format because it was the easiest way to post sections of the project at a time.

The premise behind them is fairly basic: if a fixture contains red, green and blue light sources, the intensity of each source can be varied and the colors will mix and blend together. Depending on the control techniques used, thousands or even millions of discrete colors can be generated from these three basic colors.

Video clips and high-resolution photos coming soon!

Hardware

I should preface this with an emphatic "Yes, I understand that there are commercially available strings of RGB LED pixels which can be driven with a DMX signal."

For the uninitiated, DMX-512 is a data protocol used to to control lighting equipment at concerts and in theatres. It's a serial data stream which runs at 250,000 bps. At its highest data density, 512 discrete dimmers or lighting channels can be controlled and updated about 40 times per second.

The fixtures most commonly available (and most popular) in the US cost $600 - $1000 per string, plus a power supply, plus computer software of some sort to drive them. Or a Hog or a grandMA with its associated pattern generator.

One can certainly program these LED pixels with a regular DMX lighting console. However, creating chases and washes and flashes one cue at a time is tedious. Excruciatingly so.

Thus, several companies offer very highly regarded software packages which are used to drive multiple LED arrays. PixelDrive is one. These packages accept still images or video files and map the LED arrays to various pixels in the source file. Images and movie files can be dragged and dropped in to position. What takes hours to program by hand can be accomplished in a few seconds using these programs.

Incredible software, very powerful and capable of driving dozens of full universes of DMX. The software is usually free, but the external interface which converts the RGB data into DMX costs between 2 and 7 thousand dollars.

How My System Works

Taking matters into my own hands, I designed a simple LED pixel and had 32 copies fabricated. Each pixel contains an RS-485 receiver which converts the differential DMX signal into a single-ended TTL serial stream. A microprocessor analyzes this data and grabs the channel information corresponding to its start address. Each pixel requires 3 DMX channels. At the time of this writing, the address is hard-coded in the firmware of each pixel. However, this will likely be changed in the future. The red, green and blue LEDs are controlled via a pulse-width-modulation scheme which allows high-efficiency dimming and responsive control.

The microcontroller code was fairly simple to implement because I drew upon existing code libraries used for The Flapper MKII, which is a DMX-controlled projector shutter sold elsewhere on this site.

Max/MSP is a graphical programming environment which provides the tools needed to manipulate video and audio images. Programs, or 'patches,' are created by users to accomplish various tasks.

To run the system, the Max patch I created is opened. A source video file is chosen. The video file is then played and downsampled to a 32 x 24 matrix. Then, the patch selects one row from this matrix to be the data source for the pixel string.

Red, green and blue pixel data is extracted from this pixel row and sent back out the door as an opto-isolated DMX stream at 30 frames per second. The computer's processor runs at about 85% capacity during this process.

The nifty bit is that any video file or still image can be used. This year, I screen-captured about 10 minutes of breathtaking iTunes visuals and created a continuous loop for playback.

Et Voila - color changing Christmas lights like nothing you've ever seen before, and at a tiny fraction of the off-the-shelf price.

My wife tells me that if I buy her a house, I can build enough of these lights to decorate properly next year.

Thanks again for visiting! If you click on 'next' or 'previous' below, you'll find more information about this project.

- John



Posted: Thu - December 8, 2005 at 01:51 PM          


©