You are on page 1of 2


DMX512 | Erwin Rol Software Engineering





Personal Stuff


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.

Site Search Search

Find Me On

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).
1. SPACE for BREAK 2. MARK after BREAK (MAB) 3. Slot Time 4. START bit 5. LEAST SIGNIFICANT Data BIT (LSB) 6. MOST SIGNIFICANT Data BIT (MSB) 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) Open DMX USB Linux Driver Wireshark Pages DMX512 MPC8XX BDM debugging library Nordkapp dmx_usb_module

lowlander @ GitHub

Linux kernel module for Enttec Open DMX dongle

The timing for the signal, as described in the draft DMX-A specification, is shown in the following table.
Designation Description Transmitter Min 1 2 9 10 Bit Rate Bit Time Min. Update time for 513 slots Max. Refresh rate for 513 slots SPACE for BREAK MARK after BREAK (MAB) MARK Time between slots MARK before BREAK (MBB) 245 3.92 92 12 0 0 Typical 250 4 22.7 44 176 Max 255 4.08 < 1.00 < 1.00 < 1.00 Receiver Min 245 3.92 88 8 0 0 Typical 250 4 22.7 44 176 Max 255 4.08 < 1.00 < 1.00 < 1.00 kbits/sec s ms updates/sec s s s s s s


11 BREAK to BREAK time 1204 -

DMX512 | Erwin Rol Software Engineering

1.00 1.00 1196 1.25 1.25 s s s


DMX512 Packet



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