Art-Net-Node für 25 Euro | |
---|---|
Entwickler | Stefan Krupop |
Status | fertig |
Kontakt | Stefan.Krupop@dmxcontrol.de |
Beschreibung
Ziel:
- Realisierung eines besonders preiswerten Ethernet->DMX-Wandlers (Art-Net Node)
Was ist Art-Net?
Kurz gesagt ist Art-Net ein Netzwerkprotokoll, mit dem DMX-Werte über ein normales Ethernet-Netzwerk per UDP übertragen werden können. Weitere Details zum Protokoll und seinen Einsatzmöglichkeiten finden sich in diesem Wiki-Artikel.
Um über Art-Net gewöhnliche DMX-Geräte ansteuern zu können braucht man einen Wandler, der zwischen Ethernet und DMX-Protokoll vermitteln kann, einen sogenannten Art-Net Node. Normalerweise gehören solche Geräte in die Profi-Liga und sind dementsprechend teuer (mehrere Hundert Euro).
Vorgeschichte
Seit einiger Zeit bietet Pollin Electronic einen Bausatz AVR-NET-IO zu einem sehr günstigen Preis von 19,95 € an. Mit dieser Platine ist es möglich, Steuerungsaufgaben über ein Netzwerk zu erledigen. Wie sich herausstellte, ist der Bausatz ähnlich genug zum ETH_M32_EX-Projekt von Ulrich Radig, um dessen (quelloffene) Software einsetzen zu können.
Mit ein paar zusätzlichen Bauteilen zu einem Preis von ca. 5 € lässt sich der Bausatz leicht um eine Möglichkeit zur DMX-Ausgabe erweitern. Dann fehlt(e) nur noch die nötige Software, um die Platine Art-Net und DMX sprechen zu lassen...
AvrArtNode
Das Ergebnis meiner Mühen ist eine angepasste Version der Firmware von Ulrich Radig, die von etlichen Funktionen befreit und dafür um Art-Net und DMX erweitert wurde. Die vorliegende Version bietet folgende Möglichkeiten:
- Kann wahlweise ein DMX-Universe senden (Art-Net => DMX) oder empfangen (DMX => Art-Net)
- Automatische Erkennung im Netzwerk (reagiert auf ArtPoll-Anfragen)
- Über Netzwerk konfigurierbar: Name (Kurz- und Langname), Art-Net-Subnetz, Art-Net-Universes, IP-Einstellungen
- Unterstützt die Standard-Netzwerkadressen 2.x.x.x, 10.x.x.x sowie eigene Konfigurationen
Da sowohl der TCP-Stack (Ulrich Radig) als auch die DMX-Routinen (Hendrik Hölscher) der GPL unterliegen, wird die Art-Net-Firmware hier auch unter der GPL angeboten. Das Projekt kann hier heruntergeladen werden:
- Fertig kompilierte Version: AvrArtNode-compiled.zip
(Achtung: MAC-Adresse entspricht dann nicht der des jeweiligen Bausatzes) - Quelltexte: AvrArtNode-source.zip
Benötigt AVR-Studio 4 oder neuer und AVR-GCC bzw. WINAVR - Programm, um Bootloader von Pollin zum Flashen zu verwenden: AvrNetIOUpdater.zip
Update 31.01.09: Jetzt hat der AvrArtNode auch eine offiziell vergebene OEM-Id: 0x08b1. Diese wird nun in den ArtPollReply-Paketen gesendet.
Update 02.04.10: Firmware erweitert! Mit der neuen Version AvrArtNodeV2_0 (erweitert von Ulrich Betz) ist es jetzt möglich, auf zwei Universen gleichzeitig zu senden bzw. zu empfangen. Die Firmware ist nur kompatibel zu der neuen Platine von Morpheus238 in Verbindung mit einem ATMega644p.
ACHTUNG: Das Projekt scheint (zumindest laut Hennes DMX-Tester) korrekt zu funktionieren. Dennoch übernehme ich keine Haftung für eventuell auftretende Probleme. Bitte beachten Sie, dass es sich um kein professionell getestetes Produkt mit irgendwelchen Garantien handelt. Es wurden auch keine Vorkehrungen getroffen, um einen stabilen Betrieb zu garantieren. In kritischen Situationen sollte also evtl. ein professionelleres Gerät in Betracht gezogen werden!
Aufbau
Hardware
Zunächst wird der Bausatz wie in der beigelegten Anleitung aufgebaut und in Betrieb genommen. Sollte die Platine zunächst nicht aus dem Netzwerk erreichbar sein (wie bei mir), können die Informationen auf der mikrocontroller.net-Seite zum Bausatz sehr hilfreich sein: AVR Net-IO Bausatz von Pollin.
Funktioniert alles mit der vorgegebenen Firmware, kann im nächsten Schritt die sehr einfache DMX-Erweiterung aufgebaut werden. Hierzu sind nur wenige Bauteile notwendig:
Menge |
Reichelt-Bestellnr. |
Bezeichnung |
Preis |
1 |
SN 75176BP |
SN 75176 |
0,30€ |
1 |
NT 02 |
DIP-Schalter, 2polig |
0,32€ |
1 |
XLR 3ES |
XLR-Einbaustecker, 3polig |
0,95€ |
1 |
XLR 3EB-N |
XLR-Einbaubuchse, 3polig |
0,52€ |
1 |
PFL 10 |
2x5-Pol Pfostenverbinder |
0,55€ |
1 |
GS 8P |
IC-Sockel 8polig |
0,10€ |
1 |
AWG 28-10G 3M |
Flachbandkabel, 10polig |
2,05€ |
1 |
H25PR050 |
Lochrasterplatine |
0,63€ |
Die teuerste Komponente ist also das Flachbandkabel, von dem es leider bei Reichelt nur eine 3m-Rolle gibt. Benötigt werden eigentlich nur wenige Zentimeter...
Die Bauteile können leicht auf einer Lochrasterplatine nach folgendem Schaltplan verbunden werden:
Das fertige Ergebnis kann dann so aussehen:
Verbunden wird die kleine Zusatzplatine hauptsächlich über den "EXT."-Erweiterungsanschluss auf dem AVR-NET-IO-Board. Leider führt dieses nicht die für die DMX-Ausgabe nötigen seriellen Signale, so dass diese direkt vom Mikrocontroller an den Pins 14 und 15 abgegriffen werden müssen:
Damit ist der Hardware-Aufbau abgeschlossen. Nun fehlt nur noch die richtige Firmware, um den Art-Net Node zu komplettieren.
Hardware alternativ (alles auf eine Platine)
Abschnitts-Autor
- [Stefan]
Für den Art-Net Node braucht man eigentlich gar nicht alle Möglichkeiten, welche die Platine bietet. Man braucht Stromversorgung, Netz-Anschluss, Mikrocontroller - weg bleiben können RS232-Treiber und -Anschluss, EXT-Buchse (ISP-Buchse brauchen wir aber zum Programmieren), 25-Pol D-SUB Buchse und der AREF-Jumper Im Detail werden die Bauteile J3 - J10, EXT., C14 - C17 und IC4 weggelassen.
Nachdem man an der Platine für den Umbau auf DMX eh Änderungen machen muss (Pin 14 und 15 des AVRs sind auf keine Anschlüsse herausgeführt) bietet es sich nicht nur aufgrund des Platzbedarfs an, alles auf eine Platine zu löten.
Dafür sind dann nur noch folgende Bauteile notwendig:
Menge |
Reichelt-Bestellnr. |
Bezeichnung |
Preis |
1 |
SN 75176BP |
SN 75176 |
0,30 € |
1 |
GS 8 |
IC-Sockel 8polig |
0,03 € |
1 |
NT 02 |
DIP-Schalter, 2polig |
0,32 € |
1 |
XLR 3ES-N |
XLR-Einbaustecker, 3polig |
0,40 € |
1 |
XLR 3EB-N |
XLR-Einbaubuchse, 3polig |
0,52 € |
Summe |
1,57 € |
Der RS485 Leitungstreiber (SN 75176) wird dann an dem Platz von IC4 eingelötet, und zwar so, dass der Pin 1 des ICs auf Pin 11 des IC4 liegt.
Der DIP-Schalter wird auf Pin 7-10 des IC4 gelötet (braucht dann etwas Kraft).
Bei J4 wird AREF fest über eine Drahtbrücke mit int. verbunden.
Nun sind auf der Unterseite der Platine noch zwei Leiterbahnen, die Verbindung von AVR Pin 14 + 15 nach IC4, zu unterbrechen (auf nachfolgendem Bild beim AVR zwischen Pin 19 und 20 sichtbar), und folgende Verbindungen herzustellen:
- IC4 Pin 6 -> IC4 Pin 16 (VCC SN 75176)
- IC4 Pin 3 -> IC4 Pin 15 (GND SN 75176)
- IC4 Pin 15 -> IC4 Pin 9 + 10 (GND DIP-Schalter)
- IC4 Pin 7 -> AVR Pin 1
- IC4 Pin 8 -> AVR Pin 4
- IC4 Pin 11 (R SN 75176) -> AVR Pin 14 (RXD AVR)
- IC4 Pin 12 + 13 -> AVR Pin 17
- IC4 Pin 14 (D SN 75176) -> AVR Pin 15 (TXD AVR)
Die DMX-Buchsen sind dann hier anzuschließen:
- XLR Pin 1 -> C14 + (GND)
- XLR Pin 2 -> C15 - (DMX -)
- XLR Pin 3 -> C15 + (DMX +)
Das fertige Ergebnis kann dann so aussehen:
Damit ist der Hardware-Aufbau abgeschlossen. Nun fehlt nur noch die richtige Firmware, um den Art-Net Node zu komplettieren.
Software
Anpassen und kompilieren
Bevor die Firmware kompiliert wird, sollten die MAC-Adresse und evtl. die Default-IP-Adresse angepasst werden. Beide Parameter werden in der Datei "config.h" eingestellt:
Die angegebene IP-Adresse sollte im gleichen Subnetz wie der zum Konfigurieren benutzte PC liegen, damit der Art-Net Node nach dem Programmieren auch erreichbar ist. Die anzugebende MAC-Adresse finden sie auf der Verpackung des Netzwerkcontroller-ICs im Bausatz.
Nachdem diese Angaben erledigt sind, kann die Firmware kompiliert werden (Taste F7). Die Kompilierung sollte keine Fehler oder Warnungen liefern: Build succeeded with 0 Warnings...
Die entstandene Datei "AvrArtNode.hex" (im Verzeichnis "default") kann dann auf den Controller geflasht werden.
Controller programmieren
Der Controller kann regulär mit dem Hex-File beschrieben werden. Zu beachten ist nur, dass die Fuse-Bits korrekt gesetzt sind und evtl. das EEPROM vorher gelöscht wurde. Die Fuses sollten wie folgt gesetzt werden (High: 0xC9, Low: 0x8F):
Ist der Controller einmal programmiert, kann die Fuse "EESAVE" auch wieder aktiviert werden, um bei einem eventuellen neuprogrammieren nicht die geänderten Einstellungen zu verlieren.
Controller mit Bootloader programmieren
Die AVR-NET-IO-Platine wird mit einem vorinstallierten Bootloader ausgeliefert, der das installieren einer neuen Firmware ohne speziellen Programmer über die serielle Schnittstelle erlaubt. Hier kann ein kleines Programm heruntergeladen werden, was diesen Bootloader ansprechen kann um beliebige Hex-Files auf den Controller zu flashen. Starten Sie dazu nach dem Download das Programm, wählen Com-Port und Hex-Datei aus und folgen Sie den Anweisungen.
Benutzung
Der fertige AvrArtNode hat als Bedienelemente nur zwei Dipschalter - alle anderen Einstellungen werden per Netzwerk über das Art-Net-Protokoll vorgenommen.
Die DIP-Schalter haben folgende Bedeutung:
Schalter 1: Datenrichtung | Ein | DMX => Art-Net |
Aus | Art-Net => DMX | |
Schalter 2: Netzwerkkonfiguration | Ein | Art-Net IP 2.x.x.x |
Aus | Art-Net IP 10.x.x.x |
Ein neu programmierter AvrArtNode startet zunächst mit der in der Firmware hinterlegten Default-Adresse (wenn nicht geändert: 192.168.0.90). Hat der PC eine IP-Adresse aus dem gleichen Subnetz (z.B. 192.168.0.2), sollte der AvrArtNode von Art-Net-kompatiblen Programmen erkannt werden. Am Beispiel von "DMX-Workshop"sollte das wie folgt aussehen:
Ein Rechtsklick auf den Node bringt dann ein Kontextmenü zum Vorschein, mit dem der Knoten konfiguriert werden kann.