Control/Dimming Electronics Project

tyler.martin

Active Member
I've got a project that I am working on for a class, I have to build (Not Design) an electronic device that is related to the department of theatre I work in (LX).

So, I'm building a Wireless DMX transmitter with a receiver that has a 4 Channel low voltage dimmer built in, much like the RC4 product. I have the Wireless system built and coded, and the processor for the receiver. But, I'm going to put a pass-through out on the receiver, my question is:

What is a commonly used Opto Isolator IC used in DMX systems?
And has anybody found a reliable Low Voltage Dimming Circuit that is reliable, it needs to be fed with 12v and be capable of 75w per channel.
 
Transmitting a full universe of DMX can be tricky; RJ used the Microchip 802.15 modules (MRF24J40MB) in his design. Transmitting a smaller number of channels is a lot easier.

For optos, I usually use a 6N137 followed by the 75176 or MAX485 diff driver. Don't forget an isolated power supply too. Murata's MER1S0505SC is a good one.

For dimming incandescents, I would use PWM driving a large N-channel FET. Look for a part with low Rds(on) and a logic-level gate. Add a series resistor to the gate so you can control turnon/off time if ringing becomes a problem.

If you have a choice, I'd pick a processor with 4 channels of hardware PWM to simplify things, but you can always do software PWM with a timer and 4 regular output pins.

When doing your layout, don't forget that you will have some pretty heavy power draw, so you will need wide, fat traces, maybe heavier copper or wire soldered on top of the high current traces. Also, diode-isolate the supply to your processor's regulator and have enough bulk capacitance so switching transients won't glitch the processor.

/mike
 
Transmitting a full universe of DMX can be tricky; RJ used the Microchip 802.15 modules (MRF24J40MB) in his design. Transmitting a smaller number of channels is a lot easier.

For optos, I usually use a 6N137 followed by the 75176 or MAX485 diff driver. Don't forget an isolated power supply too. Murata's MER1S0505SC is a good one.

For dimming incandescents, I would use PWM driving a large N-channel FET. Look for a part with low Rds(on) and a logic-level gate. Add a series resistor to the gate so you can control turnon/off time if ringing becomes a problem.

If you have a choice, I'd pick a processor with 4 channels of hardware PWM to simplify things, but you can always do software PWM with a timer and 4 regular output pins.

When doing your layout, don't forget that you will have some pretty heavy power draw, so you will need wide, fat traces, maybe heavier copper or wire soldered on top of the high current traces. Also, diode-isolate the supply to your processor's regulator and have enough bulk capacitance so switching transients won't glitch the processor.

/mike

i have a dumb question: when looking at the datasheet for that opto, the truth table shows the output inverted from the input ie high input = low output. Is that simply addressed in microcontroller firmware, or is there more circuitry, or ? If you were using the uart on a pic for example, wouldnt it need the input non inverted? (or do i have this all wrong?)
 
I've got a set of Xbee Pro Modules with a Serial Transfer rate of 1 Mbps, which is more than enough for DMX, even the RF Transfer rate is 250 Kbps.

For Opto Chip, Ive got a 6n137 Family chip, and the Max on the other side.

I'm using a Propeller chip for the receiver processer, and since im not getting a printed PCB, I am using the Parallax Propeller Proto Board, so I will be using jumpers for the load wiring.
The Proccessor supply and the 12v feed will be separate power feeds, so is that isolated enough?

The FETs i was looking at were these (Digi-Key P/N) IRFU3709PBF-ND
Would those be suitable? and on the Digi-Key list, is the Vgs the PWM signal in?

Thanks!
 
To get around the inversion in the 6n137, drive the cathode of the LED from the micro.

The FET looks OK, but since you are not making a PCB, I would choose one in a TO220 package so you can attach a heatsink. I didn't check what Voh is on the propeller; it has to be larger than Vgs(th max) (3.0v in this case) or you will need to add a level shifter to ensure the FET turns on fully.
/mike
 
Perfect! Thanks So Much

I did end up switching FETs to a higher wattage rating in a TO-220 package, and I already had Heatsinks ordered.

The Voh of the Prop is 3.3v so with my new FET having a Vgs of 3.0 I should be ok.

What size of series resistor would you recommend?
 
One more question, I know I can't just send DMX to the DIN pin on the Xbee, what do I need to put there? Would a MAX3100CPD RS485 to UART transceiver work?

Unfortunately not.. (sure would be nice if you could). DMX512 is quirky enough to require some special tricks when designing compliant hardware/firmware. http://ww1.microchip.com/downloads/en/AppNotes/01076A.pdf
This AppNote is a good primer for designing DMX hardware. The "Break" character is the most problematic.. (at least it was for me). In your case you're going to need to be able to reliably detect it (at the radio xmitter side) and then generate it (at the radio receiver side). The reason "Break" is problematic is that it isn't a normal character length at 250Kbaud, thus you can't simply send a "Break" with the UART at 250Kbaud. Similarly, receiving a "Break" causes a 250Kbaud UART to overflow.. and set internal error flags.
 
So I need to break the DMX signal down before it hits the Xbee. Is there a way to do this? Someone suggested converting DMX to RS232, but that would cause issues on the receiver side when it trys to reassemble the DMX signal.
 
So I need to break the DMX signal down before it hits the Xbee. Is there a way to do this? Someone suggested converting DMX to RS232, but that would cause issues on the receiver side when it trys to reassemble the DMX signal.

I'm not knowledgeable enough with a Xbee to know if it has enough capability to deal with the complications. I doubt you can give the Xbee the break character.. it's not gonna know what to do with it. It's possible you could put a micro in front of the Xbee and have it receive the DMX512, decode the break character, toggle a I/O line on the Xbee when the break character is received, and then stream out all the characters that followed the break to the Xbee's serial input Then at the receiving Xbee, have another micro downstream that looks for the I/O line toggle from the Xbee, generates a break, and then passes through the rest of the data (the characters after the break)... but I don't know if the Xbee can be used in this way, or would be fast enough with the remote I/O toggle to not cause timing issues.

Just brainstorming.. another possible way would be to have the micro that decodes the incoming DMX send out two serial characters to the transmitting Xbee, for every single character that comes in. The first one would always zeros, except when you need to transmit a break (then it would be non-zero), and the second character which is actual data. That way the receiving end uses the first character to see if this is a break. You still have the technical issues of detecting and generating a break (at the actual DMX end of things).. and additionally this method has half the throughput of the incoming DMX (if the radios are transmitting at 250Kbaud).
 
The Xbee (at least the standard 802.15 ones, not the new wifi ones) doesn't have the bandwidth for full DMX. You could send a smaller number of channels, though. Best way would be to have a micro receive DMX, and pass some form of packet to the radio (possibly with some sort of delta or RLL compression?). On the other end, a micro would take the packet from the radio and update the generated DMX stream. That's how RJ did it over in the animated Christmas Light world; he used Microchip's radios and can pass a full universe over the radio.

/mike
 
I'm kinda leaning towards compressing the stream and sending a whole universe. RC4 uses xbee pro's which do transmit the whole universe, and they have a PIC on each end.

The xbee's I got have a serial transmit rate of 1Mbps, and an RF transmit rate of 250Kbps, and a high power rate of 100mW

Luckily due to a shipping error i have 4 extra propeller processors, I have found a couple of serial compression programs that look promising!
 
Last edited:
martinty

I am very interested in doing something like this, but I have no idea where to start. I am new to this whole hacking thing in that I understand what to do, I just do not get how to do it yet. Can you provide a noob with some advice?

Thanks
PJ
 
PJ-
If you don't have any experience, I'd start by getting a board with one of the more common processors on it. Pick one that has a good community behind it so you can find some tutorials or examples. The Arduino comes to mind (it uses the Atmel AVR line of processors); I am sure there are similar boards for the PIC or Propeller line.

The tutorials will give you a start in learning how to program them (if you have done any programming in the past, it's quite similar on the micros; you just don't have unlimited memory to play with). Once you can do simple stuff like blinking lights, responding to buttons, and making things beep, the next step is to play with DMX. I know there's code out there for most processors, and the hardware you would need to add is simple - a 75176 or MAX485 chip and an XLR connector.

/mike
 
I would say, Find a project that you really want to do, make something that has all the features that you want it to have.

Like N1ist said, Pick a micro... There are tons of resources out there for all of the 3 major types that come to mind (Arduino, PIC, Propeller) and some are better at certain things than others (Not going to get into that though :) ) but all have an "experiment/Education" board that will help you learn to program and build circuits with their capabilities.
 

Users who are viewing this thread

Back