«

»

Mar 07 2011

Print this Post

DIY DMX Steuerung mit ArduinoDIY DMX Controller using Arduino

Arduino, ein einfacher RS485 Treiber IC und ein Widerstand sind alles was man benötigt um einen billigen DMX Lichtkontroller zu bauen und man bekommt auch noch eine voll funktionsfähige Software gratis dazu.

Als Erstes bauen wir den DMX Kontroller, ich hab mich entschieden dafür ein Arduino ProtoShield zu verwenden. Das Design basiert auf der Arbeit von Tom Kness. Einfach nachbauen und den “Input” mit D0/RX auf dem Arduino verbinden. Ich hab mcih für einen Jumper entschieden, damit ich leicht zwischen D0 (damit wird aus dem Arduino ein OpenDMX Interface) und D3 – ist der Standardport für die DMX Simple Bibliothek – wechseln kann.

Als nächstes benötigen wir eine Lichtsteuer-Software und das bitte gratis. Q Light Commander ist gratis und Open Source und für Mac OS X / Windows und Linux verfügbar.

Das Wichtigste ist allerdings, dass vor dem Start der Software der FTDI USB Treiber (wird vom Arduino IDE mit installiert) beendet wird!

Prüfen ob der Treiber geladen ist:

1
$ sudo kextstat | grep FTDI

Treiber beenden:

1
sudo kextunload /System/Library/Extensions/FTDIUSBSerialDriver.kext

Treiber wieder laden:

1
sudo kextload /System/Library/Extensions/FTDIUSBSerialDriver.kext

Arduino, a simple RS485 driver, one resistor is all you need to get build your own cheap DMX light controller and get a full featured controlling software for free.

First you have to build your DMX controller, i’ve chosen to build it on a ArduinoProto Shield. It’s based on the design by Tom Kness. Just connect the “input” to D0/RX on your Arduino Board. I used a jumper to switch between D0/RX (for Arduino as a OpenDMX Interface) and D3 which is the default Output for the DMX Simple library

The next thing we need is a free Software to control the lights. I use Q Light Commander which is available for Mac OS X / Linux and Windows.

The most important thing is to unload the FTDI USB drivers (which you probably use for Arduino development because they get preinstalled with the Arduino IDE)!

check if the drivers are loaded:

1
$ sudo kextstat | grep FTDI

unload them

1
sudo kextunload /System/Library/Extensions/FTDIUSBSerialDriver.kext

load them again

1
sudo kextload /System/Library/Extensions/FTDIUSBSerialDriver.kext

7 comments

Skip to comment form

  1. Willi Bromenne

    Hallo,
    ich habe mir vor kurzem ein Arduino Uno bestellt (hoffe das kommt bald mal an ;-)) und möchte mir daraus auch ein USB-DMX Interface bauen. Nun habe ich noch ein paar fragen.
    Auf welchem Arduino-Board wurde das Inferface getestet, also läuft das auch auf dem Uno-Board, weil ich im Arduino-Playground gelesen habe das das dort vorgestellte DMX-Projekt nur auf den älteren Boards funktioniert.
    Muss ich auf das Arduino-Board noch ein Programm laden oder ist das komplett Hardware basiert?
    Letzte Frage: Wie funktioert das mit dem Treiber-Wechsel unter Windows?
    Schon mal vielen Dank
    Willi

  2. Wolfgang

    hallo willi,

    leider muss ich dich enttäuschen, das dmx interface funktioniert nur mit dem alten arduino (duemillanove), nicht mit dem Uno :-(
    grund: dieser “hack” missbraucht das arduino board, da es die gleiche usb schnittstelle (ftdi chipset) wie das OpenDMX projekt verwendet. somit wird nur der usb teil vom arduino verwendet, nicht das arduino an sich. ist also nützlich wenn man ein arduino board rumliegen hat und mal schnell was mit dmx machen will.

    das uno board hat neue usb chips drauf, dadurch funktioniert das natürlich nicht mehr.

    ich habs mal auf windows (virtuelle maschine auf meinem mac) kurz getestet, da war kein treiberwechsel notwendig.

    ich hoffe das beantwortet deine fragen, ansonsten einfach nochmal nachfragen ;-)

  3. Willi Bromenne

    Hallo,
    vielen Dank für die schnelle Anwort. Das heißt ich werde mir dann wohl irgendwo einen billiges DMX-Interface kaufen müssen -> trotzdem noch teuerer als mit Arduino und nicht so flexibel. Hab ihr auch schon das Interface von Digital Enlightment fast fertig liegen, kann das nur ohne Osszillator nicht Debugen :-(
    Naja muss mir halt was anderes einfallen lassen….
    nochmal vielen Dank
    Willi

  4. Rafi

    Hallo Wolfgang
    Wo finde ich den Code für das OpenDMX Interface?
    DANKE

  5. Wolfgang

    Für das OpenDMX braucht man keinen Code, da die Lichtsteuersoftware das direkt anspricht, auf dem Arduino muss auch nichts laufen, weil der Arduino für das DMX gar nicht gebraucht wird, in Tat und Warheit wird er sogar umgangen.
    Die Sache funktioniert so: das Shield ist im Prinzip das OpenDMX Interface ohne USB Anschluss. Der Arduino 2009 hat zufällig den selben FTDI USB Chip wie das OpenDMX und der ist auch noch auf die Pins D0 und D1 direkt durchverbunden. Also Shield auf den Arduino, wird verbunden mit dem FTDI USB Chip und man hat ein vollständiges OpenDMX Interface, der Rest vom Arduino wird gar nicht gebraucht, aber wenn man eben ein Arduino 2009 rumliegen hat, kommt man so sehr schnell und billig zu einem DMX Interface ;-)

  6. guto

    Hi there! I’ve done the same project and it worked! :)

    I have a question, do you know the software DLight? Its a software to controll the lihgts, just like Freestyler or QLight Commander. I tried the dmx shield with Freestyler and it worked out, but not with Dlight. Can you tell me why?

  7. Wolfgang

    sorry, don’t know DLight, because i use QLC+ on my Mac. I guess Dlight and Freestyler are Windows only applications, so no chance to test it.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>