[Projekt] Arduatmo - Ambilight auf Arduino-Basis

  • Hallo, ja hab so eines bestellt (wurde aber scheinbar auch noch nicht versendet :( ).
    Im Idealfall hat das einen FTDI-chip drauf und ich kann es gleich nutzen. Da bekommt das, welches ich aus China bestellt habe, mein Kollege (der bekommt meinen alten VDR und will dann auch einen Ambilight-Nachbau). Sollte es keinen FTDI-Chip besitzen, baue ich mir aus den restlichen LEDs einfach ne schöne Farbwechsellampe oder Schrankhintergrundbeleuchtung. Die würde ja ohne PC-Verbindung laufen (einfach Drehwiederstände für die Steuerung ran).
    Im ungünstigsten Fall muss ich eben nur ein wenig warten.


    Ich denke aufgrund des großen Wandabstandes (unter 30cm wird das nicht werden, da ich den TV oft aufgrund unterschiedlicher Sitzpositionen schwenken muss) und des sehr schmalen Rahmens (ist nur 1cm vom Rand bis zum Bild) werde ich wohl so 5cm rein rücken und dann leicht nach außen drehen. Ich denke aufgrund der großen Abstrahlwinkels (120°) wird der Lichtkegel auf der Wand groß genug werden. So bleibt auch wenigstens noch etwas Platz zum Anfassen beim schwenken des TVs. Die 16mm Rohre hab ich schon gekauft. Leider gab es die nur in dem grau.


    Kann ich die LEDs auch ohne Arduino irgendwie testen? Das Netzteil und die LEDs sind ja schon da. Ich habe nur getestet ob Masse und 2 von der ersten bis zur letzten LED durchgängig Kontakt haben (nicht das der LED-Streifen irgendwo keinen Kontakt hat).


    Tschau, Uwe.

    Gigabyte GA-Z77-D3H; I3-3220; 4GB 1600MHz DDR3; Technotrend S2-4100 + Technotrend Budget + Nova-HD-S2;
    passive geForce GT620 1GB; WD RED 2TB; LG DVD-DL Brenner; Debian Jessie mit VDR 2.2.0 + SoftHDDevice + KODI

  • Nein, ohne Daten kann man die nicht Testen. Ein anderes Arduino hast Du nicht da (mit 16 Mhz)?


    Ich versuche gerade, ein Testprogramm mit libusb zu programmieren. Eventuell funktioniert das ganze dann auch mit Arduinos ohne FTDI. Anscheinend kann man mit USB Bulk Transfers höhere Geschwindigkeiten erreichen.

    - 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

  • Hallo,
    leider hab ich das wichtigste (das Arduino) noch nicht. Alles andere ist schon da. So ganz ohne Test wie die LEDs abstrahlen ist die Entscheidung wo ich die Rohre für die LEDs anbringe nicht gerade leicht. Kannst du vielleicht ein Bild machen wo den TV vor der Wand steht und ein paar LEDs leuchten?


    Wie erstelle ich denn eigentlich dann die Konfiguration für das XBMC-Boblight-Plugin (und was benötigt das denn alles)? Klappe das Wechseln zwischen VDR und XBMC zuverlässig?


    Tschau, Uwe.

    Gigabyte GA-Z77-D3H; I3-3220; 4GB 1600MHz DDR3; Technotrend S2-4100 + Technotrend Budget + Nova-HD-S2;
    passive geForce GT620 1GB; WD RED 2TB; LG DVD-DL Brenner; Debian Jessie mit VDR 2.2.0 + SoftHDDevice + KODI

  • Erhlich gesagt, mit meinem neuen Setup hab ich XBMC noch garnicht probiert. Mit dem SEDU Board habe ich damals dieses Tutorial benutzt. Da muss man dann sicher noch Anpassungen an der Config für das TPM2 Protokoll vornehmen. CKone kann da bestimmt was dazu sagen.


    Das wechseln klappt ohne Probleme. Musst halt das VDR Frontend beenden und vorsichtshalber noch ein "svdrpsend PLUG seduatmo MODE detach" aufrufen und danach boblight starten sowie XBMC.

    - 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

  • Wenn dies ignoriert wird, was für eine Baudrate hast du dann ?

    Es geht da um den Arduino Micro mit 32u4. Die Serial::begin Funktion ist in CDC.cpp recht übersichtlich:

    Code
    void Serial_::begin(uint16_t baud_count){}

    Bei den "echten" seriellen Ports sieht das natürlich anders aus.


    Ich habe einen ISP MK2 Programmer. Sollte auch JTAG fähig sein.
    Kann man damit z.b Breakpoints setzen um den Wert der Variablen des C++ Codes auszuwerten ?
    Das wäre natürlich genial.

    JTAG programmieren und JTAG debuggen sind ein großer Unterschied. Mit JTAGICE kannst du sogar Breakpoints in Interrupt Routinen setzen und dir die Hardware Register anzeigen lassen. AtmelStudio basiert jetzt ja auf Microsoft Visual Studio, was bedeutet, dass du deine C-Variablen alle anschauen kannst. Auch der Assembler Code kann angeschaut und durchgestept werden. Ohne diese Hilfe hätte ich den unten beschriebenen Umbau der IR-Software nie hinbekommen.


    Geht dann wohl nur im AVR Studio.

    Jepp.


    Ich habe die letzten Tage fleißig programmiert und versucht IR-Decodierung während der USB-Dateiübertragung hin zu bekommen. Mein bisheriger IR-Code hat den IR-Eingang dazu mehrere 10000 mal pro Sekunde timergesteuert gepollt und die Pulsbreiten aufgezeichnet. Allein funktioniert das super, aber während der USB-Übertragung kommt eine Vielzahl der Timerinterrupts nicht mehr durch, weil der USB Teil mit dem Abholen der Daten beschäftigt ist und währenddessen Interrupts sperrt. Damit konnte kein IR-Code mehr sicher erkannt werden. Durch verkleinern des USB-Empfangspuffers auf 16 konnten zwar ab und zu IR-Codes erkannt werden, aber gleichzeitig ging die Datenrate auf ein Drittel bis Viertel zurück.
    Also habe ich die Pulsbreitenerkennung komplett interruptbasiert umgeschrieben. Es wird jetzt die Flankenerkennung eines 16Bit-Timers genutzt. Dadurch werden Flankenwechsel auch während gesperrter Interrupts sicher erkannt und können zeitversetzt aufgezeichnet werden. Die Analyse der aufgezeichneten IR-Signale erfolgt dann in Loop. Heraus kommen drei Bytes Typ, Adresse, Kommando. Die schreibe ich mit 10 Tastendrücken formatiert auf die USB-Tastaturschnittstelle.


    So kann ich nun während die Dateiübertragung mit immerhin noch 21KB/s (bis 28KB/s ohne IR Dauerfeuer) in HTerm läuft, die 8-9 IR-Codes pro Sekunde meiner Fernbedienung über die USB-Tastaturschnittstelle in ein Editorfenster übertragen. Ohne einen einzigen Fehler. :D


    Bin mal gespannt, wie sich das Ganze dann mit den LEDs verhält.


    Tschüß Frank

  • Hallo TheChief,
    ich habe gerade ne Mail von dem eBay Händler bekommen. Auf dem Arduino Board wäre ein FT232RL Chip. Das dürfte doch der richtige sein, oder?
    Die normale Lieferzeit läge bei ca. 3-5 Tagen. Scheint also ne gute Alternative zu der Bestellung über AliExpress zu sein. Ist zwar knapp 7€ teurer, dafür aber wohl viel schneller da (und man braucht keine Visa Karte).
    Ich melde mich noch mal wenn das Board angekommen ist.


    Tschau, Uwe.

    Gigabyte GA-Z77-D3H; I3-3220; 4GB 1600MHz DDR3; Technotrend S2-4100 + Technotrend Budget + Nova-HD-S2;
    passive geForce GT620 1GB; WD RED 2TB; LG DVD-DL Brenner; Debian Jessie mit VDR 2.2.0 + SoftHDDevice + KODI

  • Ja, das sollte passen, hab ich auch drauf.


    Bin schon mit libusb weiter. Kann zumindest schon mal eine Farbe senden.

    - 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

  • Krass, per libusb-1.0 bekomme ich sogar auf meinem Leonardo mit 113 WS2801 100FPS!!!! :wow Das verheiraten mit dem seduatmo-Plugin muss aber horchi übernehmen, also Geduld. :D

    - 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,
    Ich versuche mich kurz zu fassen, da ich den Thread nicht unnötig verunreinigen will, aber das Thema interessiert mich halt.

    Ohne diese Hilfe hätte ich den unten beschriebenen Umbau der IR-Software nie hinbekommen.

    Wenn du das als Berufs Informatiker schon sagst....bin zwar schon länger dabei, damals habe mit einem 8051 Compuboard angefangen. Aber alles nur Hobby.
    Deine Beschreibung mit den Breakpoint usw. das wäre dann quasi so wie beim Entwickeln einer Win Anwendung z.b mit Delphi.


    Also dazu braucht es ein JTAGICE mkII, leider nicht ganz billig. Es gibt Nachbauten davon, taugen die was ? Antwort evtl. via PN.


    Also habe ich die Pulsbreitenerkennung komplett interruptbasiert umgeschrieben. Es wird jetzt die Flankenerkennung eines 16Bit-Timers genutzt

    Dies ist ein geniales Features, habe ich auch schon mal genutzt - kannst bestimmen ob der Capture bei einer fallenden oder steigenden Flanke gemacht wird.
    Aber du must doch trotzdem die Timer2 Counter/Capture Register zeitnah auslesen, da beim nächsten Event die Werte verloren gehen.




    Grüße Rudi


    PS: Ich glaube wir brauchen ein Arduino/Atmel Laber Thread.

    VDR 1 (SD) : ASRock A330 GC, 1 GB RAM, TT- FF Karte rev. 2.3, 7'' TFT, Lirc X10 - Selbstbau Gehäuse - Suse 11.3 (64) vdr-1.7.10 diverse Plugins
    VDR 2 (HD) : MSI G41M-P25, 2 GB RAM, E6700 2x3.20GHz, Gainward GT220, 2TB HD, Lirc X10, TT S2-3600 USB, TT S2-1600, - Suse 11.3 (64) NvidiaTreiber 260.19 vdr-1.7.18 - xineliboutplugin 1.0.90 cvs, xine-lib 1.1.90 , s2-liplianin DVB Treiber

  • Also dazu braucht es ein JTAGICE mkII, leider nicht ganz billig. Es gibt Nachbauten davon, taugen die was ?

    Der neue Dragon für 50EUR scheint auch zu gehen. Komisch, früher konnten die nur bis zu 32KB große Controller.


    Dies ist ein geniales Features, habe ich auch schon mal genutzt - kannst bestimmen ob der Capture bei einer fallenden oder steigenden Flanke gemacht wird.
    Aber du must doch trotzdem die Timer2 Counter/Capture Register zeitnah auslesen, da beim nächsten Event die Werte verloren gehen.

    Bei RC5 hat man bis zu 890us und bei NEC bis zu 560us Zeit. So lange sollten Interrupts nicht gesperrt sein.


    PS: Ich glaube wir brauchen ein Arduino/Atmel Laber Thread.

    Mach doch!


    Tschüß Frank

  • Macht mal, da hab ich dann sicher auch noch die eine oder andere Frage ;)

    - 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

  • Macht mal, da hab ich dann sicher auch noch die eine oder andere Frage ;)

    So ist es, ich hätte da auch schon eine Frage parat zum Dragon :]


    Nur welcher Rubrik soll ich den neuen Thread erstellen, Developer C/C++ Scripten ?

    VDR 1 (SD) : ASRock A330 GC, 1 GB RAM, TT- FF Karte rev. 2.3, 7'' TFT, Lirc X10 - Selbstbau Gehäuse - Suse 11.3 (64) vdr-1.7.10 diverse Plugins
    VDR 2 (HD) : MSI G41M-P25, 2 GB RAM, E6700 2x3.20GHz, Gainward GT220, 2TB HD, Lirc X10, TT S2-3600 USB, TT S2-1600, - Suse 11.3 (64) NvidiaTreiber 260.19 vdr-1.7.18 - xineliboutplugin 1.0.90 cvs, xine-lib 1.1.90 , s2-liplianin DVB Treiber

  • Hallo,
    ich habe gestern Abend die 4 LED-Leisten fertig gelötet. Da ich leider noch keinen Arduino habe kann ich diese aber noch nicht testen.
    Ich konnte es mir aber nicht verkneifen die Leisten mal ans Netzteil anzuschließen. Ist es normal das die LEDs dabei ganz kurz aufleuchten? Interessanterweise leuchten aber alle LEDs unterschiedlich.
    Die 1'te Leiste (unten) leuchten fast komplett weis, die 2'te (links) in weis und rot, bei der 3'te (oben) leuchten nur ein paar LEDs in rot und grün und bei der 4'ten (rechts) leichten nur so 3-4 LEDs in rot.
    Wenn ich die Reihenfolge der Leisten ändere oder welche weg lassen, ändert sich sowohl die Anzahl als auch die Farbe der LEDs welche kurz leuchten.


    Das Netzteil ist am Anfang der 1'ten und am Ende der 4'ten Leiste angeschlossen (mangels Kabel fehlt noch der Anschluss zwischen 2'ter und 3'ter). Die beiden Kontakte die mal zum Arduino gehen sind nirgends angeschlossen. Interessant ist auch das wenn ich die Spannung zwischen den beiden Kontakten für den Arduino messe manchmal die erste LED beginnt dauerhaft in grün oder gelb zu leuchten.


    Hoffentlich kommt morgen das Arduino Board, dann kann ich endlich richtig testen.


    TheChief: Kannst du mal die Änderungen für das SeduAtmo-Plugin hier einstellen? Im GIT ist bisher noch nichts davon angekommen.


    Tschau, Uwe.

    Gigabyte GA-Z77-D3H; I3-3220; 4GB 1600MHz DDR3; Technotrend S2-4100 + Technotrend Budget + Nova-HD-S2;
    passive geForce GT620 1GB; WD RED 2TB; LG DVD-DL Brenner; Debian Jessie mit VDR 2.2.0 + SoftHDDevice + KODI

  • Klingt alles normal, was Du beschreibst. Das PDF im ersten Thread muss ich nochmal korrigieren. Vom Arduino zur Strippe brauchts nur DIN und GND. Das Arduino wird über USB versorgt.


    Bin die nächsten Tage nicht zu Hause und hab den Patch nicht hier. Effekte kannst Du aber per Kommandozeile schalten. Mehr kann der Patch momentan auch nicht, außer die Effekte über das OSD schalten. Ansonsten funktioniert auch alles ohne den Patch.


    Netzteil hab ich übrigens auch nur am Anfang und Ende angeschlossen, bisher keine Probleme.


    Grüsse
    TheChief

    - 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

  • Hier mal ein aktueller Zwischenstand.


    Verwendete Teile:
    -4 30cm Molex Verlängerungen (1 pro Leiste)
    -1 kurze Molex Verlängerung mit Lüfterkabel
    -1 Molex Y-Kabel
    -1 männl. Molex Stecker (damit der 2'te Stromanschluss steckbar bleibt)
    -1 30cm Lüfterverlängerung (hier kommt der Arduino ran)
    -2x2m 16mm Elektrorohre (ca. 80ct pro Rohr)
    -10-20 Kabelbinder mit klebbarem Sockel
    -2m rotes und schwarzes 1mm² Kabel (für den 2'ten Stromanschluss)


    Tschau, Uwe.

  • Sauber, so siehts bei mir in etwa auch aus. :) :tup

    - 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

  • Hallo,
    das Ambilight läuft jetzt mit dem SeduAtmo-Plugin. Wie macht man denn da am besten einen Weißabgleich? Die Farben passen noch nicht so recht.


    Mit Boblight und XBMC hab ich aber noch so meine Probleme. Ansich funktioniert es, aber die Farben sind viel zu intensiv. Schon bei einem ganz leichten Farbton im Bild leuchtet das Ambilight an der Stelle schon sehr auf (z.b. bei dunkelblauen Bereichen im Bild leuchtet das Ambilight schon komplett in Hellblau. Richtig stabil läuft das Plugin auch nicht. Gerade eben hat sich das Boblightd komplett aufgehängt, so das ich den Rechner neu starten musste. Beim Stoppen eines Film bleiben auch ganz oft (nicht immer) die letzten LEDs an. Könnte das an einer fehlerhaften Config liegen?


    Anbei mal der Header der zur Zeit verwendeten boblight.conf




    Tschau, Uwe.

    Gigabyte GA-Z77-D3H; I3-3220; 4GB 1600MHz DDR3; Technotrend S2-4100 + Technotrend Budget + Nova-HD-S2;
    passive geForce GT620 1GB; WD RED 2TB; LG DVD-DL Brenner; Debian Jessie mit VDR 2.2.0 + SoftHDDevice + KODI

  • Bin grad nicht zu Hause und hab meine Config nicht hier. Hatte aber meine Werte schon mal gepostet für das seduatmo-Plugin. Muss da aber auch nochmal drüber schauen.


    Was mich bei der boblight-config wunder:


    Code
    prefix  C9DA0270


    Müsste das nicht nur


    Code
    prefix  C9DA


    heissen? denn nach C9DA kommen zwei Bytes für die Datenmenge und danach die Daten. Oder sind die 02 70 die Anzahl der LEDs fix in der Config? Könnte auch sein. Ansonten auch da mal mit gamma und adjust spielen.

    - 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

  • Hallo,
    0270 ist die LED-Anzahl mal 3 als Hex-Wert.
    Ohne das hat das Boblight nicht funktioniert. Scheinbar sendet das die Werte nicht automatisch.
    Die Gamma-Werte liegen bei 0.9-1, da ich die Config mit dem BobLightConfigTool (für Windows) erstellt habe.
    Tschau, Uwe.

    Gigabyte GA-Z77-D3H; I3-3220; 4GB 1600MHz DDR3; Technotrend S2-4100 + Technotrend Budget + Nova-HD-S2;
    passive geForce GT620 1GB; WD RED 2TB; LG DVD-DL Brenner; Debian Jessie mit VDR 2.2.0 + SoftHDDevice + KODI

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!