Learn More about DMX

Digital 1 DJ's forum for the PCDJ DMX intelligent lighting control software.

Moderator: online4u

Learn More about DMX

Postby Dj Fist » Sun Sep 16, 2007 6:21 pm

I thought I would start a thread with information on DMX protocol. This will help you more understand what it is and while you might not believe it but it will help you more in programming your shows.

Please feel free to add anything that is not here. Joe and Dan can help a ton and add more here hopefully.

Dj Fist
PCDJ Aficionado
Posts: 2570
Joined: Tue May 18, 2004 3:51 am

Postby Dj Fist » Sun Sep 16, 2007 6:24 pm

DMX512-A is an RS-485 based communications protocol that is most commonly used to control stage lighting and effects.

Developed by the Engineering Commission of USITT, the standard started in 1986, with subsequent revisions in 1990 leading to USITT DMX512/1990. In 1998 ESTA began a revision process to develop the standard as an ANSI standard, including a Public Review process. The revised standard, known officially as "Entertainment Technology — USITT DMX512–A — Asynchronous Serial Digital Data Transmission Standard for Controlling Lighting Equipment and Accessories", was approved by ANSI in November 2004. This current standard is also known as "E1.11, USITT DMX512–A", or just "DMX512-A", and is maintained by ESTA.

DMX512 was originally intended as a 'lowest common denominator' protocol for use between interfaces supporting proprietary protocols. However, it soon became the primary method for not only linking controllers and dimmers, but also linking more advanced fixtures and special effects devices such as fog machines and moving lights. DMX512 is unidirectional and does not include automatic error checking and correction, so it is not safe to use for applications involving life safety, such as controlling pyrotechnics. MIDI is sometimes used for this task.

A DMX512 controller is connected to fixtures or devices in a multi-drop bus topology commonly called a "daisy chain". Each device has a DMX512 in and generally a DMX512 out connector - sometimes marked as DMX512 thru. The DMX512 out on the controller is linked via a DMX512 cable to the DMX512 in on the first fixture. A second cable then links the DMX512 out on the first fixture to the next device, and so on. In general, the final, empty, DMX512 out connector should have a DMX512 terminating plug attached into it, which is simply a resistor that matches the impedance of the cabling used (usually 120 ohms) joining pins 2 and 3 of the connector. Many modern devices negate this requirement as they are capable of auto-terminating the link.

The connectors themselves must be five-pin XLR, although only three pins of the five are always used. Some manufacturers have used three-pin XLR connectors, in violation of the Standard, although the trend in professional equipment is towards compliance with DMX512-A. DMX512-A prohibits use of any connector other than a 5-pin XLR unless there is not physical space on the device for that connector, in which case an adaptor must be supplied.

Cabling for DMX512 was removed from the Standard and made a separate standards project in 2004. Two Cabling standards have been developed, one for Portable DMX512 cables and one for Permanent installations. This resolved previous issues arising from the differing needs of cables used in touring shows vs. cables used for permanent infrastructure. In addition, cable performance is now specified with regard to nominal impedance and capacitance to provide guidance as to what constitutes an acceptable cable. Microphone and line level audio cables do not have the correct characteristics, and should never be used for DMX512. The significantly lower nominal impedance and significantly higher capacitance of these cables distort the DMX512 data which can cause irregular operation or intermittent errors that are difficult to identify and correct.

Data Plus (pin 3) and Data Minus (pin 2) are reversed compared to sound cables, and the signal travels in the opposite direction to the pins (female is out, male is in). The pin layout from DMX512-A is :
1. Data Link Common
2. Data 1- (Primary Data Link)
3. Data 1+ (Primary Data Link)
4. Data 2- (Secondary Data Link)
5. Data 2+ (Secondary Data Link)

Despite the convention, devices from some manufacturers swap the polarity of pins 2 and 3, requiring the use of a crossover cable or adaptor.

Each DMX512 data link transmits a start code that identifies the data type and up to 512 eight-bit values, between 0 and 255, so one cable typically controls 512 dimmers or device attributes. Because DMX supports only 512 channels per data link, multiple DMX universes can be used in situations where more than 512 control channels are needed. A Universe refers to a DMX512 data link from the console, and all of the devices on that data link. Many newer lighting consoles support multiple DMX universes, which must be cabled independently. Sometimes this is done intentionally to partition the control into units, for example dimmers and moving lights might be on separate data links even though neither link uses all 512 data slots.

DMX512 data are sent using RS-485 voltage levels and cabling practices. The DMX specification refers the reader to RS-485 for information about the electrical signal. Data are transmitted serially at 250 kbit/s and is grouped into packets of up to 513 bytes, called 'slots' in DMX512-A. Data are sent with 1 start bit and 2 stop bits, LSB first. The start of a packet is signified by a break of at least 88 uS, extended from 44 uS in the 1986 standard, and when receivers detect the break they reset their receiving code. Then up to 513 bytes are sent. The first byte is always the "Start code" byte. This tells receivers which kinds of data are being sent. For normal dimmer/level data, a start code of zero is used. Other start codes are used for Text packets or the System Information Packet (SIP), proprietary systems, or for the RDM extension to DMX.

The remaining bytes make up the actual level data. Up to 512 bytes can be sent, and it is the job of the receiver to count the bytes to keep track of the channels. As there is no error detection or correction in DMX, it is vitally important for receivers not to miss bytes, and to discard packets if framing or buffer overflow errors are detected.

A full packet takes approximately 23 mS to send, corresponding to a refresh rate of about 44 Hz. For higher refresh rates, fewer channels can be sent. This is accomplished by simply starting a new packet before all 512 channels have been sent. The minimum packet length is equivalent to 24 channels. Most transmitters send all 512 channels though, as many receivers have trouble with shorter packets.

Conventional dimmer packs or racks use a group of slots to determine the levels for their dimmers. Typically a dimmer has a starting address that represents the lowest numbered dimmer in that pack, and it continues up from there to the highest numbered dimmer, e.g. for 2 packs of six dimmers each, the first pack would start at address 1 and the second pack at address 7. Each slot in the DMX512 packet corresponds to 1 dimmer. Some dimmers use profiles to interpret the level being received. A linear profile means the output directly corresponds to the received DMX512 level, but other profiles behave differently. A Preheat profile might keep the dimmer at a level of 5% until the received DMX512 level exceeds 5%, and respond linearly after that.

Moving lights use adjacent DMX512 channels to control different aspects of their behaviour. These attributes may, for example, be laid out as:
1. Intensity
2. Colour
3. Gobo
4. Pan
5. Tilt

The gobo channel may allow groups of values to select gobos, i.e. 0-20 No gobo, 21-40 Gobo 1, 41-60 Gobo 2 etc. It may even allow for gobo rotation, i.e. 21-25 Gobo 1 (No rotation), 26-40 Gobo 1 (Slow - Fast rotation). If there are multiple fixtures that require separate control the starting DMX512 address of each fixture can be set so that there is no overlap. If the DMX512 address of the first fixture is 1 and the DMX512 address of the second fixture is 6 then the situation would be thus:
DMX Address Fixture Attribute
1 1 Intensity
2 1 Colour
3 1 Gobo
6 2 Intensity
7 2 Colour

Modern DMX512 controllers have libraries of data about fixtures telling them how to map attributes to DMX512 channels. The controller could then have separate ways of selecting gobos and gobo rotation, even though on a particular fixture they are controlled by a single DMX512 channel. The operator is presented with a single consistent control method for controlling lights which require very different DMX512 values to achieve the same effect. The controller will also work out the correct addresses for the fixtures. If 512 channels will not suffice then a desk with multiple DMX512 outputs is required. Each output handles a separate 512 channel 'universe', allowing many more fixtures to be controlled.

The DMX512 output is designed to feed 32 'units' of load. A single fixture may represent a fraction of a unit of load, however the cabling in between the fixtures can degrade the signal significantly, particularly if it is very long. To deal with this, and cable management issues, DMX512 buffers are often used. These have one DMX512 in but many DMX512 outs, all feeding identical data. Each output from the DMX512 buffer can feed 32 units, so by using DMX512 buffers it is possible to split the signal from a controller to hundreds of fixtures.

It is not recommended to split a DMX512 signal by "Y"ing an output into two inputs. This can cause termination and reflection problems. Any signal arriving at the Y point will be partially reflected and depending on the final termination resistances either there will be reflections from the cable ends or the steady state resistance seen by the controller will be incorrect.

Dj Fist
PCDJ Aficionado
Posts: 2570
Joined: Tue May 18, 2004 3:51 am

Postby Dj Fist » Sun Sep 16, 2007 6:25 pm

DMX512's popularity is partly due to its robustness. The cable can be abused without any loss of function in ways that would render Ethernet or other high speed data cables useless. Many people do not use the terminating plugs as without them a break in the Data Plus (Pin 3) or Data Minus (Pin 2) cable may not affect the operation of the fixtures. Strange behaviour of the fixtures is usually due to incorrect addressing, cable faults, or the wrong data from the controller. Cable faults can occasionally give very surreal intermittent problems such as fixtures twitching.

The two Secondary Data Link pins on the five-pin connectors were originally intended for sending a second Universe of data, however many other uses have been implemented, and the general practice is now to send additional Universes on separate data links. Some manufacturers made units with 3 pin connectors, because the original standard did not specifically disallow it. DMX512-A specifies that the connector is to be a 5-pin XLR connector and cannot be any other kind of XLR connector. There is good reason for this rule. 3-pin XLR is microphone cable, which can be connected to a sound board. If an electronic piece of equipment, for example a moving light was accidentally connected to a sound board with phantom power on, the 48 volts of phantom power sent along the cable would fry the circuitry inside the light, necessitating the expensive repair or replacement of the light. However, some companies used the extra pins to carry (usually 24 VDC) power anyway, which would again destroy any equipment which used those pins to carry data. DMX512-A forbids using the extra pins to send power, or any other use that does not comply with RS-485 signal levels, for the these reasons.

If a single DMX512 channel is used to control pan on a Martin Mac 500, which has 440° of pan, then an increase of 1 would result in a movement of 1.7°. (This is found by dividing 440 by 256) Over a long throw (distance between the fixture and the projection surface) this amount of movement can result in a significant movement of the beam. To control position more accurately, MACs and other fixtures use 2 channels each for pan and tilt. This gives a 16-bit value between 0 and 65535 for each movement axis.

Using these types of devices on older lighting controllers would result in two adjacent channel controls being used to adjust a single movement axis. One would be referred to as the coarse and the other as fine, indicating the relative amount of movement control each channel provided. The coarse channel would allow values in multiples of 256, such as 0, 256, 512, 1024, all the way up to 65280. The fine channel allows the addressing of all in between values, by adding between 1 and 255 to the value obtained by the coarse channel. Thus the fixture's movement can be controlled more accurately.

Recently, wireless DMX512 adapters have become popular, especially in architectural lighting installations where cable lengths can be prohibitively long. While wired RS-485 signals can be effectively received over distances of 3000 feet or more under ideal conditions, most companies limit their maximum run to 1000 or 1500 feet. Wireless DMX512 generally uses WLAN technology to transfer the DMX512 data, with strategically placed converters bridging the signal back to wired links.

Dj Fist
PCDJ Aficionado
Posts: 2570
Joined: Tue May 18, 2004 3:51 am

Return to PCDJ DMX

Who is online

Users browsing this forum: No registered users and 1 guest