View Full Version : The DMX Offset Machine / Pixel Driver / Self-Contained Show Controller
Thought I'd throw another design out for anyone who is interested. We'd talked about this a few months ago, but it took longer than I expected to have boards made.
Featuring:
DMX in & through on XLR-5 connectors
Totally isolated DMX receiver stage
Optional: PIC16F88 processor
Optional: 9 position DIP switch
Screw terminals for +12V power supply
RJ-45 jack + DMX transmitter for driving chains of pixels
DMX output on 3-pin header for making other connections
Serial output on a pinheader for debugging. If you use this, install a 300R resistor in series with your Tx line. Otherwise, there's a chance the PIC pin could be shorted to ground. If you're talking to a local computer, generate your serial stream 'inverted' and you'll be fine not using an RS-232 transmitter. Don't do this for more than a few feet of shielded cable, though.
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.
As always, the design is totally open. Schematic & bill of materials are posted here:
http://www.response-box.com/rgblights/2007offset.shtml
If you make something cool or noteworthy, be sure to share with the rest of us.
No, I don't have any code for this design at the moment.
JEC
Tech Christmas
03-24-2008, 08:34 PM
Very interesting (as always) JEC... Being a network geek I would have used the term DMX Router instead of Offset Machine, ;-) but I get the point of it...
I have not figured out what I'd do with the PIC but boy it is interesting...
thanks
Very interesting (as always) JEC... Being a network geek I would have used the term DMX Router instead of Offset Machine, ;-) but I get the point of it...
Thanks!
The original idea 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.
I think the concept may be similar to 'NAT' in the networking world.
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.
It's probably even possible to make the system accept P.Short's Renard datastream. Many, many possibilities.
mrpackethead
03-25-2008, 02:12 AM
Thanks!
So if you wanted to send control data at 19,200, the processor could happily receive it, then dump DMX out the back door.
Eww, JEC you'll have everyone excited!!!
jrock64
03-25-2008, 08:20 AM
Optional: PIC16F88 processor
Optional: 9 position DIP switch
No, I don't have any code for this design at the moment.
JEC
If the PIC is optional and not even programmed at this point how do you tell offset one that it is to start at DMX address #1 thru 96 and unit 2 that it is to start at #97 thru 120 and sent out the back as 1 thru 24
confused..err joel
If the PIC is optional and not even programmed at this point how do you tell offset one that it is to start at DMX address #1 thru 96 and unit 2 that it is to start at #97 thru 120 and sent out the back as 1 thru 24
confused..err joel
I have stacks of pseudocode rattling around in my mind, but haven't taken the time to actually implement it.
I should have mentioned above that while I discussed the design with the UK customer, he didn't require the functionality immediately.
It's probably a day's worth of work to get the code stable, but I just haven't had the time.
So as it sits *this moment*, the system is more of a driver board + single-channel optosplitter. Great for expanding your available device count, but everything in line needs to have its own (world-visible) DMX address.
mrpackethead
03-29-2008, 06:58 AM
Very interesting (as always) JEC... Being a network geek I would have used the term DMX Router instead of Offset Machine, ;-) but I get the point of it...
I have not figured out what I'd do with the PIC but boy it is interesting...
thanks
Ahh another Network geek... What in particular? I liked the term DMX router, its kind of cute.. However we might need to decide if its actually a router, a switch or a bridge? What sort of networks do you do btw?
DynamoBen
03-29-2008, 10:30 AM
Let's not get off topic.
DennyMo
09-04-2008, 10:41 AM
Have any of you programmed this into a "Self-Contained Show Controller" mode? Care to share some of your process, and comments on your success/difficulties?
I have a couple other question, more or less directed at JEC:
- The Offset Machine would replace the Data/Power Injector in that mode?
- Could such a system start running it's programming upon power-up, or would some sort of "start" signal be required?
- Do I understand correctly that one of these gizmos can drive up to 32 of your pixels?
- Could you daisy chain multiple Offset Machines and have all of them controlled by one of them running in this mode?
- 12V powers the board _and_ is delivered to the pixels through the RJ-45? I assume I'd still need to "double power" the string if it got larger than 20?
I have stacks of pseudocode rattling around in my mind, but haven't taken the time to actually implement it.
I should have mentioned above that while I discussed the design with the UK customer, he didn't require the functionality immediately.
It's probably a day's worth of work to get the code stable, but I just haven't had the time.
So as it sits *this moment*, the system is more of a driver board + single-channel optosplitter. Great for expanding your available device count, but everything in line needs to have its own (world-visible) DMX address.
Couple of updates here...
1. I re-spun the board, using an 18F4550 instead of the 16F88. More memory, etc. Am quite happy with the results and will post some photos shortly.
2. I have basic DMX-Routing code finished and stable.
The board has a 9-position DIP switch used to set the system's start address. The processor then receives and transmits DMX packets based on the DIP switch address.
That is, if you've set the address to 10, the system will receive an entire incoming packet. Then, the first nine channels are deleted and a truncated packet is re-transmitted. So incoming channel 10 is outgoing channel 1...
Have any of you programmed this into a "Self-Contained Show Controller" mode? Care to share some of your process, and comments on your success/difficulties?
I've done it & have mentioned it elsewhere in the forums. Holler if you can't find the reference.
It worked well for me because I didn't need audio synchronization. Just some cool effects which looped every few minutes.
- The Offset Machine would replace the Data/Power Injector in that mode?
Yes, correct.
- Could such a system start running it's programming upon power-up, or would some sort of "start" signal be required?
Certainly it could auto-start. If you're rolling your own code, it could do basically anything you need.
- Do I understand correctly that one of these gizmos can drive up to 32 of your pixels?
Yes.
- Could you daisy chain multiple Offset Machines and have all of them controlled by one of them running in this mode?
Yes - up to 32 offset machines, each driving 32 pixels. The limit in this case would be your DC power, which *must* be a +12v switching supply. Figure ~130 mA per pixel at full brightness.
- 12V powers the board _and_ is delivered to the pixels through the RJ-45? I assume I'd still need to "double power" the string if it got larger than 20?[/QUOTE]
Yes and yes.
DennyMo
09-04-2008, 11:05 AM
Thanks for the quick replies. I don't need audio sync (yet), so I look forward to reading your comments. I've tried a couple searches for posts by you that include the keywords "offset" "dmx offset" "self-contained" and others, haven't found too much beyond this thread. Yes, I'd appreciate if you could point me to those discussions.
Attached is a photo of the updated system.
Featuring...
* 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 this 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 local assembly shop ran 30 complete units. As of this morning, I have 12 remaining. I also have a stack (maybe 30?) of bare circuit boards.
After having the boards fabricated I discovered two changes to the circuit which greatly improved the system's speed and efficiency. The changes, easily made with small wire jumpers, have been made to the assembled boards.
Thanks for the quick replies. I don't need audio sync (yet), so I look forward to reading your comments. I've tried a couple searches for posts by you that include the keywords "offset" "dmx offset" "self-contained" and others, haven't found too much beyond this thread. Yes, I'd appreciate if you could point me to those discussions.
Hmmmm... maybe those discussions were more or less done in my mind.
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/default.aspx?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).
It may not be the most elegant way to set things up, but I liked the simplicity of a $4 processor running the show.
JEC
scorpia
09-07-2008, 03:50 AM
Jec,
if your saying that the board built can run your rgb pixels in at least a random pattern without a PC then im very interested in this board.
let me know if you have a couple of the bare boards your willing to part with as i wouldnt mind giving the SMD pic a go for soldering.
let me know how much with shipping would be great.
Thanks
Peter
Yes, the board can drive pixels (or anything which speaks DMX, for that matter) without a problem. The 18F4550 has enough RAM (768 bytes) to store an entire universe and the 20 MHz crystal will let it run fast enough to do some interesting things.
Further, since it also has an isolated DMX input section, you could program the chip to wait for activity on a specific channel, then run whatever program or effect you've added yourself.
Or, just use it as a stand-alone playback machine.
I'll post photos & a schematic on Monday.
I have 17 bare boards. Maybe $8 each + freight? Send me an email and let me know what exactly you need.
DennyMo
10-19-2008, 10:16 AM
Could your unit drive other non-Pixel DMX gear in stand-alone mode, like maybe a Lynx Express? (http://diylightanimation.com/index.php?board=5.0) Or is the signal coming off the RJ-45 connectors not DMX anymore?
Absolutely.
If you look at the photo from post #13, you'll see pads for a three-pin header right next to the (unpopulated) RJ45 pixel driving jack.
Those three pins correspond to GND (XLR pin 1), D- (XLR pin 2) and D+ (XLR pin 3) of a regular DMX cable. There wasn't room on the board to add a dedicated connector, but it's not hard to make a 'pigtail.'
Those three pins are also repeated in the RJ 45 jack, albeit in a slightly different order.
Bottom line is yes - the offset machine can be used as a stand-alone DMX transmitter and control any standards-compliant DMX fixture - including but not limited to RGB pixels.
I checked the shelf and found 8 assembled & tested units, plus a handful of bare circuit boards.
electr0n
01-02-2009, 11:10 PM
Now that I've taken down my Christmas lights I am ready to play with one of the DMX Offset Machine boards that I got from JEC. Since I will be using this primarily as a stand alone driver for my new pixels similar to what JEC did for Halloween I had an idea. Would it be possible to use the DIP switch to select a few canned effects for a pixel chain?
I can see having these in the backyard by the pool and being able to select a routine via the DIP switch - for example
1 - 100% white
2 - 50% white
3 - Flickering amber
4 - 100% red
5 - 50% red
6 - random color selection/fades
7 - color chase
etc. I think that would be cool because it could be stand alone but relatively easy to change the results if desired.
I was able to find the original schematic referencing the 16F88, but not the improved version using the 18F4550, is there an updated schematic available?
Also anyone that has used this in stand alone mode would they have some code they would be willing to share? I wasn't able to find any examples, I would be especially interested in the candle flicker effect.
Any help would be appreciated, I have written PIC code but it's been a few years back. This seems like a relatively easy one to start on, but if someones already got an example that would help me greatly.
Note - the original flock of offset machines are long gone (has it really been 3 years? Wow.) But, they've been replaced with something that's equally nifty.
http://response-box.com/gear/2010/04/dynamic-dmx-recording-and-playback/
I know this ones been around for a while but any thoughts about releasing sample source code for the standalone pattens like in the clips that us diy's could get stuck into?
Powered by vBulletin® Version 4.1.10 Copyright © 2013 vBulletin Solutions, Inc. All rights reserved.