This information is not complete. The purpose is to introduce the protocol and the details of a packet and maybe explain the required timing of the signal. --Beier 06:21, 28 January 2007 (PST)
The last version of the standard is called USITT DMX512-A and it is maintained by ESTA since 1998. In 2004 it was made an ANSI standard too, named "E1.11, USITT DMX512-A" or "ANSI E1.11-2004". In 2008 it was revised  .
DMX is based on the balanced serial connection standard EIA-485-A (a.k.a RS485). Only 5-pin XLR meets the standard (and products may mett the requirement by supplying adapters). Since the revision in 1998 the cables itself are not specified in DMX512-A (so it can be specified in separate standards?), so in general the cable must fulfill the EIA-485 requirements of 120 Ohms (around 250 kHz) shielded twisted pair. One transmitter must be connected to maximum 32 receivers. Other cable types have been examined to determine how well they are for DMX usage (as loose cables or in fixed building installations). The last report more or less concludes that for fixed installations, unshielded twisted pair in CAT 5 is good enough, even when it is mixed with 120 Ohm cable meant for EIA-485. The pulses from reflections and general degradation is not significant and harmless. See the three parts at http://www.esta.org/tsp/working_groups/CP/DMXoverCat5.htm .
To avoid ground loops between equipment and improve reception performance, the transmitters and receivers for the DMX line must use a good combination of transmitter/receiver topologies. Some are not allowed, some are accepted with warning labels and some are preferred. See http://www.usitt.org/standards/DMX512_FAQ.html#FAQ_15 .
Transmitters should use "earth ground" as a reference for the positive/negative voltages that is put on the two data lines. Receivers should be "isolated".
A Universe contains 512 addresses and a single DMX line (cable) can only transmit one universe. I.e. a controller with two universes need two DMX lines (daisy chains including splitters). A uniververse is normally thought of as an address space (in the controller), the cables that transmits it and the equipment that receives it.
- The DMX signal is made up of a sequence - called a packet - which is sent over and over again (to increase robustness).
- It is up to the controller/transmitter to decide how many of the 512 values is sent. Fever addresses means faster cycles.
- A receiver must be set or programmed to an address it listens to. If a receiver listens to multiple addresses, the set one is the first.
- Multiple receiver can listen to the same address - the DMX system does not care.
A packet has the following sequence:
- Mark After Break (MAB)
- The "start code" frame (Sometimes called address 0) Alternate start codes
- 1-512 frames with the values of the channels. The first value is for address "1", the next for address 2 etc.
(Note: A packet must have a minimum length in time)
- A frame contains the value for one address, has one start bit and two stop bits.
- The address number is not sent over the lines, so the receiver must count the values from the start of the sequence to find the wanted value.
- The start code is used to alter the meaning of the data bytes in the rest of the packet. The default is 0, and the remaining 255 values is rarely used (by definition 0 means dimmers, but is used for intelligent light as well).
Sources and additional reading:
Ujjal's DMX512 Pages (down-to-earth walk-through)
ePanorama (thorough descriptions of most details, lots of links)
The anatomy of DMX512 (a nice, short overview)