RPI2 -> Arduino -> WS2801 >>> kein Flackern/ Blitzen mehr!

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Mit dem Arduino zwischen dem RPI2 und der WS2801 habe ich nun kein Flackern/ Blitzen mehr! Meine Konfiguration möchte ich hier teilen falls noch jemand das Problem hat:

    Software für Arduino FastLED: https://github.com/FastLED/FastLED

    Für WS2801 dann folgendes auf den Arduino hochladen:

    hyperion.config.json auf dem RPI2:

    Code
    "device" :
    	{
    		"name"       : "MyPi",
    		"type"       : "Adalight",
    		"output"     : "/dev/ttyUSB0",
    		"rate"     : 115200,
    		"colorOrder" : "rgb"
    	},

    Ich nutze Hyperion mit OpenELEC. Funktioniert alles perfekt, nun auch wieder über den RPI2 LAN-Anschluss. Am Arduino verwende ich Pin 11 und 13. In der hyperion.config.json ttyUSB0 eintragen und nicht wie oft zu lesen ttyAMA0 oder ttyAMC0.

    EDIT: Beitrag mehrfach editiert da ich die Lösung selber gefunden habe.

    Einmal editiert, zuletzt von cert (21. Mai 2015 um 20:36)

  • RPI2 -> Arduino -> WS2801 >>> kein Flackern/ Blitzen mehr!? Schau mal ob du hier fündig wirst!

  • Vielen Dank :) Dank deinem Post habe ich es geschafft mein Hyperion erfolgreich zum laufen zu bringen :thumbs1: . Ich muss jedoch auf einen Fehler in der von dir geposteten Config hinweisen:
    Die auskommentierte Zeile ist ungültig und muss komplett raus. Die weiter unten stehende WS2801 Zeile muss auskommentiert werden. Also anstatt

    Code
    FastLED.addLeds<WS2801, RGB>(leds, NUM_LEDS);
         // FastLED.addLeds<SM16716, RGB>(leds, NUM_LEDS);
         // FastLED.addLeds<LPD8806, RGB>(leds, NUM_LEDS);
    
    
         // FastLED.addLeds<WS2801, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);

    muss es

    Code
    // FastLED.addLeds<SM16716, RGB>(leds, NUM_LEDS);
         // FastLED.addLeds<LPD8806, RGB>(leds, NUM_LEDS);
    
    
    FastLED.addLeds<WS2801, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);

    heißen.

    Und da ich einen Plasmafernseher besitze (erzeugt wohl ein starkes elektromagnetisches Feld) habe ich zusätzlich Ferritkerne um die Datenleitung und das Netzteil-Kabel gehangen, wodurch das Flackern weniger wurde, jedoch nicht vollständig eliminiert wurde. (Im nachhinein gesehen war es vielleicht garnicht ein entscheidender Faktor..

    Was bei mir dann endgültig zum Erfolg geführt hat war die Baudrate auf 500000 zu erhöhen. :bravo2:

    Im Nachhinein gesehen bin ich mir relativ sicher dass ich mit einem 3,3V->5V Level converter (gibts für 60ct in der Bucht) und der 500000er Baudrate das selbe Ergebnis erzielt hätte, doch jetzt lasse ich es so, da ich glücklich bin dass es einfach endlich funktioniert.

    Einmal editiert, zuletzt von crackm4n (7. März 2016 um 12:25)

  • Hi,

    auch wenn der Thread schon etwas älter ist, vielen Dank für den Code.

    Ich versuche gerade vergeblich meinen Ardunio Controller mit der neusten Openelec Version zum Laufen zubringen.
    Das alte Openelec 2.0 mitboblight lief out of the box.

    Ich habe den obigen Code mit der Anmerkung darunter auf meinem Ardunio. Kompiliert problemlos und leuchtet nach dem Upload einmal in allen Farben auf unter Windows.

    Dann hyperion Config erstellt und dort unter anderem mit folgenden Einstellungen:

    Code
    "device" :
    {
    "name"       : "MyPi",
    "type"       : "adalight",
    "output"     : "/dev/ttyAMC0",
    "rate"     : 115200,
    "delayAfterConnect"     : 0,
    "colorOrder" : "rgb"
    },

    wobei ich auch ttyACM0, ttyUSB0, ttyACA0 schon probiert habe. Die Rate habe ich auch im Ardunio eingetragen.

    Wie kann ich denn herausfinden welches Output device korrekt ist?
    Per SSH konnte ich keinen Befehl finden, welcher mir diese als Liste ausspuckt. Der Ardunio wird aber in jedem Fall unter den USB Geräten gelistet

    lsusb gibt aus

    Code
    Bus 005 Device 006: ID 2341:0043 Arduino SA Uno R3 (CDC ACM)

    ls -al /dev/tty* unter anderem

    Code
    crw-rw----    1 root     dialout   166,   0 Mar 20 14:30 /dev/ttyACM0

    Leider komme ich hier nicht weiter.
    Bin für jeden Tipp Dankbar.

    mit dmesg bekomme ich nach Ab- und Anstecken des Ardunios:

    Code
    [ 3992.639679] usb 5-2: USB disconnect, device number 5
    [ 3995.599999] usb 5-2: new full-speed USB device number 6 using ohci-pci
    [ 3995.774752] cdc_acm 5-2:1.0: ttyACM0: USB ACM device


    Btw.: Ich habe Openelec auf meinem Asrock HTPC laufen, also keinem Pi, aber ich hoffe ihr könnt mir trotzdem helfen.

    Danke!

  • ok dann ist es ttyACM0

    wie oben bei dmesg beschrieben.
    Leider leuchten die LEDs weder bei Abspielen eines Filmes noch zum Test wenn ich:
    z.B.:
    /storage/hyperion/bin/hyperion-remote.sh --priority 50 --color red --duration 5000

    über Putty starte. Der Path mit /storage/hyperion/effects ist korrekt gesetzt.

  • ok, ein Fortschritt, habe einen ganz dummen Fehler gemacht, als ich den FastLED Code übernommen habe. Habe die Num of LEDs nicht von 160 auf 50 runtergesetzt.

    Jetzt leuchten die LEDs beim Start des Service und bei der Testausgabe mit

    /storage/hyperion/bin/hyperion-remote.sh --priority 50 --color red --duration 5000

    Aber in Mediacenter wenn ein Film läuft leider nicht.

    Ich starte Hyperion per autostart.sh

    Code
    /storage/hyperion/bin/hyperiond.sh /storage/.config/hyperion.config.json > /dev/null 2>&1 &

    Ich vermute hier stimmt noch etwas mit dem Grabber nicht aus der Config.

    Habe den Grabber in der Config analog zu
    https://christianmoser.me/wp-content/upl…at-16.34.22.png
    https://christianmoser.me/wp-content/upl…t-16.34.321.png
    konfiguriert.

  • Muss ich in Openelec im Kodi noch ein Hyperion Addon/Skript installieren?

    Ich hatte das so verstanden, dass es out of the box geht.

    Welche Config brauchst du?

    Einmal editiert, zuletzt von F0x123 (20. März 2016 um 18:32)

  • So, neues Update.

    In Kodi in Openelec leuchten nun die LEDs bei der Filmwiedergabe. Allerdings musste ich manuell per Zip dazu ein hyperion Kodi Script installieren, was schon älter ist. Ich dachte es solle out of the box gehen ohne dieses Plugin oder irre ich mich da?

    Auf dem Ardunio läuft folgender Code:

    Hyperion hat folgende Config für Kodi:

    Aber in der Zwischenzeit habe ich mir einen HDMI Splitter und einen USB Grabber von Easycap besorgt (mit utv007 Fushicai Chipsatz) und die Config erneut angepasst, damit nun nicht mehr Kodi, sondern das HDMI Signal genutzt wird.

    Die Config sieht daher für alle externen HDMI Signale so aus:


    Folgende Probleme habe ich aber noch bei der Nutzung für externe HDMI Quellen in der Hoffnung auf einen Tipp:

    1. Wenn Openelec abgeschaltet wird, bleiben die LEDs an. Kann man die LEDs nicht mitabschalten?
    2. Wenn der Rechner startet und kein HDMI Signal anliegt, leuchten die LEDs blau, weil der Converter wahrscheinlich ein blaues Bild sendet. Kann man das verhindern?
    3. Auch bei Deaktiviertem Smoothing,leuchten bei schwarzen Bildern (Überblenden von paar Sekunden im Film) noch alle LEDs blau und erst nach 4 Sekunden Schwarzbild gehen die LEDs aus. Alle sonstige Änderungen werden sofort in der entsprechenden Farbe umgesetzt.
    4. Kann ich in Openelec den Pfad auf /storage/hyperion/bin irgendwie einbinden, denn so muss ich immer vor einem Befehl zu hyperion oder hyperion-remote den Pfad voranstellen, damit dies ausgeführt werden kann. So geht nämlich auch die Hyperion Remote App nicht oder die Remotefunktion über das Hyperion COnfig Tool. Es kommt immer sh hyperion-remote not found. Hierzu einen Tipp?
    5. Die Borderdetection funktioniert bei mir ebenso nicht. Hat irgendwie keine Aurwirkungen, egal was ich einstelle.

    Vielen Dank für jeden Tipp!

  • 1. Da OpenELEC ein "readonly" Dateisystem ist und wie du gemerkt hast mit einigen ungeschickten Lösungen daher kommt -> Nein Lösung: Auf OSMC wechseln, da geht das ohne weiteres zutun
    2. Soweit ich weiß. Nein
    3. Das ist sehr seltsam - vllt hat jemand eine Idee. Ist jedenfalls kein Hyperion Problem.
    4. Welche Hyperion Remote App? HyperCon siehe anderer Thread. Ansonsten -> wechsel zu osmc
    5. Sollte mit Standard Werten ohne Probleme laufen. Aber vllt hat hierzu noch jemand nen Tipp

    Das Hyperion Kodi Addon ist nicht für Pis gedacht, dies hat auch keine Auswirkung auf die Erkennung. Entferne es wieder und schau was passiert.

  • Vorab, ich lasse Openelec und Hyperion auf meinem Asrock 350 Board laufen, meinen HTPC und keinem Pi, aber da bei der Suche nach Ambilight und HDMI fast nur Pi Lösungen und Foren auftauchen, habe ich hier gleich Hilfe gefunden und damit auch auf dieser Plattform das ganze einigermaßen zum Laufen gebracht. Da Out-of.the-Box Hyperion nicht mit Kodi lief, musste ich das Hyperion Kodi Addon installieren. Dann ging die LED Steuerung bei Filmen direkt aus Kodi, aber nicht im Menü. Rein aus Interesse, da ja jetzt alles aus dem HDMI Signal kommt und nicht aus Kodi, sollte dies aber so sein?

    zu 1. Also wenn man den hyperion Service mit killall abschaltet, gehen auch die LEDs aus. Also sollte man irgendwie beim Shutdown den Prozess auch erst abschalten können, damit die LEDs eben ausgehen.
    zu 2. Ich hatte gehofft eine Farbe definieren zu können, welche wenn der Grabber diese erkennt, eben die LEDs einfach aus sind.
    zu 3. Aber steuert hyperion nicht die Farbe der LEDs aufgrund des Screenshots, dass der Grabber macht? Wenn nun ein schwarzer Screenshot kommt, sollten die LEDs sofort ausgehen, was nicht passiert. Schwarze Bilder, werden mit einem seichten Blau der LEDs wiedergegeben. Ideal wäre es meiner Meinung nach, wenn die LEDs aber einfach aus blieben. Ich hätte gesagt, es liegt an der Interpretation von Schwarz, aber dann sollten die LEDs ja an bleiben und nicht nach 4 Sekunden erkennen, dass der Bildinhalt schwarz ist und auch ausgehen. Es liegt also an einer anderen Einstellung. Daherhatte ich das Nachleuchten durch Smoothing im Verdacht, aber auch wenn dies aus ist, kommt es zu diesem Effekt.
    zu 4. Ah ja Hypercon habe ich jetzt im anderen Thread gelesen. Die Android Hyperion Free App geht.
    zu 5. Was hat es mit den Modi auf sich? Classic und osd? Ich habe default probiert mit verschiedenen Schwellenwerten. Mir ist bei den Screenshots kein Unterschied aufgefallen, daher habe ich die Zonen einfach stark vergrößert, in welchen die Farbe analysiert wird. Wahrscheinlich ist dadurch aber die Helligkeit geringer, weil ja auch dunkle Bereiche in die Berechnung einfließen oder?

  • Moin,
    Hoffe das es zu diesem Thema noch interessierte Leute gibt.
    Bastel mit Unterbrechungen seit fast 1 Jahr an meinem Ambilight. Leider hat nur kurze Zeit alles perfekt funktioniert und ich scheiter momentan immer an der Kabelverbindung (gesamt ca.2m -davon ca 1m Unterputz). Meine "Ambibox" im alten Sat receiver funktioniert aber super deshalb kann ich das Projekt einfach nicht begraben und ein arduino über usb am pi ist meine letzte Hoffnung.
    Eine Frage wäre:
    Habe eine zweite ws2801 Kette hinterm Sofa für das "Surround-Licht" und diese lief normal über eine 4m kabel mit spi.
    Ginge es einen 2.Arduino für die zweite Kette quasi parallel über usb am pi/hyperion zu betreiben?
    Wäre für Hilfe sehr dankbar.

  • Danke für die Antwort,
    Witzigerweise hat alles für ca 1 Monat mit diesen Kabellängen funktioniert...
    Mit forwarder allein konnte ich jetzt noch nix anfangen (bin wahrscheinlich noch zu doof - arbeite aber dran;) ).
    Bin gestern noch durch Zufall hier drüber gestolpert:
    Tutorial: ESP8266/ESP32 Addon (Wifi LED Controller UDP)
    Mir fehlte leider bisher die Zeit zur Recherche aber hörte sich beim überfliegen ganz gut an.
    Das Ding hab ich einfach mal aufgrund des schmalen Preis blind bestellt. Werd am WE erstmal nen versuchsaufbau mit einem Arduino starten und dann weiter sehen...

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!