Neuer Arduino Sketch "Werbeanzeiger" verhindert endlich das Einfrieren

Antworten
Benutzeravatar
raily74 Verified
MLL-TEAM
MLL-TEAM
Beiträge: 562
Registriert: Di 8. Apr 2025, 20:48
Wohnort: Kassel (LK)
Hat sich bedankt: 1051 mal
Wurde bedankt: 2472 mal
Kontaktdaten:

Neuer Arduino Sketch "Werbeanzeiger" verhindert endlich das Einfrieren

#1

Beitrag von raily74 Verified »

Hallo ihr lieben Werbefachleute,

das Ganze war bisher nicht wirklich zufriedenstellend für mich. Von einfrierenden Displays über nicht unterstützte Formate, SD-Karten und Betriebssysteme habe ich seit Veröffentlichung der Platine eigentlich nur Ärger gehabt. Dabei meine ich nicht nur euer Feedback. Dieselben Fehler, die ihr beobachtet habt, sind auch bei mir aufgetreten.

Nun muss ich zu meiner Verteidigung sagen, dass ich auf den Sketch überhaupt keinen Einfluss hatte, weil ich bisher nicht in der Lage war, so etwas zu schreiben. Ich habe lediglich die dazugehörige Platine gestaltet und habe mit Hilfe des Arduino-Forums die Unterstützung mehrerer Displays ergänzt. Umso ärgerlicher war es für mich, dass der Sketch einfach nicht zuverlässig mit allen Bildern laufen wollte, da ich bei auftretenden Fehlern selbst in der Luft hing.

Doch auch ich lerne dazu. Die Python-App zur Eingabe der Zugziele ist überwiegend mit der Hilfe von ChatGPT entstanden. Warum also nicht einfach einen neuen und hoffentlich zuverlässigen Sketch für den Werbemonitor auf dem selben Weg kreieren? Wenn man einigermaßen versteht, was da so im Sketch steht, kann man auch ganz gut mit ChatGPT interagieren, um zu einem vernünftigen Ergebnis zu kommen.
Also habe ich den Sketch heute zur Überprüfung an Microsoft Copilot übergeben und war eigentlich nicht überrascht, dass er fast alles verworfen hat. Vom ursprünglichen Sketch ist nicht wirklich viel übrig geblieben. Eigentlich nur der Teil, den die Jungs im Arduino Forum geschrieben haben und Jürgens "Wenn/Dann-Abfrage" für die drei unterschiedlichen Display-Typen. Alles andere ist Geschichte.

Um die Neuauflage zu prüfen, habe ich nun bewusst die SD-Karte mit dem Mac mit neuen Dateien bespielt. Darunter befindet sich neben neu überarbeiteter Bilder auch ein PNG, das da eigentlich gar nicht liegen dürfte. Zudem habe ich einige Dateien hinzugefügt, die bei Rüdiger zu Abstürzen führten. Das Ganze läuft jetzt seit 90 Minuten fehlerfrei. Auch bei Rüdiger läuft es bereits fehlerfrei (hier hing es ständig).

Der serielle Monitor informiert ständig über die übersprungenen Dateien und aufgetretenen Fehler.
So sieht man im folgenden Screenshot sowohl die ungültige PNG-Datei "CONTIN~5.PNG" sowie die dazugehörige versteckte Datei aus dem macOS Filesystem ("_CONTI~7.PNG").
Im Folgenden lädt der Sketch folgerichtig das BMP-File "CONTIN~8.BMP" nachdem er es auf alle technischen Parameter überprüft hat und überspringt dann dessen zugehörige versteckte Datei "_CONT~10.BMP".

2026-03-04_21h01_45.png
Ich zitiere an der Stelle mal wieder den Helden meiner Kindheit: Ich liebe es, wenn ein Plan funktioniert (Hannibal Smith)
Wobei es im englischen irgendwie besser zum Titel der Serie gepasst hat: I love it when A plan comes together


Hier ein Auszug der Änderungen aus dem Sketch:

Bugfix "Einfrieren" behoben
Ursachen fuer das Einfrieren wurden beim ueberpruefen des alten Sketchs in folgenden Teilen gefunden
  • die Zentrierung erzeugt negative Werte, wenn die Bilder breiter als 80px sind
  • die Laenge der Dateinamen ist auf 15 beschraenkt
  • unterschiedliche Schreibweise BMP, bmp, Bmp ist fehleranfaellig
  • ⁠fehlende Pruefung ungueltiger BMP-Dateien
  • versteckte Dateien anderer Betriebssysteme (z. B. macOS)
  • Pin 10 nicht auf High gesetzt
  • while (!Serial) { } blockiert
Da all diese Teile potentielle Ursachen fuer das Einfrieren sind, wurde der komplette Sketch verworfen und neu geschrieben.
  • Bilder werden nun links oben ausgerichtet, da die Zentrierung nicht mit jeder Hardware zuverlaessig laeuft.
    Bilder sind im Grafikprogramm auf die entsprechenden Groeßen auszuschneiden (80x160px fuer 0,96"; 128x160px fuer 1,8")
  • die Laenge der Dateinamen wurde auf 63 Zeichen erhoeht
  • unterschiedliche Schreibweisen der Dateiendung werden geprueft und in allen Formen akzeptiert
  • Der Sketch verfuegt ueber eine neue Komponente, die die BMP-Dateien auf Richtigkeit prueft (Windows-BMP, 24 bit)
    Entspricht die Datei nicht den Vorgaben, wird sie ignoriert.
    JPG oder PNG-Dateien duerfen auf der SD-Karte gespeichert sein. Sie werden nicht gelesen.
  • versteckte Dateien, die z. B. von macOS geschrieben werden, filtert der Sketch ebenso aus
  • alle Pins werden im Sketch auf High gesetzt, unabhaengig von der Nutzung als Display-Ausgang
  • Arduino-Typ wird abgefragt
Neue Funktion "Rotation"
bisher gab es nur zwei Zustaende in der Rotation > 0 und 2
Bei unguenstiger Einbaulage fehlten die anderen beiden Zustaende
> nun kann man die Drehung in Grad angeben (0, 90, 180 oder 270)
> Portrait und Landscape ermittelt der Sketch nun automatisch aus der Rotation

Verbesserte Uebersichtlichkeit
Alle Funktionen verfuegen nun ueber geeignete Headlines (Dank an ChatGPT)

Neue Serial Prints
Die BMP-Pruefung gibt die Ergebnisse klar definiert am seriellen Monitor aus.
Auch wenn die Dateien uebersprungen werden, so kann man hier sehen, was falsch gemacht wurde.

Den neuen Sketch findet ihr wie gewohnt in meinem Github: https://github.com/raily74/MobaLedLib/b ... onitor.zip

Probiert es bitte aus und gebt mir fleißig Bescheid!

Viele Grüße, Michael

Das 3-Generationen-Projekt | H0-Epoche V Anlage im Bau ─ YouTube MLL | Erwecke deine Modellbahn zum Leben
Neu! Die MLL-Suche | Teste sie jetzt! Du wirst begeistert sein.MobaLedLib Wiki | Alle Lösungen zentral an einem Ort
Benutzeravatar
Nohabfan1106 Verified
Anonymer Lichttechniker
Beiträge: 95
Registriert: Di 15. Apr 2025, 14:42
Wohnort: BW
Hat sich bedankt: 946 mal
Wurde bedankt: 154 mal

Re: Neuer Arduino Sketch "Werbeanzeiger" verhindert endlich das Einfrieren

#2

Beitrag von Nohabfan1106 Verified »

Hallo Michael,
da hast du aber ganz schön gearbeitet!
Da war sicher nicht in 1h fertig.
Danke für deine Hartnäckigkeit! 8-)

Frage:
Arbeitest du mit MLL auf einem Mac?
Funktioniert das gut?

Ich Frage, weil mir jeden Tag mit win11 mehr Haare ausfallen und ....... ganz so viele hab ich nicht mehr! :h2w:

Bin schon sehr gespannt auf deine Antwort.

Grüße
Wolfgang


Windigipet Premium 2021, Tams mc² V2-9A zum Fahren, Schalten und S88 rückmelden, PowerSplitter mit 3 Boosterbereichen, Märklin C-Gleis (3L) und Tillig Elite Gleis (2L f. StraBa), MLL im Aufbau (Anfänger)
Benutzeravatar
raily74 Verified
MLL-TEAM
MLL-TEAM
Beiträge: 562
Registriert: Di 8. Apr 2025, 20:48
Wohnort: Kassel (LK)
Hat sich bedankt: 1051 mal
Wurde bedankt: 2472 mal
Kontaktdaten:

Re: Neuer Arduino Sketch "Werbeanzeiger" verhindert endlich das Einfrieren

#3

Beitrag von raily74 Verified »

Hallo Wolfgang,

so lang hat es nicht gedauert. Dank der Unterstützung durch ChatGPT war der Sketch in knapp einer Stunde fertig. Ist ja zum Glück nicht so viel dran. Der Beitrag hier im Forum war mehr Arbeit als der Sketch. Aber es war ja nicht ganz uneigennützig. Ich wollte ja auch, dass es endlich läuft.

Nun kurz zum Mac. Den nutze ich nur produktiv im Büro. An der Modellbahn arbeite ich auch unter Windows 11, in der Werkstatt sogar noch Windows 10.

Ich nutze beide Systeme seit über 30 Jahren parallel und jedes hat seine Vor- und Nachteile. So möchte ich die Benutzeroberfläche und das Handling unter macOS ebensowenig vermissen wie die Vielfältigkeit eines Windows Betriebssystems.

Eigentlich sollte im Keller auch ein ausgedienter Mac mini einziehen. Doch da sich macOS bis heute weigert, Touchscreens zu unterstützen und zudem viele Tools nur für Windows programmiert werden (Z21 Maintenance, LokMaus-Updater, ESU LokProgrammer, Zimo Updater,…), habe ich mich aus Kompatibilitätsgründen für Windows entschieden, was letztendlich auch der MobaLedLib zuträglich war.

Viele Grüße, Michael

Das 3-Generationen-Projekt | H0-Epoche V Anlage im Bau ─ YouTube MLL | Erwecke deine Modellbahn zum Leben
Neu! Die MLL-Suche | Teste sie jetzt! Du wirst begeistert sein.MobaLedLib Wiki | Alle Lösungen zentral an einem Ort
Benutzeravatar
Nohabfan1106 Verified
Anonymer Lichttechniker
Beiträge: 95
Registriert: Di 15. Apr 2025, 14:42
Wohnort: BW
Hat sich bedankt: 946 mal
Wurde bedankt: 154 mal

Re: Neuer Arduino Sketch "Werbeanzeiger" verhindert endlich das Einfrieren

#4

Beitrag von Nohabfan1106 Verified »

Hallo Michael,
ich habe es befürchtet. :crazy:
So ähnlich wird es mir auch bald gehen.
Mac und Win11. :h2w:
Mein Windigipet, der ESU Lokprogrammer und auch MobaLedLib benötigen Win11.
Aber für alles andere will ich mir das nicht mehr antun.
Danke für deine klare Antwort. Das hilft mir, meine Umgebung entsprechend zu planen. 8-)

Ja, die AI kann schon gute Dienste leisten.
Ich hatte 2 Tage zu tun, bis sich mein Laptop wieder mit seinen USB Anschlüssen (Intel Treiberproblem) und mit seiner Grafikkarte (Nvidia Treiberproblem) verständigte. Win11 hatte die Verbindung gekappt und ohne tiefe Eingriffe war nichts zu machen. 2 volle Tage!

Aber ich will den Chat nicht umbiegen.

Danke, dass du so zielstrebig an dem Werbeanzeiger Problem weitergebohrt hast.

Der kann vielleicht auch bei mir noch "einziehen". ;)

Grüße
Wolfgang


Windigipet Premium 2021, Tams mc² V2-9A zum Fahren, Schalten und S88 rückmelden, PowerSplitter mit 3 Boosterbereichen, Märklin C-Gleis (3L) und Tillig Elite Gleis (2L f. StraBa), MLL im Aufbau (Anfänger)
Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag

Zurück zu „Werbeanzeiger - TFT-Display-Steuerung (790)“