DMX Steuerung Selbstbau? Teil 2 Das Protokoll

Die LED leuchtet rot, das Interface bekommt keine gültigen Daten.

Im letzten Beitrag habe ich das Interface von Eurolite auseinandergebaut, um zu sehen wie es funktioniert.

Es wird über USB an den Computer angeschlossen. Dort wird es als USB zu Seriell Wandler erkannt. Unter Windows als COM-Port. Unter Linux als Serielle Schnittstelle.

~$ lsusb
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 002: ID 046d:c534 Logitech, Inc. Unifying Receiver
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 004: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Hier ist also unser Interface:

Future Technology Devices International, Ltd FT232 Serial (UART) IC

In meinem Fall ist der Anschluss unter ttyUSB0 zu finden.

Als normaler Benutzer hat man keine Zugriffsrechte.

Am besten ist es, sich selber als Benutzer für die Gruppe „dialout“ einzutragen.

sudo usermod -aG dialout BENUTZERNAME

//oder als Root
usermod -aG dialout BENUTZERNAME

Jetzt kann man ein Terminalprogramm verwenden, um dem Interface Daten zu schicken. Und an dieser Stelle bin ich fast verzweifelt. Da es sich ja um eine Serielle Schnittstelle handelt, muss man die Baudrate kennen. Ich habe alle Standard Baudraten probiert. Nichts hat funktioniert. Nach einigen Tagen kam mir die Idee 250k Baud zu probieren. Und siehe da, es hat funktioniert. Die 250kBaud werden ja für die DMX übertragung verwendet, aber für die Verbindung zwischen FTDI und ATMEL wären sie eigentlich nicht notwendig.

Konfiguration für Kommunikation mit Eurolite USB-DMX512-PRO

Die zu übertragenden Daten müssen folgende Form haben:

  • Byte 0: 0x7E Startbyte
  • Byte 1: 0x06 Protokoll / Mode
  • Byte 2: 0x01 Nachrichtenlänge Höherwertiges Byte
  • Byte 3: 0x02 Datenlänge niederwertiges Byte
  • Byte 4: 0x00 Zweck ist mir unbekannt.
  • Byte 5-516 Daten. Ein Byte pro Kanal.
  • Byte 517: 0xE7 Stopbyte

Zum Glück gibt es keine Checksumme die man berechnen muss. Es reicht das jeweilige Byte für einen Kanal zu modifizieren.

Und wenn man die richtigen Daten sendet, wird die LED grün:

Es reicht scheinbar aus, einmal gültige Daten zu senden, das Interface sendet diese Informationen dann bis der Strom abgeschaltet wird, oder es neue gültige Daten gibt. Auch wenn die LED wieder Rot wird, scheint das Interface weiter zu senden.

7e 06 01 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e7

Quelle meines Wissens und Ansatzpunkt für weitere Nachforschungen ist übrigens: https://forum.dmxcontrol-projects.org/index.php?thread/8130-serielles-protokoll-zum-eurolite-usb-dmx512-pro-interface/