Kategorien
Hacking

WS2811B Pixel Bars – Debugging [1/x] – Measurements

Vorweg:

Ja dieser Blog ist tot. Und nein er war eigentlich auch nie wirklich am Leben. Als wir 2020 in Corona gestartet sind hatte ich aus Lust und Laune die Domain „nerds.cool“ geschossen und unter gleichen Namen haben Tom, Stefan und ich dann die Digitale Weinmeile veranstaltet. Pläne zu nerds.cool gab es nie in ausgefeilterer Form als einer Skizze.

Seit dem ich die Universität verlassen habe und mich als Freiberufler für Lichtgestaltung und Entwicklung betätige, fallen mir erstaunlich viele Projekte in die Finger, welche ich nun endlich mal dokumentieren möchte. Aus diesem Blog wird also eine Art öffentliches Entwicklertagebuch.


Jasper hat vor 2 Jahren angefangen Pixelbars zu bauen. Seit dem gibt es verschiedene Varianten: 1m, 2m, Ecken, … mit einer Pixeldichte von 60Pixeln/m.

Die Pixel Bars im Einsatz – Zuspiel via Resolume

Wir haben jeder für sich / wie auch zusammen nun schon viele Touren mit den Lampen hinter uns. Doch als ich neulich für I „Spy With My Litle Eye“ auf dem somaFest im Cologne Gamelab unseren gewohnten Aufbau zerlegen musste, um den Raum hübsch zu machen, stieß ich auf Grenzen.

Setup

WS2811B Controller chips sprechen ein asynchrones serielles Protokoll welches über eine Datenleitung (im Bezug zu Ground) übertragen wird. Mit Pegeldefinitionen halten sich die Hersteller gut zurück. Zur Kommunikation zwischen eigener Hardware und den 2811ern gibt es verschiedene Ansätze, der geläufigste ist das Verbiegen von SPI-Peripherien oder SPI-Controllern. Dabei wird ein Bit auf mehrere Bit aufgepustet und etwas mit der SPI-Clock gespielt.

Artnet zu SPI/DMX pixel licht controller; Eternet protokoll eingang; 340  pixel * 16CH + zwei ports (2X512 Kanäle) ausgang; _ - AliExpress Mobile
ArtNet-SPI-Controller

Bei uns übernimmt das so ein chinesischer Art-Net Controller. Das Gerät verfügt über vier 4-Port SPI-Controller die von einem STM32F4 mit Daten bespielt werden. Die Systemspannung beträgt 12Volt und wird von mehreren Netzteilmodulen neben dem Controller bereit gestellt.

Die Pixelbars selbst sind extra gefertigte Aluminiumprofile mit besagten LED-Streifen. Als Stecker hat sich Jasper für XLR entschieden. Die Pinbelegung ist

1 – Masse
2 – +12V
3 – Signal.

Als Kabel verwendeten wir immer DMX-Kabel. Über die Zeit stellten wir aber fest, dass dem Kabelquerschnitt schnell die Luft aus geht und die Spannungsabfälle in den Leitungen zu hoch sind. Mit kleinen Netzteilmodulen kann die Spannungsversorgung in der Installation wieder sicher gestellt werden.

Jasper bat mich für ihn noch Kabel auf Basis von 3G1,0 Gummileitung zu fertigen. Diese hatte ich naiv ungetestet mit nach Köln genommen.

Die Pixelbars können in Reihe geschaltet werden. Maximal 4 Meter sind möglich.

Das Problem

Reihenschaltung… „na Prima“ dachte ich mir in Köln, als ich die Pixel Bars einzeln im Raum verteilte, „dann brauch ich ja nicht so viele Kabel ziehen“. Was wir aber nicht wussten, dass zwischen dem Ausgang einer Pixel Bar und dem Eingang der nächsten kaum mehr als 2 Meter Kabel funktionieren. Alles darüber hat zu Fehlsignalen und letztlich dem falschen Licht geführt. In diesem Moment habe ich das erste mal genauer über die Signalführung im System nachgedacht und mir wurde direkt klar: Das kann nicht gehen.

Noch deutlicher wurde es dann mit den bereits erwähnten 1mm²-Kabeln. Ja der Leitungswiderstand ist geringer und das ist Prima für die Stromversorgung. Jedoch haben wir auch eine bedeutend höhere Leitungskapazität, bei der selbst der ArtNet-Controller Schwierigkeiten bekommt ein gescheites Signal ans andere Ende des Kabels zu schieben.

Und dann gibt es ja noch die Reflektionen die solch ein Signal am Hochohmigen Eingang eines Schaltkreises verursacht.

Erste Hacks

Ein Regelbarer Serienwiderstand 🙂

Mein erster Gedanke war also noch vor Ort: Da muss ein Serienwiderstand rein! Dieser hilft eigentlich immer ganz gut gegen Reflektionen, da er die reflektierte Energie durch den Ausgangstreiber abbauen kann.
So einfach sollte es aber nicht sein. Ca. 330Ohm haben zwar dafür gesorgt, dass die Pixelbar irgendein Signal bekommt, jedoch war dessen Inhalt auch nicht mehr der gewünschte. Und so habe ich also meine Installation neu verkabelt und die Problemlösung hinter den Job geschoben.

Untersuchungen

Zuhause habe ich dann also etwas Material mit zum Schreibtisch gebracht und fing an zu messen.

Auch die zweite Pixel Bar sollte rot leuchten. (15m XLR-Kabel)

Wie sieht denn das Ausgangssignal einer Pixelbar aus? Also habe ich mal mein Oszi an den Datenausgang einer Lampe gehalten und verschiedenes dahinter angeschlossen.

Man erkennt schon an den Signalpegeln eins: Der Datenausgang eines 2811er ist kaum in der Lage eine längere Leitung zu versorgen. Besonders witzig das dritte Bild, hier geht gar nichts mehr.

Eingangs scherzte ich über die Signalpegeldefinitionen. Die scheint es nicht zu geben, da sich der Signalpegel an der Versorgungsspannung des Chips orientiert. 12Volt Spitze messe ich. Gleichzeitig ist das Signal auch alles andere als rechteckig.
Wie wirkt sich das auf den Signaleingang eines WS2811 aus? Das kann man nur raten. Auch hier.. keine Pegelangaben.

Wir halten also Fest: Der Datenausgang eines WS2811 reicht von einer LED auf dem Streifen zur nächsten und weit darüber hinaus.


Wie sieht es denn mit den Ausgängen des ArtNet-Controller aus? Hieran spielten die 20m 1mm² Gummileitungen auch nicht.
Ich messe wieder ohne „Last“, nur das Kabel.

Der Pegel beläuft sich auf 5 Volt. Das ist eher erwartbar. Mit zunehmender Länge des XLR-Kabels wird aber auch hier das Signal immer schmutziger. Bis hin zur Unkenntlichkeit mit der Gummileitung.

Was bleibt mir da als Fazit? Das ist nichts. Und irgendwie hatten wir auch einfach sehr viel Glück mit den Pixel Bars. Das Protokoll der WS2811 scheint ausreichend Robust, dennoch habe ich mit dem neuen Wissen nur wenig Vertrauen in das System.

Verbesserungsvorschläge

Als erstes wäre da eine Verstärkerstufe in die Ausgänge der Pixel Bars zu bauen. So könnte man ohne größere Systemeingriffe eine Verbesserung erzielen.
Natürlich gibt es dafür auch schon kommerzielle Lösungen.

Als Zweites: Schuster bleib bei deinem Leisten! Wenn man in der Lichttechnik seit Jahrzehnten differentielle Datenbusse durch verdrillte Aderleitungen schickt und das DMX nennt, ja warum nutzen wir das denn nicht für die Pixel Bars? Auch hier stelle ich wieder eine kommerzielle Lösung vor.
Ein RS485 Transceiver am Anfang und Ende jeder Pixelbar würde Signale weit über 100 Meter reichen lassen. Leider müssten wir dann aber auch die gesamte Verkabelung überdenken.
Mein Favorit sind bis jetzt USB-Kabel welche neben der verdrillten Datenadern auch zwei dickere Adern für die Stromversorgung mitbringen. Wenn man die Pixel Bars dann noch via Schaltregler auf 48 Volt Systemspannung umrüstet, erwarte ich solide Versorgung von einem zentralen Controller aus.

Wir werden sehen wann dieser Post seinen Nachfolger findet. Wenn wir uns entscheiden die Pixel Bars zu überarbeiten, dann folgt hier als nächstes sicher ein Konzept.