DMX512
DMX512 is a serial protocol used to control lighting equipment like dimmers.
It was developed in 1986 by the
USITT
and updated in 1990. Detailed information
on the standard can be found on the
USITT pages.
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).
|
- SPACE for BREAK
- MARK after BREAK (MAB)
- Slot Time
- START bit
- LEAST SIGNIFICANT Data BIT (LSB)
- MOST SIGNIFICANT Data BIT (MSB)
- STOP Bit
- STOP bit
- MARK time between slots
- MARK before BREAK (MBB)
- BREAK to BREAK time
- RESET Sequence (BREAK, MAB, START Code)
- DMX512 Packet
- START CODE (SLOT 0 Data)
- SLOT 1 Data
- 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 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 |
- |
- 1.00 |
1196 |
- |
- 1.25 |
µs s |
| 13 |
DMX512 Packet |
1204 |
- |
- 1.00 |
1196 |
- |
- 1.25 |
µs s |
|
|
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
ESTA 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 new
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. The DMX4Linux drivers could easily be used in combination
with
libartnet
to create a PC/Laptop-based Art-Net node.
References
DMX4Linux :
http://llg.cubic.org/dmx4linux/index.html
ESTA homepage :
http://www.esta.org
USITT homepage :
http://www.usitt.org
USITT DMX page :
http://www.usitt.org/DMX/DMX512.htm
|