The DMX Offset Machine
Our early DMX-driven RGB pixels had their DMX address hard-coded in the shop. They couldn't be changed in the field without using a special programmer designed for re-flashing microcontrollers.
The original idea for this design came from a guy in the UK who bought a few dozen pixels. He does theatrical lighting and frequently tours from place to place.
His idea was to hard-code a string of pixels to the addresses 1, 4, 7... etc.
Then, use the PIC & dip switches to set the start address for the entire chain. The PIC would receive an entire DMX packet, then shuffle and re-transmit only what's needed for the downstream pixels. Thus 'offsetting' 96 channels of data from where they were in the datastream to somewhere else.
The end result is that the pixels don't need to re-addressed for each show. He can just set a 'system address' which plays nicely with the other lighting equipment in the space.
The concept may be similar to 'NAT' in the networking world.
The design featuers...
* Microchip PIC 18F4550 + 20 Mhz crystal
* PIC programming header
* Isolated DMX receiver section with 5 pin XLR 'In' & 'Through' jacks
* 9-position DIP switch for setting system address
* Status & power LEDs
* Debug port for serial communication with a PC.
* DMX output on 3-pin .1" header
* Pixel string output (power + data) on RJ45 jack
Note that the picture picture doesn't show the RJ45 jack installed (upper right corner) or the DC-DC converter used in the DMX receive section (lower left corner).
Board size is ~ 3" x 5".
The rationale behind this design is thus:
If you're using a standard RS-485 receiver, you're not supposed to chain more than 32 devices together. Too many devices will overload the transmitter & possibly corrupt the datastream.
Yes, there are receivers out there which present a much smaller load (1/8?) to the system. You could put 256 devices on a single line if you wanted. They also cost about 10x more than the bog-standard SN75176.
So in theory, 32 of these drivers could be connected to your master controller. And each driver could control 32 downstream devices...
The other interesting part of this design is the included processor & programming header.
If you wanted to, you could make a stand-alone light show. No computer required.
Or, program the processor to accept DMX input, then trigger specific effects on the downstream chain.
Being able to bypass the processor completely, or program a self-contained light show on-chip, is sort of a free-of-charge side benefit. Your programming time excepted, of course.
It's worth noting that the received data doesn't need to be DMX. It's set up for regular RS-485 (differential) reception. So long as you get the polarity correct on the transmitting end, the isolated receiver will spit out regular serial data to the PIC.
So if you wanted to send control data at 19,200, the processor could happily receive it, then dump DMX out the back door.
As always, the software is what would make this sort of project really shine.
Here's two video clips of a string of pixels being driven by a DMX-generating PIC 18F4550:
http://www.youtube.com/watch?v=FF1YUCV_JAw
This clip shows each lamp 'flickering' with random rise and fall rates. The code I used was inspired a snatch of code posted by Tracy Allen on the Parallax.com Basic Stamp website. He found a way to make an LED emulate a candle.
http://forums.parallax.com/forums/de...x?f=5&m=217257
I expanded his code into become a giant state machine, which could handle dozens of candles running in parallel. Each has a different rise, fall and start time as you can see.
Here's something similar, but with the pixel boards installed in solar garden lanterns:
http://www.youtube.com/watch?v=WdD6n2ck2HI
And one more, this time in a grid pattern:
http://www.youtube.com/watch?v=TSi7dtBJHYw
-----------------
At the end of the day, it's just a lot of math. In my case, I built up several effects 'engines' in the PIC's source code which could then be fed different parameters (speed, randomness, color map, etc).
We have a stack of these on the shelf, both assembled and as a bare circuit board. Contact us if you need one.
