Looking Toward Christmas Decor By Learning About DMX

So Halloween finally arrived, we hope you had enough time to pull off your frightening feats in the way you had originally envisioned. Now it’s time again to look to the future and start planning this year’s Christmas decorations. Lights are always a popular theme, and this year you might want to look into DMX lighting controls and decide if that’s a route you want to take. [Akiba] has your back, he just put together a set of videos explaining the DMX lighting protocol and how to use it with an Arduino.

The thought here is that the Arduino can be used as a sort of DMX hub that is connected directly to a computer running open source controller hardware. It can send commands which the Arduino decodes, deciding whether to just pass them on to DMX compatible devices, or to do what it does best and control other hardware that is not normally accessible through the lighting command protocol. To the control program your four-dollar strand of LED lights looks no different from a thousand dollar stage light, making it cheap and easy to build your own entertaining holiday show right in your front yard. See the second video in this series after the break where [Akibo] details the hardware setup for his system. The other parts are available at the link above.

Be careful, this can be a consuming endeavor. Don’t believe us? Just look around and you’ll find no shortage of large DMX builds just for Christmas lights.


8 thoughts on “Looking Toward Christmas Decor By Learning About DMX

  1. Oddly enough, I spent today doing just the same thing – built a DMX Smoke Machine controller for 4 smoke machines by investigating the remote control port on each. Now I have four $100 smoke machines controllable from 400m away :) P.S. If anyone’s trying to build a “control panel” style interface for a DMX rig, Q Light Controller is quite a nice program for it. I intend to be making DMX Projector Shutters / Controllers (DMX-> Custom RS232) and dimmers soon. For DMX ideas, check out Doug Fleenor Designs

  2. Cool.

    A couple things to consider:
    1) In the first video the author says DMX always sends 512 channels in each frame. In fact, it could be any number of channels up to 512, as long as the frame breaks are at least 1204 μs apart (according to wikipedia… I’m too lazy to get out my copy of the specification right now).
    2) For reference, DMX is usually transmitted over RS485 (not over USB), though it is transmitted across tons of different hardware layers.

    Also worth looking at for people who are interested with playing around with DMX:

    (open hardware for sending/receiving dmx)

    (software for sending/receiving dmx)

  3. i made a dmx system with arduino recently,

    3 channels of pwm with p-channel mosfets and 3 channels of 240vac relays.

    dmx start adresss selection via dip switch.

    cat5 rather than 5pin xlrs for dmx connectivity.

    i made a total of 5 modules, two with relays, 3 without,

    it is controled with a profesional pc based dmx system called lightfactory. but i tested it with a few cheap dmx desks too.

    all working nicely but i do have problems with the lights flashing when they recieve rubbish dmx values, i think i need to check that my code is properly detecting the Break and Start code.

    i promise i’ll get around to putting it on my website one day…. i designed the sheild pcb in fritzing.

  4. IMHO DMX is just serial communication with a weird baud rate over RS485 :-)

    I made my own controller card by hacking a serial PCI card. Change the crystal and put RS485 drivers on it and your done. Works great with my pro DMX gear.

    Just make sure you use decent cables and have termination on the DMX chain.

    1. That’s because DMX *is* just serial communication with a weird baud rate over RS485 :) The Enttec OpenDMX USB dongle, for example, which was very popular a few years back, is basically an FTDI USB->RS232 chip plugged into a MAX485. The great advantage of that is that you can then use the same controller to talk ModBus, ProfiBus, anything else that uses RS485 (which is a whole lot of industrial control & automation gear).

  5. Break typically can be triggered with simply causing a framing error in receiving ends. With trial and error one could find the most suitable bit pattern to send fooling end devices to create Framing Error Interrupt or similar in the code running inside the lamp. This eliminates need to spend lot’s of energy to pull TX+ TX- signals together with battery powered system, or within an energy harvesting design.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.