History

Prior to 1986, remote control of stage lighting was handled by an assortment of somewhat proprietary (but often similar) systems. Because the systems were proprietary, the specifications were not published. There was no way to know if a dimmer pack from one manufacturer would work with a controller from another. Once you bought a system from one manufacturer, you were almost totally locked into that manufacturer for expansion options.

In 1986, the United States Institute for Theater Technology (USITT) published a specification for an open standard protocol, which they dubbed "DMX-512." The idea was that, with an open protocol, you could mix-and-match equipment from different manufacturers safely.

DMX-512 was a totally new protocol, very powerful but totally incompatible with any of the older systems. There were several good reasons for this incompatibility. The most important was that DMX-512 was to be an "open" standard, not dependent on any one company's proprietary system, to avoid giving any one company a head start. It was to be an all-digital system, for higher speed and greater reliability: most of the remote control protocols up to that time were at least partially analog. It was to be much more powerful than any of proprietary protocols had been.

Most of the incumbent stage lighting manufacturers continued to produce their proprietary systems, though a few began producing DMX-512 equipment as well.

In 1990, the USITT revised the DMX-512 specification, relaxing some of the timing specifications and making the protocol easier to implement. Several new players came on the scene with low-cost, entry-level equipment using the DMX-512 (1990) protocol. Several of the incumbent manufacturers increased their marketing efforts for their DMX-512 products but, to this day, continue to manufacture and aggressively market equipment for their older protocols.

This year, the USITT turned control of the DMX-512 specification over to the Entertainment Services & Technology Association (ESTA), as a first step toward making DMX-512 an ANSI (American National Standards Institute) standard.

The standard is under revision once again. It was originally developed for control of dimmers. The new revisions will, among other things, try to standardize the way moving-light effects (scanners, etc.) are handled.

In the rest of this article I plan to cover the technical details of DMX-512. I'll try to do it so you don't need an engineering degree to figure out what the heck I'm writing about.

Digital versus Analog

Prior to DMX-512, most remote control schemes for stage lighting were analog - the brightness of a light corresponded to the voltage on a wire. A typical system used 0 - 10 volts, with 0 being off and 10 being full brightness. A problem with this system is that long cable runs and heavy loads (a lot of dimmers on the same circuit) can affect the voltage getting to the dimmer - when the controller was putting out 10 volts, the dimmer might only see 9. Also, anything that might change the voltage on the control line, such as noise, or power surges from a strobe on another line nearby, could change the brightness.

Digital signals know only two states - on and off. At the controller, we'll send five volts for "on" and zero volts for "off". At the dimmer, we'll say anything above two and a half volts is "on" and anything below is "off." This gives us a "noise margin" of nearly two and a half volts, that is, any noise getting into the cable between the controller and the dimmer has to change the voltage by two and a half volts before it affects what the dimmer sees.

That's fine... we can turn the dimmer on and off digitally. How do we change the brightness?

The secret to making digital stuff work is something the mathematicians call "positional notation." That just means that "where a digit is" is just as important as "what that digit is." You use positional notation all the time, without even thinking about it: you recognize that 30000 is a much bigger number than 00003 - the same digit in a different position.

In our decimal (base ten) numbering system, there are nine digits, 0-9, and each position is ten times as strong as the one to its right. Digital signals use a binary (base two) numbering system. There are only two digits, 0 (off) and 1 (on), and each position (bit) is twice as strong as the one to its right.

DMX-512 uses an 8-bit binary number. That means that for the number sent to each dimmer, there are eight positions, each of which can be either 0 or 1. This means the numbers can range between 00000000 and 11111111. The controller converts each fader position into a number, with 00000000 being the all the way down and 11111111 being all the way up. The dimmer converts the number into a voltage to be sent to the lamp. For a 120-volt system, 00000000 is off, 11111111 is 120 volts. A collection of 8 bits is often called a byte, by the way.

Some controllers display a decimal number between 0 and 255 as a visual indication of the voltage being sent. 255 is just the decimal representation of what the microprocessor sees as 11111111. Remember that each position is twice as strong as the one to its right, so 00000010 is exactly double 00000001. The whole series is

00000001 binary = 1 decimal

00000010 binary = 2 decimal

00000100 binary = 4 decimal

00001000 binary = 8 decimal

00010000 binary = 16 decimal

00100000 binary = 32 decimal

01000000 binary = 64 decimal

10000000 binary = 128 decimal

11111111 binary is then 128+64+32+16+8+4+2+1 = 255 decimal = the biggest number you can represent with 8 bits (one byte).

But it's just a number, not a particular voltage. It's just as easy to use it for a gobo selection, a color selection, or a mirror position for a scanner. And its easier for a microprocessor to remember a number than an analog voltage, which is one of the reasons even inexpensive DMX-512 controllers like the American DJ DMX Operator can have so many memory scenes and chases.

 

Serial Communications

Anyone who's ever used a computer has probably heard the terms "serial communications" and "serial port." DMX-512 is a special way of using serial communications.

Each command from the controller to a device is 8 bits, as I wrote about in part 2. That implies a need for 8 wires, one for each bit, between the controller and a dimmer. To get around that, DMX-512 borrows the idea of serial communications. An IC in the controller (the transmitter) takes the eight bits and sends them out on a single circuit, one at a time. At the dimmer, scanner or other DMX-512 fixture (the receiver), another IC takes the bits in, one at a time, and puts them back together into a byte the device can use.

To make it work, the transmitter and receiver must agree on what will be considered a "1" bit and what will be considered a "0" bit, and how much time each bit will be on the circuit. The DMX-512 specification says a "1" is when pin 3 of the XLR connector is at a voltage more positive than pin 2. It also says the standard time for one bit is 4 microseconds (abbreviated as 4uS) - four millionths of a second. Both the transmitter and receiver are calibrated to know this.

In the PC world, a 56K modem is considered pretty fast. The 56K stands for 56000 bits per second. With each bit occupying only 4 uS, DMX-512 runs at 250,000 bits per second - quite a bit faster.

Then there must be a signal the transmitter can use to tell the receiver when to start looking for bits and a way for the receiver to know when it has received the last bit successfully. Again, they borrowed from some standards used with computers.

The normal state of the circuit, when the transmitter is NOT transmitting, is "1" - pin 3 is more positive than pin 2. This state, in computer parlance, is called"marking", and a "1" bit is called a "mark." A "0" bit, with pin 3 less positive than pin 2, is called a "space." These terms, by the way, hark back to one of Thomas Edison's early inventions: a printing telegraph. Paper tape was pulled through the machine at a controlled speed while a pen, attached to an electromagnet, would literally put marks and spaces on the tape, printing the Morse code dots and dashes.

For DMX-512, an extra bit, called the "start" bit, is sent first. Remember, when the line is idle, it is "marking." For the receiver to know something is going on, it has to see a change, so this "start" bit will always be a "space" or 0. It tells the receiver "get ready, something's coming." The "start" bit is on the circuit for exactly the same time (4 uS) as any normal data bit. It's followed by the actual data bits read right-to-left, or least significant to most significant. If a bit is "0," the transmitter sends a "space" for 4 uS. If it's "1," it sends a "mark."

After being idle, when the receiver sees a "space" for the first time, it moves out of idle and into a waiting mode, usually counting cycles of a crystal oscillator. It counts for six microseconds, then looks at the circuit and takes its state as the right-most bit of the data byte. The 6 uS delay, when each bit is only 4 uS, is because it started at the leading edge of the start bit. 4 uS would get it to the leading edge of the first data bit. The two extra microseconds means it will look at the very center of the data bit. This means that there is a good margin for error. There can be a fairly large difference, over 5%, between the crystal in the transmitter and that in the receiver, without causing errors.

Once it has taken a snapshot of the circuit as the first data bit, it counts 4 uS, then samples the circuit as the second data bit. Four more microseconds to the third, then the fourth and so on, until it has collected all eight data bits.

The transmitter, after it has sent all eight data bits, brings the circuit to the marking or "1" state, signalling the end of the data. The receiver, after having collected eight data bits, waits another 4 microseconds and looks to see if the circuit is indeed at a marking or "1" state. If so, it assumes the eight data bits it collected were valid and passes them on to the microcontroller. The DMX-512 specification calls for this idle time to be at least two bit-times - at least eight microseconds (referred to as "two stop bits") - to make sure the receiver has enough time to hand the data off to the microcontroller before it has to begin receiving another byte.

The whole combination of a "start" bit, eight data bit and two "stop" bits, eleven bits in all, is called a frame.

 

Packets

So, serial communications is how we can get an 8-bit digital number onto a single circuit. We can expand on the concept and put multiple frames on the same line, one right after the other. DMX-512, as the number in the name suggests, allows up to 512 frames to be grouped together on one circuit. Just like a frame, additional information is needed to synchronize the receiver to the transmitter on a group level - so the receiver knows which frame is which. This combination of a group of frames and some synchronization information is called a packet.

I mentioned earlier that the receiver looks at the stop bit to make sure a frame is valid. If the stop bit is a mark, or 1, it's assumed to be a good frame. If the stop bit is a space or 0, it's not a valid frame, but it may be a valid signal. A special case, where the start bit, stop bit and all the data bits are zero, is called a "break." This term also goes all the way back to Thomas Edison's printing telegraph, where a long space, with no marks, could indicate a break in the wire.

DMX-512 uses a "break" of at least 88 microseconds - two full frame times (the original specification was only one frame time, but some receivers had trouble with this) - to say "here comes a new packet." The receiver, though, synchronizes on the leading edge of a start bit - on the transition from mark to space, 1 to 0. Once it has recognized the "break" it needs to see a "mark" again to establish synchronization. DMX-512 calls for this "mark after break" to be at least 8 microseconds - two bit-times (the original specification was only one, but again some receivers had trouble with that). The next space, or 0, on the circuit is taken as the start bit for the first frame in the packet.

Computers start counting at zero. People generally start counting at one. The computer people who designed DMX-512 did something neat and people-friendly: they decided to start the actual data with the second frame in the packet, so the data that people would consider to be "channel one" was in the frame the computer would consider "frame one."

Would frame zero, then, just be a throwaway? No, they said (and this is something they did that showed a lot of foresight), "we'll make room for future expansion. Frame zero will say what the data in the packet will be used for. Right now (this was in 1986) all we've got is dimmers - we'll use packet type 0 for those - but in the future, some of us are going to invent color-changers, moving-light lumieres and other gadgets. We can have up to 255 more packet types to cover those."

The 1990 revision didn't add any packet types, but the 2003 revision is supposed to. When DMX-512/2003 is released, I'll come up with an addendum to detail these additional uses.

To wrap it up, a packet consists of a "break" of at least 88 microseconds, a "mark after break" of at least 8 microseconds, a "packet type" frame, then up to 512 data frames, one for each channel. Then the sequence repeats.

At the receiver, the break causes it to reset a "frame counter" and the "mark after break" sets up synchronization for the individual frames. Frame zero tells it what kind of data is in the rest of the frames. If it's not the right kind of data for a particular receiver, the receiver should ignore the rest of the packet. Until DMX-512/2003 is ratified, that means throw away anything but packet type 0.

The receiver counts the frames it receives and compares the count with its address switches. When the frame count matches the switch settings, it starts actually using the data in the frames.

 

Getting Physical

The hardware - the wires, connectors, and the IC chips for the transmitter and receiver - is called the "physical layer" of a communications protocol. Much of the physical layer for DMX-512 was borrowed from the computer world as well, from an Electronics Industry Association (EIA) standard called RS-485. RS-485 is commonly used in industrial automation because of its high immunity to electrical interference.

A big part of this immunity comes from using differential signals. This means that the signals are transmitted as a voltage difference between two parallel wires, instead of as an absolute voltage with respect to ground. The advantage to this method is that electrical noise and interference than might get ito the cable will, in all likelihood, affect both wires equally - the absolute voltage on each wire will change, but they will both change in the same amount at the same time. As a result, the difference between the two wires will not change. Since the receiver is only looking for this difference, it ignores the noise.

DMX-512 calls for shielded, twisted-pair cable. Twisting the wires together makes it even more likely that any outside interference will affect both wires equally. Then, shielding helps keep outside interference from getting into the wires in the first place.

The cable called for in the DMX-512 specification is a low-capacitance type. This is important because DMX-512 is high-frequency digital signals. A capacitor has capacitive reactance - similar to resistance - that varies with the frequency and with the capacitance: the higher the capacitance, the lower the reactance and the higher the frequency, the lower the reactance. This reactance acts like a resistor across the signal lines, bypassing some of the signal. The lower the capacitance, the higher the reactance, so with low-capacitance cable less of the signal gets bypassed and more gets through to the devices you are trying to control. The longer the cable, the more important this becomes. With proper cabling, a typical DMX-512 transmitter can send valid signals through up to 1000 meters (5/8 mile) of cable reliably.

Standard microphone cable is usually not rated as to capacitance - audio frequencies are not high enough to make it really matter too much. If you wire DMX-512 circuits with microphone cable, you're taking a chance. If the overall cable length from controller to the last device is relatively short, it'll probably work. With longer circuits, more of the signal is soaked-up by the cable. Less will get through to your dimmers, color changers and scanners - it makes your system less immune to noise. Cable designed for DMX-512 costs about the same as high-quality microphone cable, so why take chances?

Cable also has inductance and inductive reactance, and resistance. The combination of a cable's inductive reactance, capacitive reactance and resistance is called its "characteristic impedance." The theory behind it is beyond the scope of this discussion, but a cable's characteristic impedance is independant of its length. A 10-inch piece of Belden 9841 (a recommended type for DMX-512) will have a characteristic impedance of 120 ohms. A 10-mile piece of Belden 9841 will also have a characteristic impedance of 120 ohms.

Characteristic impedance is very important to the behavior of pulses traveling down a cable. Pulses don't like to see changes in the characteristic impedance. When the characteristic impedance changes, it causes a part of the pulse to bounce back up the cable in the direction of the source. If the change is to a lower characteristic impedance, the bounce will usually be of the opposite polarity as the original pulse. If the change is to a higher characteristic impedance, the bounce will usually be of the same polarity.

This is another reason to avoid microphone cables: different manufacturers use cables of differing impedances to manufacture mic. cables - usually whatever is cheapest at the time. A packaged cable from Peavey may have a different characteristic impedance from one made by Shure. A cable made in 1985 may have a different impedance from one made in 1997 by the same manufacturer. At audio frequencies, it's not important. At DMX-512 frequencies, it matters. While they are all generally in a range between 90 and 150 ohms, each change (what the electronics types call a "discontinuity) can create reflections (bounces). While small changes only create small reflections, they add up as you go from your snake to a Peavey cable to a Proco cable to a Shure, each at a slightly different impedance. The small bounces from each change may not be enough, in themselves, to cause problems, but they add up to be a constant noise on your DMX lines that makes them more sensitive to external sources of noise.

Pulses travel through Belden 9841 (and most similar cables) at about 2/3 the speed of light. It's fast, but not instantaneous. Remember that a DMX-512 "bit" is a pulse lasting only 4 microseconds. This means that when the transmitter starts sending the second bit of a frame of data, the leading edge of the first bit has traveled about a half a mile (2596 feet). If the total cable between the transmitter and the open end is 1298 feet, the first bit will bounce and get back to the transmitter just as the second bit is leaving it... some major interference there.

Because pulses can bounce again at the transmitter (and be inverted in the process), the total distance at which "bouncing pulses" can cause problems is considerably less. Experimentally, I've seen problems pop up with a total cable length less than 150 feet. Devices at different distances between the transmitter and the end of the cable will see different combinations of original pulses and bounces, some of which may cause erratic operation and some of which may not.

When a pulse gets to the end of the cable, where does it go? If the cable is open, the pulse hits the end of the cable and bounces back, full force. The transmitter represents a very low characteristic impedance. When a bounced pulse gets back to the transmitter, it gets turned upside down and bounced again.

Here's where cable termination is important: if the cable is terminated properly, the pulse can't tell the difference between the cable's characteristic impedance and the terminator. The terminator looks, to the pulse, like another chunk of cable... that goes on forever. Consequently, pulses don't bounce and your system runs reliably.

A terminator is simply a small resistor (1/4 watt size is common) connected between the two signal leads of the DMX-512 cable. The resistor is selected to be the same value as the cable's characteristic impedance (120 ohms).

Some say you don't have to terminate if the cable is shorter than a certain length. I say it's always a good idea to terminate your DMX-512 cables, regardless of length.

While all this may make it sound like DMX-512 is pretty fragile, the opposite is true. Even with microphone cable, properly terminated DMX-512 is pretty robust. With true DMX-512 cable and proper termination, it's almost "bulletproof."

Repeaters, Buffers and Splitters

Repeaters, buffers and splitters all serve similar purposes. Understanding the similarities and differences will help you undestand when each is needed.

A buffer is an amplifier. It consists of a receiver and transmitter tied back-to-back. What goes in comes back out, just stronger. Buffers are used when you simply need to drive more than 32 receivers from one transmitter in the controller. The controller drives 32 devices - 31 dimmer packs, color changers, scanners or effects, with the receiver in the buffer being number 32. The transmitter in the buffer can then drive another 32 devices.

Buffers are simple (usually just one or two I.C.s) and relatively inexpensive, and good when you have a lot of devices in a small area with relatively short cable runs. The drawback to buffers is that everything that goes in comes back out, including noise and distortion. If your whole system is in a small area, with short cable runs using good DMX-512 cable and proper termination, there won't be a lot of noise or distortion, so a simple buffer is the best choice for expansion on the basis of cost.

A repeater accomplishes the same purpose as a buffer - boosting the signal - but does it a little differently.

DMX-512 is specified for a maximum distance, from the transmitter to the farthest receiver, of one Kilometer (5/8 mile). Over such a long run, the cable can pick up a lot of noise and distortion. A repeater is the best solution for extending cables beyond this one Kilometer limit. Instead of just an amplifier, a repeater includes a microprocessor, some memory and its own clock crystal. The microprocessor runs two routines: one takes the decoded bytes of each packet from the receiver and puts them into memory, the other generates brand new packets from the memory data and sends them out through the transmitter. The brand new packets contain the same information as the received packets, but are free of the noise and distortion.

Each repeater can safely drive the DMX-512 signal through one Kilometer of cable. With good DMX-512 cable and repeaters spaced every 1000 meters, I could control lights in Chicago from my home in Elgin, 36 miles away... it wouldn't be very practical, but it would work.

The biggest drawback to repeaters is the cost- they are quite a bit more expensive than simple buffers. Also, because they typically don't start sending a packet until they have received a complete packet, there's generally a one packet-time (about 1/44th of a second) delay for signals going through a repeater, which may need to be accounted for. For my impractical example, I'd need 58 repeaters between Elgin and Chicago - that's about a 1.3 second delay between moving a fader and the light changing... it would work, but it would be slow.

A splitter is a special case of either a buffer or repeater, having one receiver and two or more transmitters. Let's say you had your control booth set up in the middle of the room- a pretty common arrangement for rock concerts. Besides the lights on stage, you have some movers at the back of the room. It doesn't make sense to run 150 feet of cable to the stage, daisy-chain the lights there, then run another 300 feet of cable from the stage back to the movers. Why can't we use a "Y" connector and just run 150 feet from the control booth to the movers?

Doing so would put two 120-ohm impedances in parallel. Impedances in parallel divide, so the controller, designed to drive a 120 ohm impedance, would see a total impedance of 60 ohms... quite a mismatch. It could overload the transmitter and would reduce the signal strength each receiver would see. The change in impedance could also cause reflections that would appear as noise to the receivers. With a splitter, instead of a "Y" connector, the transmitter would see the splitter's receiver and cable as 120 ohms. One of the splitter's transmitters would see the cable to the stage as 120 ohms and one would see the cable to the movers as 120 ohms.

Splitters are a convenience. You can usually wire-up a system using DMX-512's normal "daisy-chain" configuration - it's just easier, in some circumstances, if you can branch off in two or more directions. Buffer-splitters simply have the transmitters connected directly to the receiver - like having two or more buffers in the same box - and are relatively inexpensive. Repeater-splitters, like repeaters, have a microprocessor, memory and a clock crystal. They are best for long cable runs, but are more expensive than buffer-splitters.

Universes

As mentioned before, the 512 in DMX-512 is the number of control channels the protocol is designed to address. The selection of 512 wasn't completely arbitrary. 512 is a "nice" binary number, easy for microprocessors to handle. And the number of channels determines the refresh rate, i.e.- how often the controller can send out a new packet. The more channels, the bigger the packet, so the longer each device must wait for the next command. With 512 channels, a controller can send out a new packet about 44 times a second, fast enough for almost any system. In 1986, when the protocol was originally written, it was viewed as more than enough channels for even the biggest productions. But productions keep growing and new, complex effects began using multiple channels. It wan't long before 512 channels wasn't enough, and the concept of "universes" was born.

A universe is all the devices that are controlled by one transmitter. To handle more than 512 channels, a large board or computer-based controller simply adds more transmitters, with each transmitter handling a "universe" of up to 512 channels. Selection of the name "universe" was pretty arbitrary - it's more poetic than "circuit" and more dignified than "string" and still conveys the concept fairly well.

The concept of universes can help keep a large system organized even if the total number of channels is less than 512. For example, one universe may be all the stage lights, with the house lights organized as a separate universe. Or the stage lights could be divided into two or more universes for redundancy, so that a fault on one universe won't kill all the lights and stop the show.