Your Arduino becomes a OpenDmx USB interface


All this just works with an old arduino board, since the UNO there is a different chip used :(

This short tutorial explains how to use the Arduino as a USB to DMX interface for software that works with OpenDmx. This USB to DMX interface enabled you to use your PC as a DMX master device to control DMX slave devices.

  • DMX (Digital MultipleXed) is an agreement over the connection between lighting controllers, dimmers, scrollers, scanners, etc. With DMX you can control 512 channels.

  • OpenDmx is a Open Source project to produce a low cost USB to DMX interface with a GPL license.


The OpenDmx USB circuit simply consists of a USB to serial converter (FT232BM) and a driver block (max485). This circuit takes care of transforming your signal from USB to Serial and from Serial (RS 232) to DMX (RS485) but it does not care about what are you sending (transmitting). The signal itself has to be produced by your PC. The PC has to take care of timing and order of the signal. This kind of devices is called "unbuffered", because the USB to DMX device is not storing or buffing anything, if your computer hang-up, your signal gets also jam.

  • FT232BM chip is a USB to Serial converter produced by FTDI.

  • The Driver Block (max485 or SN75176) Outputs the 3 Pins are needed for sending DMX (DMX-Pin1 � Reference (GND); DMX-Pin2 � Signal inversion (cold); DMX-Pin3 � Signal (hot)). Furthermore is the Driver Block taking care of changing the Arduino signal Voltage (0V / 5V, according to RS232) into the DMX signal Voltage (-2,5V / +2,5V, according to RS485).


The Arduino is using the same USB to Serial converter like the OpenDmx USB device. The only thing we have to add is the driver block (max485). We just have to wire up a driver block (as you can see in the following schematic) and connect the Driver Block Input (DI) to the RX Input (output of the USB chip) at the Arduino. That's it. Just install the driver for the OpenDmx USB interface, for example from enttec ( http://www.enttec.com/index.php?menu=downloads&prod=70303&show=downloads ) and get some software or write your own programm.

Here are some links where you can find some software and building examples:

a good one for linux

(edited by tomek ness (k3/fhp))

Share