DMX-ArtNet explorations

Exploring lighting control with DMX/Art-Net, including teensy, rPi, feather ESP32, led strips and COTS lights

Public Chat
Similar projects worth following
This project is a notes-to-selves (iandI) about the various aspects of controlling lots of LED lights using network protocols such as DMX, Art-Net, sACN/E1.33, king-net etc. I;m covering types of led lights, led strip drivers, network control protocols ( DMX/Art-Net/sACN/KingNet), hardware wiring, COTS/DIY Controllers (Teensy, ESP32, rPi etc) , with a few wisdoms and jokes dropped in..

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

Jordon Monson wrote this nice article on "LED Tape and PixelMapping".  Shabaz's article on  Element14 has a detailed look at the DMX512 protocol, including oscilloscope traces!

Rough TOC of sections below

  • Control Protocols
    • DMX
    • Art-Net
    • sACN
    • King-net
  • 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

Basic DMX

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 »

View all 13 components

  • Teensy DMX & Pixelmapping

    Jerry Isdale05/23/2021 at 11:14 0 comments

    Teensy DMX Listener/NeoPixel controller

    Next step with Teensy DMX will be coding up a demo that uses the TeensyDMX library to respond to both the SIP (acronym meaning) and NullCode = channel data for up to 512 channels (512/3 or 512/4 pixels).  The SIP side could be done using an SIPResponder as defined in one of TeensyDMX examples.  The other would unpack the 512 channels into N pixels on M strands attached to the OctoWS2811.

    A lil bit of code taken from forum.pjrc on TeensyLC with ArtNet
    sets channel Buffer to data input, then copies for number of leds
    using idx*3 +1 +2  (+3 for rgbw)

          channelBuffer[bufferIndex] = byte(data[i]);

      // send to leds
      for (int i = 0; i < NUM_LEDS; i++)
             leds[i] = CRGB(channelBuffer[(i) * 3], channelBuffer[(i * 3) + 1], channelBuffer[(i * 3) + 2]);

    Might need to define a DMX_Strip that encapsulates (strip Pin, NeoStrip object, LengthInPixels, Type (RGB/RGBW/GBR... perhaps  using NeoPixel defines?))

    Pixel Mapping
    Then comes the question of "How Do You Program Pixel Patterns with DMX"?,  the answer being  a whole class of fancy apps called "Pixel Mapping"  There are a number of ways to do this, using very different applications.

      The tool I've used so far DMXControl3 apparently supports "Matrix" fixtures. Unfortunately the documentation on DMXControl3 is pathetically thin - at least as far as I've found on the website/wiki so far. There are a few YouTube videos that walk thru pixelmapping and other uses.  Thats a bit of learning curve to climb/cliff to scale.

    TouchDesigner is another tool with which I'm familiar for creating multimedia shows. I've used it for some test projects and find it quite intriguing. A mix of visual coding and Python.  There are several tutorial videos on how to connect it up to a DMX/artnet system and some dmx led controllers for pixelmapping.

    as of 23May2021 though, I'm going to have to put this part on hold and look at some other aspects - like how to get a raspberry Pi on artNet. 

View project log

Enjoy this project?



Does this project spark your interest?

Become a member to follow this project and never miss any updates