This project is a notes-to-selves (myself and others) about the various aspects of controlling lots of LED lights using network protocols such as DMX, Art-Net, sACN/E1.33, king-net etc. Generally this would be considered Lighting/Effects Show Control, where "Show" is a theatrical, or architectural setup of lighting and other devices (fog machines, etc.)
Rough TOC of sections below
- Control Protocols
- Control Programs (Show controls)
- Light types
- COTS fixtures
- analog strips (single color, rgb)
- ws8211/12 family (aka neopixel, etc)
- apa102 and newer
- My Test Rig
DMX (Digiital MultipleX aka DMX512, EIA E1.11, original: 1986, latest 2018) is a standard for serial communications networks to control theatrical, architectural lighting and effects (fog, flames, etc). It is officially known as "ANSI E1.11 - 2008 (R2018)<p>Entertainment Technology -- USITT DMX512-A, Asynchronous Serial Digital Data Transmission Standard for Controlling Lighting Equipment and Accessories". Scroll down on the TSP document page to E1.11 to find link to PDF.
A single DMX network (aka "universe") can control a up to 512 channels on up to 32 daisy chained 'fixtures'. Fixtures may have multiple channels (colors, motion axis, etc.), each of which consumes one of the 512 available. Individually addressed RGB strips and matrices take 3 channels for each pixel, and can easily consume whole universes. Additional Fixtures beyond the limit of 32 can be added by using DMX Repeater. The last Fixture in a DMX daisy chain should have a 120 Ohm termination resistor.
DMX uses a fairly simple serial oneToMany unidirectional protocol that runs over an RS485 (aka EIA-485, TIA-485) standard differential signals daisy chain network. configuration. The same 485 standard is used by many different industrial systems. They are likely NOT compatible. The 485 standard allows voltages from -7vdc to +12vdc, while the DMX standard specifies a maxiimum of +6 volts between signal and Common. As a Differential Voltage Standard, a pair of lines are used to carry the signal with opposite voltages, thus the voltage between Data+ and Data- ranges from -6vdc to +6vdc.
Receiver electronics may or may not be Isolated from the network. Computer systems will likely need additional hardware to transmit/receive 485 signals, in particular performing voltage regulation/isolation. Devices like the MAX485 are often used with optoisolators. (see isolated vs non-isolated portions of standard)
The DMX Standard specifies 2 pairs of data lines (Data1, Data2), with impmentation of Data2 being optional. An XLR5 (5pin) connector is specified, but concession is made by the standard forCat5 cable using RJ45 (aka IEC 60603-7 8-position modular connectors).
CAUTION: while the CAT5/RJ45 cables are identical to conventional Ethernet cables, you can NOT mix the networks. Connecting a DMX Cat5/RJ45 cable to an Ethernet Hub (or computer) may permently damge the equipment. This gets a bit worse in my test system where I use the PJRC OctoWS2811 board with 2 RJ45 connections to drive 8 LED strips. 3 very different networks using the same Cat5/RJ45 cables!
ALSO NOTE: while the standard specifically prohibits any other XLR connectors, XLR3 (3pin) is often used on fixtures and controllers. I have yet to see devices with XLR5 connetctions. XLR3 is also used as audio (microphone) cables. Mixing Audio and DMX signals can damage both systems badly.
DMX Serial Data Packets
The serial protocol used by DMX is fairly simple 512 byte packet. A StartCode byte is followed by up to 512 other bytes called "slots" or "channels". A zero value (aka NULL) StartCode byte indicates a default DMX frame, in which subsequent bytes...Read more »