DMX512 is a serial protocol used to control lighting equipment like dimmers. It was developed in 1986 by the USITT and updated in 1990 and 2004. Detailed information on the standard can be found on the PLASA website.

The protocol is very straightforward; basically, it does nothing more than repeatedly sending a block of 512 bytes over a serial RS485 line. These 512 bytes, also called a universe, represent 512 different dimmer or parameter values (for example, color or gobo number). The simplicity of the protocol makes it possible to use small micro controllers to send/receive the DMX signal. One of the hardest things to get right is the bit timing; since DMX uses a 250kbit/sec speed, it is not possible to generate DMX with a standard PC serial port (apart from the speed standard, PC serial ports are RS232 and not RS485)

DMX signal timing

DMX uses a standard 8N2 byte encoding, which means 1 startbit, 8 databits and 2 stopbits. To know when a new block of 512 byte starts, a special reset sequence is transmitted. The Figure below shows how a DMX signal is built up; the gray areas indicate that these bits can be one or zero depending on the user data. (click on the image for a larger version).

DMX timing diagram
  1. SPACE for BREAK
  2. MARK after BREAK (MAB)
  3. Slot Time
  4. START bit
  7. STOP Bit
  8. STOP bit
  9. MARK time between slots
  10. MARK before BREAK (MBB)
  11. BREAK to BREAK time
  12. RESET Sequence (BREAK, MAB, START Code)
  13. DMX512 Packet
  14. START CODE (SLOT 0 Data)
  15. SLOT 1 Data
  16. SLOT n DATA ( Max. 512)

The timing for the signal, as described in the draft DMX-A specification, is shown in the following table.

Designation Description Transmitter Receiver
Min Typical Max Min Typical Max
- Bit Rate 245 250 255 245 250 255 kbits/sec
- Bit Time 3.92 4 4.08 3.92 4 4.08 µs
- Min. Update time for 513 slots - 22.7 - - 22.7 - ms
- Max. Refresh rate for 513 slots - 44 - - 44 - updates/sec
1 SPACE for BREAK 92 176 - 88 176 - µs
2 MARK after BREAK (MAB) 12 - < 1.00 8 - < 1.00 µs
9 MARK Time between slots 0 - < 1.00 0 - < 1.00 s
10 MARK before BREAK (MBB) 0 - < 1.00 0 - < 1.00 s
11 BREAK to BREAK time 1204 - -
1196 - -
13 DMX512 Packet 1204 - -
1196 - -

Apart from the stricter definitions of the electrical signals and the timing of the signal, the DMX-A standard also standardized the use of the START CODE, which normally was always zero. For the exact DMX-A description, one should wait for the release of the standard. Information on the DMX-A standard can be found on the PLASA website.

DMX over Ethernet

Since Ethernet has a number of advantages over standard serial-DMX, such as multiple universes over one cable and better error detection, most lighting manufacturers offer DMX over Ethernet. The major disadvantage is that the equipment of manufacturer A can’t talk to the equipment of manufacturer B, since there is no standard way of transporting DMX over Ethernet. The only manufacturers that made their protocols public are Artistic License ( Art-Net ) and ENTTEC.

The ESTA recognized that problem and is working on a new protocol that should solve this problem. The ACN protocol will be able to do a lot more than plain serial DMX.

DMX and Linux

Most companies simply ignore Open Source and Linux, although the Wholehog 3 is based on Linux, it seems far from Open Source. The problem of software not being available for Linux is normally solved by the Open Source community writing their own; this is what Michael Stickel did for a lot of DMX hardware. His DMX4Linux site has Linux drivers for many different DMX cards and USB-Dongles.