[easyVDR]Ambilight howto

  • Ich versuche hier das Ambilight Thema aus dem easyVDR-Wiki zu retten, daher pflege ich nach und nach alles hier ein.

    Dieser Beitrag gilt für easyVDR3.x & easyVDR5 ( bitte bei #3 die 2 Punkte für easyVDR5 beachten )


    Variante Arduino mit WS2801 oder APA102C LED-Stripe:



    Hardware:
    -Arduino Nano ATmega328 mit FTDI Chip

    -WS2801 5050 RGB LED strip 32 LEDs/m

    oder

    -APA102C 5050 RGB LED strip 60 LEDs/m


    5V 7-16A Netzteil

    Hier variiert die Ampere an der Anzahl der LEDs.

    Bei einer Anzahl von über 100LEDs empfiehlt es sich ein Netzteil mit mehr als 10A zu nehmen.


    Hinweis: Jeder ist selbst für seine Sicherheit verantwortlich. Den Strom bitte messen und das Netzteil passend zur maximalen Helligkeit+10% Sicherheitszuschlag auswählen.

    Auch und gerade bei der niederen Spannung können durch Fehler Brände ausgelöst werden.


    Aufbau

    Beim Strips verlegen unbedingt darauf achten, neben dem WS2801 Chip ist ein kleiner weißer Pfeil für die Verlege-Richtung aufgedruckt.

    Wird einer der Strips falschen rum eingebunden, passiert ab dem Anschluss nichts.

    Ab einer Länge von 2m, sollte unbedingt eine weitere Einspeisung durch das Netzteil erfolgen.

    Der Arduino benötigt nur einen gemeinsamen GND vom Netzteil, eine 5V Einspeisung ist nicht nötig, da durch USB versorgt.

    In diesem Beispiel (Sketch weiter unten), werden die Stripes mit CK > D13, SI > D6 an den Arduino angeschlossen.


    Unterschiedliche Beispiele/Varianten der Rahmen:

    Ambilight Rahmen Winkel variable einstellbar


    Hier wäre es möglich, den Abstrahlwinkel der LEDs individuell einzustellen.

    ( Beispiel: Sollte der TV mal aus Zufall wachsen, muss nicht gleich ein größerer Rahmen her )

    Dazu benötigt man lediglich noch ein Kunststoffrohr, oder Alurohr auf dem Rahmengerüst.

    Minimal knifflig, da an den jeweiligen stellen der Verbindungen das Rohr ausgeklinkt werden muss.

    Zusätzlich sollte man die Aluleisten mit Isolierband an 3 Stellen pro Schiene umkleben, damit das Rohr nicht zu lose auf dem Rahmen steckt.


    Ambilight Rahmen fest


    In diesem Beispiel wurden hier die LEDs direkt auf Rahmen platziert


    Software
    Hier empfiehlt es sich zuerst den x Desktop auf LXDE zu wechseln. Bei openbox ist die USB Unterstützung nicht vollständig ausgebaut, daher kann unter Umständen der Arduino nicht gefunden werden.


    -Arduino IDE ( <- Die kostenlose Programmiersoftware )

    Getestet wurde bisher mit Arduino IDE Version 1.8.1. & 1.8.5 auf Linux & Windows 10

    In der Menüleiste, sollte unter "Werkzeuge > Board" als erstes unser Arduino ausgewählt werden. In unserem Fall "Arduino Nano"

    Dann bei "Werkzeuge > Prozessor" ATmega328 und zum Schluss "Werkzeuge > Port" /etc/ttyUSBx ( wahlweise, wo der Arduino am USB hängt )

    Sollte die Software folgende Meldung anzeigen:


    Empfiehlt es sich, diese Aktualisierung durchzuführen, andernfalls könnten wichtige Bibliotheken für die Programmierung fehlen.

    Über den Bibliotheksmanger (Sketch/Bibiliothek einbinden/ Bibliotheken verwalten) die Bibliotheken aus den "Includes" einbinden.


    In unserem Fall also die FastLED Bibliothek damit die zum Kompilieren geforderte FastLED.h verfügbar ist.

    Ist der Sketch geladen und passend zur Hardware angepasst, muss dieser nun nur noch unter Menüleiste "Sketch > Hochladen" aufgespielt werden.

    Hinweis: Sollten wir Hyperion, oder einen anderen Dienst welcher auf die USB Schnittstelle zugreift im Vorfeld installiert haben, muss dieser Dienst vor dem aufspielen gestoppt werden. Bei Hyperion

    Code
    1. sudo stop hyperion


    -Arduino Sketch ( Software, die mit Arduino IDE auf den Arduino gespielt wird )

    Wahlweise kann hier auch der LED-Typ bei Verwendung von Beispielsweise APA102 individuell angepasst werden, in diesem Fall #define LED_TYPE WS2801 ändern in #define LED_TYPE APA102
    Es sollte unbedingt die Anzahl der LED's #define MAX_LEDS 410 angepasst werden. Hier bitte darauf achten, Anzahl der LED's + 1. Haben wir also 128 LED's, sieht der Eintrag wie flogt aus #define MAX_LEDS 129
    Die Baudrate ist hier schon auf den maximalen Wert eingestellt ( 500000 )#define serialRate 500000 und muß später in Hyperion eingetragen werden.
    Programmcode(Adalight) hier drunter einfach in das geöffnete Arduino IDE Programm einfügen.

    Mediacenter
    easyVDR4alpha(64-Bit) Gigabyte, Ltd. H97-HD3 mit Intel(R) G3260 @ 3.30GHz 4GB DDRx,Intelgrafik,MATSHITA BD-MLT UJ265 Bluray LW, 2TB Festplatte,LCD+IRTrans-Empfänger,2x SkystarS2 PCI


    The post was edited 9 times, last by 'gb' ().

  • Mediacenter
    easyVDR4alpha(64-Bit) Gigabyte, Ltd. H97-HD3 mit Intel(R) G3260 @ 3.30GHz 4GB DDRx,Intelgrafik,MATSHITA BD-MLT UJ265 Bluray LW, 2TB Festplatte,LCD+IRTrans-Empfänger,2x SkystarS2 PCI


  • -Hyperion NG

    Installation:

    Als erstes benötigen wir wichtige Dateien, das unser Build sauber durchläuft:

    Code
    1. sudo apt-get update
    2. sudo apt-get install git cmake build-essential qtbase5-dev libqt5serialport5-dev libusb-1.0-0-dev python3-dev libxrender-dev libavahi-core-dev libavahi-compat-libdnssd-dev

    Jetzt holen wir uns die Repository und upgraden unser System:

    Code
    1. sudo add-apt-repository ppa:george-edison55/cmake-3.x
    2. sudo apt-get update && sudo apt-get upgrade

    Build holen/compilieren/installieren Manuelle Variante:

    Code
    1. git clone --recursive https://github.com/hyperion-project/hyperion.ng.git hyperion
    2. cd hyperion
    3. mkdir build
    4. cd build
    5. cmake -DPLATFORM=x86-dev -DCMAKE_BUILD_TYPE=Release ..
    6. make -j $(nproc)
    7. sudo make install/strip

    Jetzt müssen wir noch den Start von HyperionNG automatisieren, daher habe ich folgendes Skript vorbereitet:

    Startskript für HyperionNG Daemon(Hyperion Start/Stop Daemon)

    Hier empfiehlt es sich zB im x Desktop den xterminal zu nehmen.

    Anmelden als easyvdr

    Code
    1. su easyvdr

    Skripte am besten als Root erstellen

    Code
    1. sudo su

    Gedit starten

    Code
    1. gedit&

    und folgendes Skript hier drunter in Gedit einzufügen.

    Danach unter /etc/init.d mit Namen HYPERIONd abspeichern.

    Nach dem erstellen des Daemons, müssen wir ihn noch ausführbar machen:

    Code
    1. chmod 777 /etc/init.d/HYPERIONd

    Als Abschluss zum Upstart hinzufügen:

    Code
    1. sudo update-rc.d HYPERIONd defaults 80 10
    Quote

    Für easyVDR5 und systemd müssen wir hier noch einen weiteren Befehle ausführen:

    Code
    1. /lib/systemd/systemd-sysv-install enable HYPERIONd


    Jetzt richten wir uns noch einen Ordner für die JSON config Files ein. Ich habe dafür im Daemon /etc/hyperion vorgegeben.

    Code
    1. mkdir /etc/hyperion

    Bei Intelgrafik wären wir mit der Installation fertig und können an die Konfiguration von HyperionNG gehen, bei NVidia fehlt noch was, aber dazu später..


    Erster Start HyperionNG

    Quote

    Für easyVDR3.x und init.d bietet sich hier folgender Befehl an:

    Code
    1. /etc/init.d/HYPERIONd start
    Quote

    Für easyVDR5 und systemd bietet sich hier folgender Befehl an:

    Code
    1. systemctl start HYPERIONd


    Konfiguration:

    Wir öffnen jetzt einen Internetbrowser im Netzwerk, oder lokal auf dem easyVDR. Sind wir direkt am easyVDR geben wir folgendes in der http Zeile ein:

    Code
    1. http://localhost:8090/

    Im Netzwerk:

    Code
    1. http://<hier die IP-Adresse des easyVDR>:8090/

    Nun öffnet sich die Konfigurationsseite von HyperionNG. Um alle Einstellungen machen zu können, muss oben rechts auf den Schlüssel gegangen werden und die Einstellungsstufe auf Experte geändert werden. Hier geben wir folgende Werte ein, wenn wir einen Arduino Nano mit WS2801Led's und dem Sketch aus dem easyVDR-Wiki haben.

    In der "Konfiguration" > "LED Hardware" folgendes einstellen

    > Steuerungstyp = Adalight

    > RGB Typ Reihenfolge = BRG

    > Aktualisierungszeit = 100

    > Ausgabepfad = /dev/ttyUSB0 < hier solltet ihr schauen, wo euer Arduino am System hängt

    > Baudrate = 500000

    > Verzögerung nach Verbindung = 0

    Nachdem wir "Einstellungen speichern" und darauf "Hyperion neu starten" gedrückt haben, sollten einige LED's schon anfangen zu leuchten.

    In der nächsten Option "LED Layout" können wir nun die Anzahl der LED's oben/unten/links/rechts Einspeisepunkt und die Richtung, wie wir verkabelt haben einstellen.

    Dann muss noch die Aufnahmehardware angepasst werden

    In der "Konfiguration" > "Aufnahme Hardware"

    > Typ = x11

    > Aufnahmefrequenz = 60

    > Priorität = 250

    Das Wichtigste ( zumindest bei VAAPI bzw Intel ) wären dann bei Bildverarbeitung > Glättung

    In der "Konfiguration" > "Bildverarbeitung" > "Glättung"

    > Art = Linear

    > Zeit = 25 <<< Sollte das Ambilight zu hektisch wechseln, kann man das mit diesem Punkt gut abfangen, um so höher der Wert, desto ruhiger wird's

    > Aktualisierungsfrequenz = 25 <<< Damit habe ich das Flimmer und Flackern bei unterschiedlichen Bildwiedergaben vollständig in den Griff bekommen.

    > Aktualisierungsverzögerung = 2 <<< Im VDR ist die Aktualisierung eventuell schneller und im Kodi bei zB Onlinestreams minimal langsamer, daher liegt man mit 2ms recht gut im Mittelfed

    Mediacenter
    easyVDR4alpha(64-Bit) Gigabyte, Ltd. H97-HD3 mit Intel(R) G3260 @ 3.30GHz 4GB DDRx,Intelgrafik,MATSHITA BD-MLT UJ265 Bluray LW, 2TB Festplatte,LCD+IRTrans-Empfänger,2x SkystarS2 PCI


    The post was edited 2 times, last by 'gb' ().

  • Ab hier nur für NVIDIA

    Hier benötigen wir noch den angebotenen Boblight Server im Hyperion

    In der "Konfiguration" > "Netzwerk" > "Boblight Server" > "Aktiviert" auswählen

    Nun benötigen wir noch für den VDR das boblight Plugin

    Code
    1. sudo stopvdr
    2. sudo apt-get install vdr-plugin-boblight
    3. sudo startvdr

    Das Plugin muss im VDR noch aktiviert werden und der VDR benötigt einen Restart um die Aktivierung zu übernehmen.

    Jetzt modifizieren wir den Program-Changer, dazu muss unter /usr/share/easyvdr/program-changer/lib/ die Datei show-hide-menu.sh editiert werden und mit folgenden Eintrag ergänzt werden:

    HINWEIS Bitte vollständigen Inhalt durch folgenden ersetzen

    Zum Schluss muss noch der Program-Changer auf hold gesetzt werden, um nicht bei Updates die eben gemachten Einträge zu verlieren.

    Code
    1. apt-mark hold easyvdr-addon-program-changer


    Fazit: Sollten Probleme/Fragen bei diesen Tread auftreten, bitte in unserem Forum Bereich easyVDR einen gesonderten Post erstellen.

    Mediacenter
    easyVDR4alpha(64-Bit) Gigabyte, Ltd. H97-HD3 mit Intel(R) G3260 @ 3.30GHz 4GB DDRx,Intelgrafik,MATSHITA BD-MLT UJ265 Bluray LW, 2TB Festplatte,LCD+IRTrans-Empfänger,2x SkystarS2 PCI


    The post was edited 1 time, last by 'gb' ().

  • Hi

    interessantes Projekt, ohne HDMI-Splitter, HDMI-Konverter etc.
    Ich hätte da ein paar Fragen:
    1) geht das Ambilight auch beim fernsehen/Aufzeichungen ?

    2) Sollte das auch mit anderen Arduino-Platinen gehen ( ich denke da vor allem an den ESP32/ESP2866)

    3) Sehe ich das richtig das die Kommunikation von VDR zu den LEDs (welche LED, wie hell leuchtet) direkt über USB geht (via USB to seriel Konverter im FTDI Chip)


    MfG. Thomas

    VDR1: easyvdr 2.0 64 Bit & 3.5 64 Bit parallelinstallation, Core2Duo E2160 1,8GHz, 2 GB DDR2, S952 2xDVB-S2, 160 GB +GB 120GB SSD, 4*27 Info-Display

    VDR2: easyvdr 2.0 64 Bit, Pentium 4 3GHz, 512 MB, Technisat Buget-C, 160 GB + 80 GB,

  • Hi,

    Zu 1) Wieso auch? Nur darum geht es doch.

    Mfg Stefan

    Test-VDR1: HP rp5700 Fertigsystem, Core2Duo E6400, 2GB RAM, FF-SD C-2300, nvidia Slim-GT218 x1 | easyVDR 2.0 64Bit
    VDR3: in Rente

    VDR4: MSI G31M2 v2, Digitainer2-Geh., t6963c 6" gLCD, E5200, 2GB, 3TB WD Red, GT730, 2x TT S2-3200; easyVDR 3.5 64bit
    VDR5: Gigabyte
    GA-G31M-S2L, Intel E2140, Zotac GT730 passiv, Digitainer2-Geh., t6963c 6 " gLCD, 2 TB WD Red, 2x TT S2-3200 (an 1 Kabel) easyVDR 3.5 64bit
    VDR6:
    Intel E5200, GT630 passiv, F1 750 GB, t6963c gLCD, 2x TT S2-3200 | easyVDR 3.5 64bit
    VDR-User #1068
    www.easy-vdr.de

  • Hi Thomas,


    Ps: eigentlich hieß es:

    Quote

    Fazit: Sollten Probleme/Fragen bei diesen Tread auftreten, bitte in unserem Forum Bereich easyVDR einen gesonderten Post erstellen.

    Wenn ich nun hier das Projekt mit einem Erfahrungsbericht erweitern möchte, wirds unübersichtlich ;)


    interessantes Projekt, ohne HDMI-Splitter, HDMI-Konverter etc.

    Das fand ich auch, daher war der Arduino Nano für mich die beste Wahl ( dann auch noch sehr kostengünstig ). easyVDR läuft immer am TV, daher das Ambilight auch gleich darüber steuern.


    1) geht das Ambilight auch beim fernsehen/Aufzeichungen ?

    Ja, da Hyperion NG direkt auf dem Ubuntu System x11 grabbt, funktioniert das unter Kodi, Webbrowser usw gleichermaßen.

    Der einzige Unterschied zwischen Nvidia und Intel Grafik:

    Bei NVidia Grafik wird direkt im VDR das boblight Plugin zum grabben genutzt, was du bei Intelgrafik nicht brauchst.


    2) Sollte das auch mit anderen Arduino-Platinen gehen ( ich denke da vor allem an den ESP32/ESP2866)

    Theoretisch sollte das auch mit ESP32/ESP8266 gehen, da du im HyperionNG auch LED Netzwerkdevices ansteuern kannst.

    Wie das da mit dem programmieren der ESP32/ESP8266 aussieht, kann ich dir natürlich nicht sagen. Am besten mal die große Suche im Internet starten.

    3) Sehe ich das richtig das die Kommunikation von VDR zu den LEDs (welche LED, wie hell leuchtet) direkt über USB geht (via USB to seriel Konverter im FTDI Chip)

    Deine Frage ist ein wenig unglücklich gestellt ^^

    In meiner beschriebenen Konstellation, wird der FTDI Chip im FastLED Betrieb vom Arduino dafür verwendet.


    Gruß Aaron

    Mediacenter
    easyVDR4alpha(64-Bit) Gigabyte, Ltd. H97-HD3 mit Intel(R) G3260 @ 3.30GHz 4GB DDRx,Intelgrafik,MATSHITA BD-MLT UJ265 Bluray LW, 2TB Festplatte,LCD+IRTrans-Empfänger,2x SkystarS2 PCI


    The post was edited 1 time, last by 'gb' ().

  • Beitrag oben für easyVDR5 & systemd angepasst...

    Man beachte bei #3 die 2 Punkte für easyVDR5


    Gruß Aaron

    Mediacenter
    easyVDR4alpha(64-Bit) Gigabyte, Ltd. H97-HD3 mit Intel(R) G3260 @ 3.30GHz 4GB DDRx,Intelgrafik,MATSHITA BD-MLT UJ265 Bluray LW, 2TB Festplatte,LCD+IRTrans-Empfänger,2x SkystarS2 PCI


  • Übrigens, der Anschlussplan aus Post 1 war damals von mir uns bezog sich auf WS2811/WS2812 LEDs, die nur 3 Pins haben. Du verwendest hier aber WS2801, die haben 4 Pins. Ansonsten sehr schön, meine Anbilight steht in der Ecke, da ich einen neuen TV habe. Weiß noch nicht, ob ich das irgendwann wieder anbaue.

    - Client1: Thermaltake DH 102 mit 7" TouchTFT * Debian Stretch/vdr-2.4.0/graphtft/MainMenuHooks-Patch * Zotac H55-ITX WiFi * Core i3 540 * 4GB RAM ** Zotac GT630 * 1 TB System HDD * 4 GB RAM * Harmony 900 * satip-Plugin

    - Client2: Alfawise H96 Pro Plus * KODI
    - Server: Intel Pentium G3220 * DH87RL * 16GB RAM * 4x4TB 3.5" WD RED + 1x500GB 2.5" * satip-Plugin
    - SAT>IP: Inverto iLNB

  • Hi

    Übrigens, der Anschlussplan aus Post 1 war damals von mir uns bezog sich auf WS2811/WS2812 LEDs, die nur 3 Pins haben. Du verwendest hier aber WS2801, die haben 4 Pins.

    Wir fanden den Plan damals sehr gut und geradeaus gestaltet, daher habe ich ihn nicht großartig verändert. Danke nochmal dafür!


    Die restlichen Bilder sind von Helmut ( Emma53 ) und mir. Helmut hat den festen Rahmen und ich den einstellbaren gebaut.


    Bei mir läuft es nun schon gut über 2 Jahre täglich und ehrlich, ohne kann ich mir das abends nicht mehr vorstellen.

    Um die Frage vorweg abzufangen "Die LEDs verbrauchen auch im Leerlauf Strom?" ja das stimmt, daher schalte ich das Netzteil für die LEDs wahlweise mit einer Funksteckdose hinzu.


    Gruß Aaron

    Mediacenter
    easyVDR4alpha(64-Bit) Gigabyte, Ltd. H97-HD3 mit Intel(R) G3260 @ 3.30GHz 4GB DDRx,Intelgrafik,MATSHITA BD-MLT UJ265 Bluray LW, 2TB Festplatte,LCD+IRTrans-Empfänger,2x SkystarS2 PCI