THE ANATOMY OF DMX512
The DMX512 protocol
was first developed in 1986 by the USITT as
a means of controlling dimmers from consoles using a standard digital interface.
DMX512 is not a perfect
solution for systems control, as the current developments by ESTA would seem
to indicate, (I'm eagerly awaiting the "Recommended Practice For Ethernet
Cabling Systems in Entertainment Lighting Applications" and the development
of a TCP/IP based protocol from the Control Protocols Working Group).
However, it's simple
and reliable (providing it is installed and used correctly!) and has proved
itself to be quite flexible, witness the growing list of controlled devices
other than just plain ol' dimmers.
EIA485 (RS485)
DMX512 is designed
around the the Industry Standard EIA485 interface. EIA485 only describes the
"electrical" side of the interface, voltages, currents etc.
The system is based
on balanced transmission down a twisted pair of screened conductors. The cable
used for this should be a proper data cable consisting of 1 or 2 twisted pairs,
foil and braided screens. BALANCED AUDIO CABLE WILL NOT DO.
Normally as with any
network segment the cable should be terminated at both ends, however since the
lighting console is usually at one end of the cable only the other end should
be terminated at the furthest receiver by a 120R resistor. The IEA485 specification
only supports "daisy-chain" networking with up to 32 "unit loads"
on the segment. The segment can be up to 1000m, practically speaking however,
the use of repeaters should be considered long before cable runs get this limit
is reached!
| Pins
viewed from outside |
 |
 |
 |
 |
| Male Input |
Female Output |
DMX512 control lines
connect to equipment using XLR 5 pin (sometimes 3 pin) connectors, female connectors
are fitted to transmitters and male connectors on receivers. The specification
suggests the use of a 2 pair (4 conductor) cable with shield, although only
one pair is required. The second cable pair is reserved for unspecified optional
uses, it should be noted that some dimmers use these lines for fault and status
information.
NOTE:If the dimmers
use this second channel then specially configured splitters and repeaters will
be required.
XLR Connector pin assignments
| Pin |
Wire |
Signal |
| 1 |
Shield |
ground/0V |
| 2 |
Inner Conductor (black) |
Data - |
| 3 |
Inner Conductor (white) |
Data + |
| 4 |
Inner Conductor (green) |
Spare Data - |
| 5 |
Inner Conductor (red) |
Spare Data + |
The safest way to
interface the line to logic levels is to use one of the "standard"
interface IC's, the SN75176B from TEXAS
INSTRUMENTS springs to mind or, for interfacing including isolation the
ISO485P from BURR-BROWN
is a good choice. Using these interface methods presents a nominal 1 unit load
for each device allowing a maximum of 32 receivers to be installed on the segment.
Direct-on-Line interfacing
by connecting a high sensitivity opto-isolator directly across the line is not
recommended, it presents about 5 times the load of a proper receiver thus reducing
the number of receivers that can be installed on the segment. It can also cause
distortion, increasing the error rate and causing EIA485 compliant receivers
to malfunction, all of which is bad news!
BITS 'n' BYTES
Having looked briefly
at the electrical interface lets look at what goes down it.
Data transmission
is based on an 8 bit asynchronous serial protocol with 1 start bit (low), 2
stop bits (high) and no parity. This gives a data "frame" of 11 bits.
Since each bit is 4µs wide it takes 44µs to send a frame. If the line
were to transmit a continuous data stream this would result in a data rate of
250000 bits per second, or 250k baud.
The 8 bit word allows
256 individual levels for each dimmer to be transmitted in the range 0 (Who
turned the lights out?) to 255 (I didn't want my retina anyway!). The data is
transmitted least significant bit first.

Representation of a DMX Frame at a level of '91' decimal
The start and stop
bits are used to synchronize the receiver with the transmitter. The data line
is usually high, in fact it idles in a high state (more on this later). The
arrival of the start bit kicks the receiver into life and the next 8 bits are
scanned and (hopefully) decoded. The receiver then waits for the stop bits after
which it starts the process all over again. The stop bits are required for two
reasons:-
To give the receiver
time to process the incoming data.
2o put the line in
a high state so the next "START" can be detected.
The following two
diagrams illustrate bit levels within a frame containing data '0' and data '255'

Data = '0' |

Data = '255' |
This shows quite nicely
that there is always a level change caused by the start bit which gives the
receiver its frame synchronization.
So far so good but
this isn't the end of the story, DMX512 supports up to 512 dimmers and we've
only looked at 1 so far, so how do we handle data for all the dimmers?
The answer is simple,
just sequentially repeat the process!
OK, that was easy
- but its not quite that simple, we've now got a stream of data on the segment
but no way of telling which frame is for which dimmer. Cue the "DMX Packet"
THE DMX512 "PACKET"
The DMX512 Packet
is the heart of the Standard, it consists of a collection of frames "wrapped
up" with further synchronization information known as a 'Break' and a 'Mark-after-break'.
It is this information that enables a receiver to detect the start of a frame
and hence make some sense of the data it is receiving.
Examination of the
frame timing reveals that the maximum time that the line can be 'low' is 4µs
(Start bit) + (8 x 4µs (Data bits)) = 36µs, however a "Break"
consists of a 'low' of at least 88µs, the difference between these two
is easily detectable and is used for dimmer synchronization.
The "Mark-after-break"
is a 'high' state on the line and is at least 8µs long, the "Mark-after-break"
is required so the end of the "Break" can be detected otherwise the
"Break" would run into the Start bit of a frame and everything would
get very confused! A diagram of the "packet" should help explain things.....
OK, OK, I know I haven't
talked about "Start Codes" and "Inter-frame-times" yet!
The picture wouldn't be complete without them.
The "Start Code"
is a frame (like the others) except that it is the first frame after the break
and is used as a flag to indicate the type of data that follows. A value of
'0' indicates that the following frames contain dimmer level information. The
other 255 codes are not defined in the Specification but some manufacturers
use other codes to send product specific information. A dimmer receiving a non-zero
start code 'should' ignore the rest of the packet, but be careful - it isn't
always checked!
The "Inter-frame-time"
is used to slow down the data rate - some dimmers cannot cope with the data
running flat out, or, more usually to 'pad' the transmission while the console
gets on with some other task. It can have any value from 0 to 1s.
The Specification
sets some limits on the timings as follows:-
Summary of Timings
| |
Min |
Max |
| Break |
88µs |
1s |
| Mark-after-break |
8µs |
1s |
| Inter-frame-time |
0µs |
1s |
It can be seen from
these figures that there is a great deal of flexibility an the data rates, however,
it should be noted that a line state continuously 'high' or 'low' for more than
1s is not legal and should be considered an error condition.
SUMMING UP
Lots of "nasties"
tend to creep into DMX512 systems, mainly through ignorance. As we have seen
already, the system works using terminated 'segments', so what if we want to
split the signal (to colour wheels on an LX Bar for example), Ohms law tells
us that we cannot just split the line because termination mis-matches will result.
It is necessary to
use 'splitters' or 'repeaters', powered devices that 'listen' to the data on
a segment in an approved manner, and then broadcast, or 'repeat' it onto further
segments as required.
These boxes come in
various guises from the basic '1-to-1' signal booster to multi-ported beasts
with opto-isolation and fancy 'remember-this-state if the data line fails' features.
Basically you pays your money and takes your choice!

A Typical DMX512 Network Setup
MY FAMOUS LAST WORDS
Treat your DMX System
with respect, make sure it is properly terminated, uses the correct data cables,
and it will give you years of reliable service.
NEED MORE INFORMATION
Visit my friend Ujjal
Kar DMX site NOW.
There is also a DMX bulletin board for all your questions.