Back to Ye Ole' Drawing Board


What's new for 2006... (Hint: leaner, meaner code running on a less expensive microcontroller, plus full source code and HEX files for your burning pleasure.)

Well. The dust has settled from the original Christmas light project. The neighbors loved them.

But, it turns out that the despite my best efforts, the point where the wiring harness entered each individual fixture wasn't completely waterproof.

So a late-December snowstorm, coupled with a next-day melting, shut down the system a week or so earlier than I would have hoped. Cleaning all the boards thoroughly with alcohol and letting them dry in open air proved to fix the water-caused shorts easily.

Plus, they were expensive to build and significantly over-engineered.

So for 2006, I'll be introducing some changes.

The current design contains a 20 MHz crystal at each pixel, which is (mostly) used to allow the chip's internal USART to reliably capture the fast-moving DMX data. And, a DMX-512 signal running at the highest bit rate can update 512 fixtures approximately 44 times per second.

The current string of lights only contained 32 pixels (or 96 channels). So the regular DMX baudrate is nearly 5x greater than what I really required.

By reducing the bit rate, I can dispense with the expensive crystal and move to a smaller, USARTless chip which is still plenty powerful for this application. PIC chips are available which contain internal oscillators rated for fairly good (+/- 1%) accuracy. If the chip is running at 4 MHz, I still have 1 million machine cycles per second to handle data reception and color mixing.

The new version will also not include an RS-485 receiver. Rather, a small 'mothership' board will received a proper DMX signal based on the chosen start address. Then, the mothership will translate the high-speed DMX data into a slower data stream for the strings of pixels.

Most importantly, the pixels will be self-addressing. Meaning that one HEX file can be burned into hundreds of different processors. When connected properly to a mothership board, each pixel will know exactly which part of the data stream it should be responding to. Each string of 16-24 pixels would connect to a mothership translator board.

The best part is that when the parts are all identical, I can send the design to the fabrication shop here in town and have them assemble everything, without worrying which chips have been programmed to which address.

I don't know yet whether a single mothership will be able to control multiple strings of lights yet.

And I just might figure out a way to store different chasing and fading patterns on a MMC card (like what's in your digital camera) so that the entire display can run without requiring the entire computer to be up and running MAX at 80% processor utilization.

Plus, of course, I'll be working on a nifty and more-waterproof enclosure for each pixel.

More later,

John

Posted: Wed - April 26, 2006 at 11:53 AM          


©