Arduino Boblight Sketch --> Verlorene Bytes

  • Ich habe einen Sketch, der gerade mit 150 Kanälen (50 RGB-LEDs) fehlerfrei läuft. Baudrate im Moment auf 115200.


    Ich teste das ganze jetzt nochmal auf die Grenzen, räume den Code bis morgen früh noch auf und poste das dann mal hier oder auf Github.


    Edit: Mit 500000 als Baudrate hat es dann schon wieder leichte Aussetzer, das kann man Dank des Tipps von wirbel jetzt direkt am Arduino erkennen. (Flackernde LED)


    Edit2: Mit 460800 ist es stabil.
    Edit3: Wenn man dann wirklich Last draufgibt mit boblight-X11 ist 460800 auch zu schnell.

  • Ich bin jetzt endgültig frustriert. Das haut bei höheren LED Anzahlen wieder nicht sauber hin.



    Hier der Code. Ich will jetzt nicht mehr aufräumen...


    Prefix ist übrigens A1 und Postfix 1A
    Das synchronisiert sich recht schnell und läuft dann problemlos. Ich wollte das Überprüfen der Chars einsparen.
    So wie es aussieht kann man sich das Warten auf den 64Byte Serial Buffer auch sparen, indem man einfach sagt ließ mir mal 150 Bytes mit Serial.readBytes


    Mein Ansatz ist es möglichst wenig zu tun. Irgendwie befürchte ich, dass das digitalWrite Zeug immernoch zu viel Overhead verursacht.


    Edit: Mit Last meine ich mehr als das periodische "Schwarz" vom BoblightD. Also schon eine aktives Boblight-X11 mit 60Frames/s
    Edit2: Und ich habe in meinem Sketch jetzt auch ein Flackern. Das ist so auch alles andere als optimal.

  • Hast du eventuell noch einen FTDI USB2Serial Konverter herumliegen, den du für einen Kreuztest statt dem in dem µC des Arduino Uno eingebauten Konverter an den entsprechenden Pins nutzen kannst?


    Ich habe gerade noch diesem Beitrag von TheChief wiedergefunden, demnach war bei seinen Versuchen der eingebaute Konverter des Arduino Uno zu langsam, wenn man die Bytes über die Serielle Verbindung überträgt: [Projekt] Arduatmo - Ambilight auf Arduino-Basis

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Der Arduino Nano ist wohl der einzige Arduino, der noch mit FTDI daherkommt. Kostet aber auch 40€ http://www.reichelt.de/ARDUINO…index.html?ARTICLE=142943


    chriszero: Welchen Arduino hast du?
    TheChief: Sag mal ehrlich. Der Arduino Uno ist nicht wirklich geeignet, oder? Muss ich wohl zum Nano greifen.


    Edit: Alternativplan: http://www.ebay.de/itm/221586369391
    Scheint ein Nachbau des Original Duemilanove zu sein. Einige hier im Portal scheinen damit zufrieden zu sein.


    Bräuchte da jetzt nur noch ein "Go", dass es tatsächlich am USB Wandler des Uno liegt.

  • Habe einen Pro Mini mit extra FTDI kabel.
    Nimm doch einen Arduino pro mini, kost ca 10€. Da habe ich auch immer ein paar davon rumliegen. Das teuerste ICT das FTDI kabel, mit echtem FTDI Chip, Keine Kopie.
    Oder du nimmt einen Teensy 3.1 der hat das alles onboard und ist rattenschnell ;)

  • TheChief: Sag mal ehrlich. Der Arduino Uno ist nicht wirklich geeignet, oder? Muss ich wohl zum Nano greifen.


    Den UNO selbst hatte ich nie probiert. Meine Ergebnisse berufen sich auf den Arduino Leonardo. Aber SvenF hatte wohl einen. Und da das Orginale SeduBoard damals auch einen FTDI Chip hatte, hatte ich es dann damit probiert und ich hatte keine Probleme mehr mit zu langesamen Frameraten.


    Ich hatte mal angefangen, mit libusb(_bulk_tranfer) zum Leonardo zu schreiben, damit ging es dann auch flott...habs aber nicht weiter verfolgt.

    - 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

  • Ich versuche mal den USB als HID oder CDC device direkt zu verwenden. Selbst wenn nur die 12mbit vom USB1.1 verwendet werden langt das ja ewig. Als das immer vorher zu Serial umzubiegen.
    Da ist bestimmt immer eine Software emulation mit am werkeln.
    Boblight kann ja direkt USB Geräte ansprechen, von daher.

  • Zum SainSmart Duemilanove: [Projekt] Arduatmo - Ambilight auf Arduino-Basis
    Ist wohl nicht so der Hit.


    Ich kann doch einfach an den vorhandenen Arduino Uno einen Adapter mit FTDI klemmen, oder? RX und TX sind ja leicht erreichbar auf Pin 0 und 1 rausgelegt.
    Ist das hier das richtige Kabel? http://www.reichelt.de/index.html?ARTICLE=120573


    Wie funktioniert USB bei den "neuen" Arduinos eigentlich? Ist das "in Hardware" oder eine Softwareemulation?

    Da sitzt noch ein ATMega 16U2 drauf, der mit einer Firmware versehen ist, die USB emuliert.

  • Es konnte jetzt doch ein FTDI vorübergehend organisiert werden.
    Das sieht soweit auch ganz gut aus. Allerdings muss hier: Arduino Boblight Sketch --> Verlorene Bytes
    In der zweiten Zeile das "-1" weg. Sonst kommen wir genau 3 Bytes zu früh an für den Prefix.


    Boblight aktualisiert bei mir im Leerlauf 100 mal die Sekunde. Das funktioniert auch.
    Schalte ich aber boblight-X11 zu verschwinden wieder Bytes.


    Kannst du mal folgendes probieren?

  • Als Adalight Device. Die Config habe ich mit dem beiliegenden Java Tool erstellt. Ist eingentlich ziemlich straight-forward, wenn es mal kompiliert ist.


    Ich muss aber zwangsläufig über den FTDI gehen. Ich bin mittlerweile soweit, dass der onboard USB-Seriell Wandler irgendwann einfach dicht macht.
    Nimmt dann einfach gar keine Daten mehr an. Keine Ahnung. Vielleicht habe ich den jetzt kaputt gemacht.



    Habe gerade den in Hyperion eingebauten "Knight Rider" Effekt laufen und das läuft flüssig.

Jetzt mitmachen!

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