Personal tools
The Open Lighting Project has moved!

We've launched our new site at This wiki will remain and be updated with more technical information.



Revision as of 14:47, 10 February 2007 by Beier (talk | contribs)
Jump to: navigation, search

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".


DMX is based on the balanced serial connection standard EIA-485-A (a.k.a RS485). Only 5-pin XLR and 120 Ohms twisted pair cables meets the DMX standard. One transmitter must be connected to maximum 32 receivers.

The protocol

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:

  • Break
  • Mark After Break (MAB)
  • The "start code" frame (Sometimes called address 0)
  • 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)