Artnet to DMX Converter
Artnet to DMX Converter
Being passionate about lighting, I’ve consistently found the idea of controlling and automating light shows through software intriguing. Unfortunately, DMX controllers and software often come with high costs, and the more affordable options typically offer limited functionality. This project originated from my desire to create a more accessible and budget-friendly solution for automating and coordinating impressive lighting effects.
The Artnet to DMX Converter is able to seamlessly convert incoming Artnet packets into a DMX signal, which lighting equipment can understand. Artnet is a widely adopted protocol in many lighting software applications, and is easy to implement in custom solutions. The Artnet to DMX converter has a configuration mode, which can be activated by pressing the button upon power on, which allows the user to set the units IP and MAC addresses.
Currently, this project is limited to converting up to 128 channels, which is less than one DMX universe (500 channels) due memory limitations in the microcontroller. A future revision can be made to increase the number of channels, and possibly increase the number of universes the Artnet to DXM converter can output.
How It Works
At a high level, the Artnet to DMX Converter receives Artnet packets connect and outputs a DMX signal. The heart of the project is an Arduino Nano microcontroller. The Ethernet interface is a Wiznet W5500, which communicates with the Arduino over SPI. To convert the DMX output to a RS485 differential signal, a MAX485 IC is used. Three were wired in parallel to provide separated, buffered DMX outputs. A momentary pushbutton is used to set the unit into configuration mode, and a RGB status LED lets the user know what mode the unit is in. A +6V DC power supply is used, and the Arduinos on-board voltage regulator supplies the W5500 with +3.3V.
At a physical layer, DMX uses a RS-485 differential signal. The Arduino outputs a single ended DMX signal, which is converted to a differential DMX signal using a MAX485 transceiver.
Artnet is an efficient, low overhead UDP based backet structure that allows DMX lighting data to be transported over an ethernet network. Artnet packets can be generated from various lighting software including Resolume Arena my custom LaserDMX software. An example of an Artnet packet generated by my LaserDMX software was captured in Wireshark, shown below.
Schematic and Layout
The schematic and layout were designed in Kicad. The board size, shape, and component locations were designed to fit the enclosure.
Assembly
To house all of the components I used a Hammond enclosure box. Holes were drilled out for the three DMX connectors using a step drill bit. Slots were dremeled out of the side of the enclosure to provide access to the barrel jack connector and ethernet port. Holes for the configuration button and status LED were drilled later on as the project was updated to support configuration mode.
The PCB was designed to mount the W5500 ethernet module onto it using some nuts and bolts for a solid connection onto it, so pulling an attached ethernet cable will not damaged the board. The entire PCB was also designed to screw into the holes built into the enclosure. Over all, the build is pretty rugged and feels solid.
Software
Software was written in the Arduino IDE, and is based on the two following libraries: Artnet and DMXSimple. The Artnet library handles the reception of Artnet packets. Upon the reception of an Artnet DMX frame, the DMXSimple library sends out DMX data through the Arduino digital pin. Due to the memory limitations of the microcontroller, the buffer sizes for the Artnet receive buffer, and DMX output buffer had to be adjusted from 512 to 128. The code is available on my Github.
The only configuration required are the IP and MAC addresses. I have not tested the limits on how many DMX channels without lag, but I am only using about 30 channels without any issue. The IP and MAC address were originally hard-coded into memory, but the project was updated to be able to put the device into ‘configuration mode’. In this mode, instead of receiving Artnet packets and converting to DMX, it acts as a configuration management web server, allowing for a simple configuration interface to be used in a web browser. I have another blog post with more information here.
Demo
References
- https://art-net.org.uk/
- https://en.wikipedia.org/wiki/DMX512