How-To Ambilight (SEDU-Controller) unter Linux (Ubuntu) mit "boblight"

  • Hier findet ihr eine Ambilight Software Installations- und Konfigurationsanleitung für das Ambilight Programm „boblight“ unter Linux. Als Controller wird das SEDU-Board (mit 644P) mit einer SEDU-Ambilight Software verwendet.
    Diese Anleitung soll nach Möglichkeit Anfängerfreundlich sein. Sollte dies irgendwo nicht wirklich der Fall sein oder Fragen auftreten, schreibt mich an!
    Generell gilt: Falls jemand Fragen/Anregungen/Verbesserungsvorschläge haben sollte immer her damit!!!


    Bemerkung: Einige Daten & Informationen (z.B. boblight-X11 Parameter) fehlen noch, werden aber nachgeliefert.


    Vorraussetzung


    Ihr habt

    • einen PC (mit Linux)
    • einen SEDU-Controller mit einer funktionierenden Ambilight SW (oder anderen Controller)
    • einige oder viele einzeln ansteuerbare RGB LEDs

    und wollt nun euer Ambilight System unter Linux zum laufen bringen.
    Dafür benötigt ihr auf eurem PC nur noch eine weitere Softwarekomponente Boblight.
    Boblight wertet euren angezeigten Bildschirminhalt farblich aus, schick diese Daten an eueren Controller der wiederum eure LEDs,
    entsprechend der auf dem Bildschirm angezeigten Farben, zum leuchten bringt.



    Boblight herunterladen

    Die Anweisungen zur Installation stehen zum nachlesen auf der Homepage von Boblight
    Die aktuellsten Dateien werden mit folgendem Befehl auf den Desktop (oder anderen Ort)
    in den Ordner „boblight-read-only“ herunterladen:

    Code
    Cd Desktop
    svn checkout http://boblight.googlecode.com/svn/trunk/
    boblight-read-only
    
    
    cd boblight-read-only


    *Bevor es weitergeht muss noch eine kleine Modifikation an einer Datei durchgeführt werden*


    Vorkonfiguration & notwendige Pakete installieren


    Um mit dem Controller korrekt kommunizieren zu können muss Boblight für die Übertragung per miniDMX eingestellt werden. Dies wird vor der Installation in folgender Datei angepasst:
    /boblight-read-only/src/device/devicers232.cpp
    Mit folgendem Befehl lässt sich die Datei bearbeiten (vorher zum Pfad von boblight-read-only navigieren):

    Code
    sudo gedit /src/device/devicers232.cpp


    Folgender Inhalt muss in der Datei ersetzt werden:

    Code
    if (type == ATMO) //atmo devices have two bytes for startchannel and one byte for number of channels
     { 	
    //it doesn't say anywhere if the startchannel is big endian or little endian, so I'm just starting at 0
     	m_prefix.push_back(0xFF);
     	m_prefix.push_back(0);
     	m_prefix.push_back(0);
     	m_prefix.push_back(m_channels.size());
       }


    mit


    Code
    if (type == ATMO) //atmo devices have two bytes for startchannel and one byte for number of channels  
    {
    	//it doesn't say anywhere if the startchannel is big endian or little endian, so I'm just starting at 0
    	m_prefix.push_back(0xA5);
    	m_prefix.push_back(0x5A);
    	m_postfix.push_back(0xA1);
    	}


    Fehler beim kompilieren ausschließen:
    Boblight greift auf einige Pakete zurück die evtl. nicht installiert sind.
    Mit diesem Befehl installiert man diese nach:

    Code
    sudo apt-get install libx11-dev libgl1-mesa-dev libxrender-dev libxext-dev portaudio19-dev libavcodec-dev libavformat-dev libswscale-dev libavdevice-dev


    Falls es zu Fehlern beim „Make“ Befehl (nächster Schritt) kommt, liegt dies an weiteren fehlenden Paketen.
    Folgende können es sein (Liste muss nicht vollständig sein): g++, Libtools



    Boblight installieren


    Um boblight zu installieren müssen nun folgende Befehle im Terminal eingegeben werden:
    [Vorher zum Verzeichnis von Boblight im Terminal navigieren]

    Code
    ./configure
    make
    make install


    Der Befehl „make install“ kann bei fehlenden Rootrechten als „sudo make install“ ausgeführt werden.
    Nun ist Boblight installiert und man kann mit der Konfiguration weitermachen.


    ! Wichtig !
    Baudrate einstellen


    Controller Baudrate muss 500000 betragen (für Boblight)!
    Beim Anschluss des SEDU-Boards muss der Baudraten Jumper gesetzt werden um die Baudrate von 250000 auf 500000 zu setzen ansonsten
    klappt die Kommunikation PC<>Controller nicht!


    Linux Baudrate muss ebenso 500000 betragen!
    Linux sollte die Baudrate des Controllers automatisch erkennen und einstellen, unter Umständen passiert dies nicht.
    Zur Kontrolle: (nur für 10.04, das Programm stty muss für 12.04 manuell kompiliert werden)
    Sollte stty nicht installiert sein kann man es mit folgendem Befehl nachinstallieren:

    Code
    sudo apt-get install stty


    Die aktuelle Baudrate des Controllers (hier am Port /dev/sttyUSB0) lässt sich unter Linux mit folgendem Befehl im Terminal anzeigen:

    Code
    stty -F /dev/ttyUSB0


    (/dev/ttyUSB0 ist der Port des Controllers)


    Um die Baudrate auf 500000 umzustellen, reicht es aus den Befehl mit einem kleinen Zusatz im Terminal auszuführen

    Code
    stty /dev/ttyUSB0 –F 500000


    Falls die Baudrate nach einem Neustart wieder zurückgesetzt wird, kann man diese Zeile in die Datei /etc/rc.local eintragen.

  • Boblight vorkonfigurieren
    Die Konfiguration erfolgt über eine Datei. Da es sehr mühselig sein kann diese zu erstellen, sollte man ein Backup davon machen.
    Die „boblight.conf“ Datei muss im Verzeichnis „/etc/“ erstellt bzw. kopiert werden.
    Andere Verzeichnisse können mit folgendem Befehl ausgewählt werden:

    Code
    boblightd -c /Pfad/boblight.conf


    Der Aufbau der Datei ist auf der Homepage sehr gut beschrieben (englische Beschreibung )

    Hier findet ihr eine beispielhafte Konfiguration:
    boblight.zip


    Hier eine kurze Erläuterung der wichtigsten Werte:
    [device] Controllereinstellungen
    name -> einen Name eingetragen, darf aber bei mehreren Controllern nicht doppelt vergeben sein!
    type
    -> Controllertyp eingetragen (atmo)
    output
    -> Port an dem der Controller hängt angeben (/dev/ttyUSB0)
    channels
    -> Kanalanzahl eintragen, wobei die größer sein kann als die tatsächliche Kanalanzahl (z.B. 256)
    prefix
    -> Anfangs- und Endbytes angeben (A5 5A A0)
    interval -
    > Updaterate definieren (z.B. 20000 bedeutet 50mal in der Sekunde)
    rate -> Baudrate des Controllers eingetragen werden (500000)
    debug
    -> hier kann der debug mode angeschaltet werden (on) (Ausgabe im Terminalfenster) oder (off) bzw. löschen.


    [color] Farbeinstellungen, mindestens 3 Farben (RGB) müssen angegeben werden. (siehe Beispiel)
    name -> Name der Farbe auf englisch (z.B. red)
    rgb -> Wert den die Farbe haben soll in Hex (z.B. FF0000 für rot)
    blacklevel -> hier kann definiert werden ob die LEDs bei Schwarz leuchten sollen. Bei Werten kleiner 1.0 leuchten die LEDs weis,
    je kleiner der Wert desto heller leuchten die LEDs. (Bevorzuge den Wert 0.9)
    gamma
    -> Gamma Wert Einstellung (z.B. 1.0)


    [light] Für jede LED wird ein light Bereich definiert
    name -> eindeutigen Namen vergeben der nicht doppelt vorkommen darf. (z.B. rechts1)
    hscan -> dieser Wert (in %) definiert den horizontalen Bereich am Bildschirm den die LED darstellen soll.
    Z.B. 90 100 , Bereich fängt bei 90% an und endet bei 100%)
    vscan -> genau wie hscan nur für den vertikalen Bereich



    Software Test


    Um Boblight (im speziellen Boblight-X11) zu testen reicht es aus den Boblight Deamon (boblightd)
    mit aktiviertem Debug mode (siehe Konfiguration) im Terminal zu starten.
    Der Controller muss dafür angeschlossen werden!
    Die LEDs müssen nicht angeschlossen sein, jedoch bietet sich dies auch an zur „visuellen“ Prüfung.


    boblight Deamon starten:
    Einfach

    Code
    boblightd


    im Terminal eingeben.Nun sollte folgendes zu sehen sein (debug aktivieren, siehe Konfiguration):




    boblight-constant Test:
    In einem neuen Terminal Fenster folgendes eingeben:

    Code
    boblight-constant 00ff00


    Die Verbindung zu boblightd wird angezeigt


    und im Terminal von boblightd ist folgendes zu sehen:


    Bei bestimmten Konfigurationen (z.B. blacklevel kleiner 1) kann die Ausgabe anders sein.
    Z.B. bei einer Konfiguration mit Blacklevel 0.9 sieht die Ausgabe wie folgt aus:


    boblight-X11 Test:

    Code
    boblight-X11


    (mit oder ohne Parameter)
    Auch hier wird die Verbindung mit boblightd angezeigt
    Die Farbwerte des Bildschirms werden nun von boblightd ausgegeben:


    Wenn das Ganze erfolgreich funktioniert können, falls nicht schon geschehen, die LEDs an den Controller angeschlossen werden.

    boblight-X11 Parameter


    Um die Ausgabe zu verändern können folgende Parameter gesetzt werden:
    [wird noch ergänzt]



    Boblight Startskript


    Um die Software beim Systemstart automatisch zu starten, erstellt man ein einfaches Skript (Textdatei)
    in einem beliebigen Ordner und fügt mit einem Texteditor folgenden Inhalt ein:

    Bash
    #!/bin/bash
    boblightd&
    boblight-X11&


    Um das Skript beim Hochfahren zu starten, fügt man es über das Menü
    "System -> Einstellungen -> Startprogramme" hinzu
    Es
    gibt zahlreiche Möglichkeiten das Programm per Skript zu starten, das
    oben beschriebene erwies sich für meinen Fall als geeignetes.



    Fehlersuche
    Mögliche Fehler werden hier erstmal nur Stichwortartig ohne bestimmte Reihenfolge aufgeführt:
    - Kompilierung schlägt fehl
    - boblight nicht für miniDMX modifiziert
    - SW des Controllers fehlerhaft- SW des Controllers gibt kein miniDMX aus (falsche Headerbytes?)
    - Baudrate nicht korrekt eingestellt
    - Startskript fehlerhaft, wird nicht ausgeführt
    - Probleme mit Root-Rechten?
    - fehlender FTDI Linux Treiber (sehr unwahrscheinlich da im Kernel integriert)
    - Stromversorgung am Controller und den LEDs überprüfen


    Danke an:
    Pesi – Für seine veröffentlichte SEDU-SW
    Turi – Für seinen Shop
    Krautmaster – Für seine Boblightanleitung
    Und natürlich bob für sein Programm