DMX Projects

This page last updated June 15, 2024

These are various DIY DMX related projects that you may find helpful for your animatronic projects. It includes  USB to DMX adapter, DMX testers, DMX controllers and DMX lights and DMX motor control.

Cheap DIY ENTTEC Open DMX USB

To use DMX to control your equipment you first need a DMX dongle. This typically connects to your PC via USB and gives you a RS-485 DMX output. The DMX signal is sent out via XLR connector (either 3 or 5 pin) or a RJ45 connector. The defacto standard for DMX dongles is the ENTTEC USB Pro. These are pretty much bullet proof, work with pretty much every DMX application and have full isolation (protecting your PC from any transients on the DMX line). However they are quite expensive (over $200 CA).

A cheaper solution is the ENTEC Open DMX USB dongle. It is cheaper (around $90 CA) but you forgo the isolation and it relies on your PC to generate the DMX signal timing rather than the microprocessor in the USB Pro. This make it a less reliable as you can lose DMX data if your PC CPU gets bogged down (or the USB port gets overloaded.

For a production environment it’s not worth the $100 saving that you get with the Open DMX but for a hobby animatronic project you need to save $$$ where you can (so you can buy more servos!!). Lucky for us there is an even cheaper option.

Enttec has released the design  of the ENTTEC Open DMX USB adapter so you can build your own for less than $10 ( less than $4 if you have spare connectors laying around). For more information on the Enttec Open DMX check out: https://www.enttec.com/product/legacy/legacy-products/usb-assembled-widget/

You simply need a USB to RS485 adapter that has the FTDI FT232RL chip and a connector (either a XLR or a RJ45 depending on what your DMX controllers use). You can get suitable adapter from AliExpress like this one: https://www.aliexpress.com/item/4000677447909.html

Here is another adapter that will work:

https://www.waveshare.com/usb-to-rs485.htm

Here is a website with more information on building your own:

https://diyprojects.tech/2013/05/diy-usb-dmx-dongle-interface-for-under-10/

I have used various versions of the “GmM” style adapter board (seems to be made by various suppliers each one a bit different) and have not had any issues although I’m not using anymore that 60 or so DMX channels in my projects. Windows 10 will automatically load the driver for the FT232RL chip and any application that supports the ENTTEC Open adapter will work with your home made adapter. 

DIY DMX Dongle

Here is another site with more information:

https://www.electroschematics.com/usb-to-rs-485-dmx-first-look/

The only time I did have an issue was when I had several USB connected devices (including the Open DMX dongle)  connected to the same USB port (via a USB hub) . I had one application that would freeze randomly. Once I moved the Open DMX dongle to it’s own USB port the issue went away. You may not get the performance of the $200 USB DMX Pro but for $4 you can’t go wrong. It’s also a great way to start paying with DMX control without breaking the bank. There are a lot of DIY Arduino based DMX controller projects waiting for you to try!!! 

DMX Serial Monitor

DMX may seem a bit daunting to start but you will find it very helpful if you want your various props spread out a bit. Rather than than having to string a USB cable to each servo board (or run really long servo cables) you can string a single DMX cable (I use extremely cost effective Cat5e Ethernet patch cables) from your control PC to one controller after another. You can go hundreds (actually thousands) of feet. It does help keep the control cabling manageable on a more complex system.

Certainly having tools to help troubleshoot can save hours and this is even more important if you start making your own controllers. Using some example code from one of the Arduino DMX libraries ( the DmxSniff example from the DMXSerial library) I put together a DMX Monitor. All you need is a Arduino Leonardo or Micro and a RS-485 transceiver chip. You can also use one of the very inexpensive RS-485 modules. 

It simply monitors the DMX signal and displays each channel value in a serial terminal window (I use  Secure CRT or the freeware Putty terminal application). This is very handy for being able to see what is happening on your DMX channels without tying up your expensive DMX dongle.  You can see in the picture below it is displaying all 512 channels and that I have data showing in the first 6 channels.

Simple DMX Tester

For a simple DMX tester you can follow the instructions on Big Clive’s site here:

http://www.bigclive.com/dmxtest.htm

It’s just a bi-colour LED across the DMX data terminals. If you have a data signal then the LED will glow. You will find that if you send all zeros (all channels shut off) then the LED will glow one color. And if you send all ones (all channels set for max value) then it will show the other color. Adding the terminator resistor is up to you as it is not needed for the tester to work. I mounted a red/green LED in a small case and used a length of Cat5 patch cable (I use mostly Cat5 cabling with my DMX projects).


More Complex  DMX Testers

Here are a few links to other DIY DMX testers that you can build:

https://devblog.twisted-artwork.de/building-a-compact-arduino-based-dmx-testing-device/

https://fablab.ruc.dk/diy-dmx-tester-with-arduino/

https://www.instructables.com/Inexpensive-DMX-Tester/


DIY DMX Controllers

These are various DIY DMX controllers that you can build:


An web based (via wired Ethernet) DMX controller:

https://bikerglen.com/blog/dmx-featherwing-light-controller/


An Arduino based controller:

https://medium.com/electronza/arduino-dmx-console-bc392a3f9f3e

DMX Console & Control Software


Using your PC to control DMX devices is a lower cost way to get started and if often very handy for testing. DMXKING has a great list of both ArtNet/sACN and USB DMX dongle based applications including several free ones:

https://dmxking.com/control-software


Some more free DMX applications from Smart Show Lighting:

http://smartshow.lighting/free-dmx-software/

DIY DMX Projects


A DMX controlled 3D printed cats heads with LED eyes:

https://www.instructables.com/DMX-Animatronic-Robot/


Some DMX controlled moving  light projects:

http://mdupont.com/Programming/DMX-Moving-LEDs/

https://github.com/frederikkoopman/Micro-Movinghead


 An in-depth YouTube video on building a DMX controlled stepper motor:

https://youtu.be/RtvbEccsefk


Some good information on building Arduino based DMX projects:

https://tigoe.github.io/DMX-Examples/

https://youtu.be/4PjBBBQB2m4

https://youtu.be/RZ_UWYBOj8M


Nice video on making a USB MIDI to DMX interface:

 https://youtu.be/dqrqfa0cMyE

https://github.com/bassjansson/midi2dmx


A video on making a DMX stepper motor driver and a bit of info on using Touch Designer to make a DMX controller and another one for stepper positional control. You have to be a Patreon member to get the code but most of it is shown in the video:

https://youtu.be/ZyddtHPimsc

https://youtu.be/jH3j5BCFkXY


More DMX controller stepper motor projects. The videos are in German but you can get translated subtitles:

https://youtu.be/YF3XWuiS6fg

https://youtu.be/CKVOyhDU6BQ


Color Kinetics Information


Color Kinetics makes  wide variety of RGB lighting systems  and they are extremely well constructed. You can often find the fixtures quite cheap (without the pricey Color Kinetics controller). While they use DMX to control the fixtures, they use their own proprietary signaling to connect to the fixture to their controllers.  Here is some information on connecting DMX directly to the fixtures:

http://www.danjuliodesigns.com/projects/hacks/ck_hack.html


Color Kinetics also make great outdoor rated pixels (similar to the WS2811 types  but predating them by years) called iColor Flex. Again these are very well constructed. However they use an un-documented protocol for controlling them. I`ve not found any library for using them but here is some information on the protocol used:

https://bikerglen.com/blog/reverse-engineering-the-icolor-flex-protocol/

 

DMX Hints & Notes

Some possibly helpful DMX notes…..

Cabling

Often people use microphone cabling (with XLR connectors) as it is cheaper than the spec’d out DMX cabling but this can lead to problems as the cable impedance is not correct. It may work for short runs but you may have issues with longer ones.

I used Cat5 patch cables for my cabling as they are the correct impedance and very easy (and cheap) to source. Many DIY DMX controllers have RJ45 connectors and you are starting to see them on commercial products. I have added RJ-45 jacks to some of my legacy DMX equipment (smoke machines and strobe lights) to allow for using Cat5 patch cables without having to use adapters.

Termination

Make sure you use a termination resistor (simply a 120 Ohm resistor across the DMX signal wires) at the end of your cable run. Very often everything will be fine without a terminator. Until it isn’t. Get in the habit of always using a terminator.

Many DMX controllers have a selectable terminator (often a jumper on the PCB or a switch on the device). Make sure all the terminators are disabled except on your last controller. Too many terminators enabled also causes problems.

Controller Signal Indicators 

Most DMX controllers have a flashing LED or some sort of indicator showing that they are receiving a DMX signal. Make sure you know where this is on each controller you have so that you can quickly confirm which devices are and which are not getting a DMX signal. This can save lots of time when trying to figure out where the signal path is broken.

Information Tracking

It is well worth your time to document all the various DMX channel assignments and universes, controller ports and any other relevant data (min/max servo range, light color, controller settings, etc) as this get all get very confusing as your show grows (or simply as time passes and you can recall how you set things up). I use a spreadsheet to  list it all. If using VSA then include a seperate column for it’s channel data as it is one less than the matching DMX channel assignment (it gets confusing converting back and forth).