Steve's software for DMX-512 theatrical lighting control


DMX-512 is a standard digital protocol for controlling theatrical lighting equipment, including dimmers and moving lights. It uses RS-485 differential signaling and is generally wired using two shielded twisted pairs terminated on a 5-pin XLR connector.

DMX-512 uses async framing, in the style of a traditional UART, at 250Kbps. When it is desired to generate DMX-512 from an industry-standard-architecture PC, a special-purpose interface unit is typicaly used. Some of these are quite expensive.

It is possible to build a low-cost PC to DMX-512 interface, and there are even some free "Open Source Hardware" projects to show the way. A design that has interested me recently uses the FTDI FT232BM USB-to-serial chip. Similar hardware projects that can use identical software are the Open-DMX-USB, the Free-USB-Dmx, and the USB-to-DMX described in Circuit Cellar Ink, issue 170, page 72.

My prototype based on both of these is (or soon will be) described on my hardware page.

Dmx4Linux now includes driver for FTDI-based interfaces

Dmx4Linux is the de-facto standard driver stack for DMX-512 under Linux.

As of Version 2.5, Dmx4Linux now includes my driver for the above-mentioned DMX interfaces built using FTDI chip. I recommend downloading and trying dmx4linux-2.5 before messing with the older version and the patch below.

My Software


My SLight variant [slight-0.98b-sgt.tar.gz]. This is a slightly modified unofficial version of SLight, originaly by Brian Teague. My enhancements include:
  • Fixed a race-condition bug which can cause some channels to stop fading until a "jump" (double-click) to another cue is performed manually.
  • Rework the fade computation to use integer arithmetic only, thus avoiding a cumulative floating-point precision error.
  • Added a crude checkpoint function which saves all cues to a new timestamped file every time a change is made to a show. Fortunately, I've never had a crash that required me to recover using this.
  • Add an ascii dump of patch and cue configuration to the save function. Printing this out on real paper is the ultimate paranoia backup. This version of slight is the only only lighting control interface used in one small performance venue I have worked with.

    My Dmx4Linux driver

    The driver I put together is now included in the latest release of Dmx4Linux, version 2.5. I recommend trying that first.

    Previously, the only way (short of coding your own) to drive DMX out of an ftdi-based interface was using this patch [dmx4linux-2.4-ftdi.patch.gz]. This is a patch for Dmx4Linux version 2.4 that adds a driver for DMX interfaces using the FTDI FT232BM chip. As of November 2004, it supports output only.

    Last modified: Tue Sep 6 23:13:49 EDT 2005