DMX Frame

The basic DMX-512 signal is a 250kbps serial signal, eight bits data, one start bit, two stop bits, and a frame start break traveling on a bus using the RS-485 standard. A frame contains 513 bytes, the first byte indicates the format of the frame.

At the transmitter, the slots are assembled into frames, of up to 513 bytes in length. Each slot is formed of one 8-bit character/byte, sent with 1 start bit, 8 data bits and 2 stop bits. The transmission rate is 250 kbaud, which means each baud corresponds to 4 µS, and one entire slot is 44 µS. A sender can pause between the stop bit of one slot and next start of the next slot.

Frame Synchronisation

A beak character is used in DMX to signal the start of a frame. A break in asynchronous communications is defined to be any period that exceeds the duration of a single character.

Break signal at a data rate of 250 k baud.

In DMX, the break (at the sender) is longer than the minimum, with a duration of 92 µS of continuous low signal. This is followed by a 12 µS high level (Mark After Break) The next low transition indicates the control slot (start code). This longer duration provides more reliable detection of the start of a frame.

At the receiver, the start of a DMX packet is indicated by a break of 88µS, or greater, followed by a Mark After Break, MAB, of 8uS or greater. This break is used by the receiver to start reception of the DMX slots. The MTBF, Mark Time Between Frames can be up to 1 second. The MTBF is set high.

Frame Composition

The frame composition of a DMX Frame is:

  1. BREAK
  2. MARK after BREAK (MAB)
    1. START bit
    2. START CODE 8-bit Value
    3. STOP Bit
    4. STOP bit
  4. MARK time before slot
  5. For count := 1 to n DATA ( Max. 512)
    1. START bit
    2. Slot 8-bit Value
    3. STOP Bit
    4. STOP bit
    5. MARK time between slots

The maximum frame to frame period is between 1240 µS and 1S.

Slot Format

The initial slot (position 0) will contain the start code which will inform the receiver what sort of data is going to follow and what will be controlled. For example lighting equipment will use a start code of zero to control the level of the lighting.

Data are sent as ASCII-encoded hexadecimal codes in little-endian format

In this figure it is possible to see values of data transmitted in the frame that maybe modified. It is possible to modify values for breaks and mark after break to 1355μS. In this case the Break is seen to be 1355μS. The figure illustrates the signal that must be sent for a dimming value of ë85í or the lamp at roughly 33% intensity. A hexadecimal value of 85 converts to 8-bit decimal as 01010101. You can see in figure 15 the signal sent in channel 1 is representive of this pattern. The signal is brought low for a 0 and brought high for 1. Channel 2 contains the dimming data of 0 and so it is not possible to see the MTBS between channel 1 and 2. This is because the binary pattern will be 0 and so a low signal will be transmitted for the data in channel 2. The signal is then brought high again as the microcontroller processes the data channel 3, although relative to the packets this appears a long time it is only around 100 μS.

DMX Frame Rate

Mark After Break ≥ 12 µS

Total frame duration = Mark+Mark_after_break+slot*(n+1)
= 92 + 12 + (44 * 513) µS
= 22676 µS (for full 512 B frame)

Maximum frame rate = 44 frames /sec

Prof. Gorry Fairhurst, School of Engineering, University of Aberdeen, Scotland.