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