Blocktrainer Terminal: Eure Wünsche/Anregungen/Kritik

Mein terminal stellt immer mal wieder unregelmäßig den angezeigten Reiter (Bitaxe) auf den Startbildschirm um (Preis). Z.b. heute und nochmals iwann diese Woche.
Ich update immer wieder (da ist es klar, dass es sich umstellt) und habe einen Nachtmodus aktiv

Tolles Produkt, tolle Arbeit :orange_heart:

Hallo Lukas,

wenn das Terminal länger Zeit keine Daten bekommt, startet es neu. Wie weit ist das Terminal vom AP entfernt? Das Terminal hat keine große Antenne. Wenn es am Handy noch passt, kann es beim Terminal schon zu wenig sein. Bitte ändere zum testen mal den Standort.

Vielen Dank für das Lob! Das freut uns sehr! :orange_heart:

Danke für deine Antwort.
An Wlan Reichweite liegt es nicht, evtl. an Internetaussetzern.
Bisher ist es nicht mehr aufgetreten

Servus! Ich wollte noch einmal einen Design-Vorschlag einbringen: Wäre es möglich, auf der Kursanzeige den Bereich unterhalb der Kurskurve in derselben Farbe wie die Kurslinie einzufärben?

(Original)

(Vorschlag)

4 „Gefällt mir“

Hier noch ein Design-Vorschlag für fallenden Kurse:

Hallo Einundzwanzig,

Danke für deinen Vorschlag!

Das sieht wirklich gut aus und ich habe gleich getestet, ob sich das umsetzen lässt.
Für die grafische Darstellung auf dem ESP32 verwenden wir lvgl als Grafik-Bibliothek. Ein Gradient unter der Chartlinie wird von lvgl nicht nativ unterstützt und muss manuell dazu gebaut werden. Das habe ich gemacht und es sieht auch gut aus (wie auf deinem Bild).

Leider gibt es ein ABER. :expressionless_face: Die einzige Möglichkeit das aktuell umzusetzen ist, 1px breite Gradients nebeneinander unter die Linie zu bauen. Da diese Gradients beim Seitenwechsel alle neu gebaut werden müssen, leidet die Performance zu stark um das serienmäßig zu implementieren.

Daher ist dein Vorschlag so gut er ist, aktuell leider nicht gescheit umsetzbar. Ich behalte es aber im Hinterkopf. Falls sich diesbezüglich noch was ergibt, werde ich einen neuen Anlauf starten.

3 „Gefällt mir“

Hallo just21million!

Danke für die ausführliche Rückmeldung. Schade, dass es aktuell nicht so einfach umzusetzen ist, halte uns diesbezüglich gerne auf dem Laufenden! Und vielleicht hat ja wer im Forum eine Idee, wie man den Vorschlag ressourcenschonender umsetzen kann.

Beste Grüße!

1 „Gefällt mir“

Das ist wirklich Schade.
Hier mal was ChatGPT dazu sagt, vielleicht besteht ja doch noch etwas Hoffnung auf eine Umsetzung für uns.

:wrench: 1. Gradient als statisches Image (empfohlen)

Statt jeden Frame neu zu berechnen:

  • Erzeuge ein Gradient-Image (z. B. PNG / RAW)
  • Lege es unter den Chart
  • Schneide es per Clipping / Masking an die Linie an

:backhand_index_pointing_right: Vorteil:

  • Extrem schnell (nur Blitting)
  • Kein Neuberechnen
  • Perfekt für ESP32 geeignet

:backhand_index_pointing_right: Nachteil:

  • Etwas mehr Setup (Maskenlogik)

:light_bulb: Trick:
Du kannst die Linie als Maske verwenden (lv_canvas oder lv_draw_mask) und den Gradient einmal darunter rendern.


:high_voltage: 2. Canvas + einmaliges Rendern

Statt viele 1px-Objekte:

  • Nutze ein lv_canvas
  • Zeichne den gesamten Bereich in einem Schritt
  • Fülle unterhalb der Linie per Scanline

:backhand_index_pointing_right: Vorteil:

  • Nur ein Objekt
  • Viel weniger Overhead als tausende LVGL-Objekte

:backhand_index_pointing_right: Performance:
Deutlich besser als dein aktueller Ansatz


:brain: 3. Lookup-Gradient (LUT)

Anstatt echten Gradient zu berechnen:

  • Definiere z. B. 16–32 Farbwerte
  • Interpoliere grob oder stepweise

:backhand_index_pointing_right: Vorteil:

  • Kaum Rechenlast
  • Visuell oft völlig ausreichend

:magic_wand: 4. Fake-Gradient (Alpha Overlay)

Sehr effizienter Hack:

  • Fülle Fläche mit einer Farbe
  • Lege darüber ein halbtransparentes Overlay

:backhand_index_pointing_right: Ergebnis:
Sieht wie Gradient aus — kostet fast nichts


:rocket: 5. Hardware-Beschleunigung nutzen

Falls möglich:

  • Nutze ESP32 mit DMA / GPU (ESP32-S3 besser)
  • Framebuffer im PSRAM

:cross_mark: Was du vermeiden solltest

Das, was aktuell gemacht wird:

  • Viele kleine LVGL-Objekte (1px Gradients)
  • Häufiges Neuaufbauen der Szene

:backhand_index_pointing_right: Das killt:

  • Heap
  • Rendering-Zeit
  • FPS

:speech_balloon: Fazit

Der Entwickler hat recht, so wie er es umgesetzt hat, ist es nicht praktikabel.
Aber das bedeutet nicht, dass es grundsätzlich nicht geht.

:backhand_index_pointing_right: Beste Lösung für dich:

Gradient als Bild + Maskierung durch die Chartlinie

Das ist genau der Sweet Spot zwischen:

  • Optik (wie in deinem Bild :fire:)
  • Performance (ESP32-tauglich)

1 „Gefällt mir“

Gäbe es sonst die Option, das Design optional auswählen zu können, sodass die Performance nicht automatisch leidet und User, die dieses in Kauf nehmen möchten, zumindest die Option hätten? Einige User nutzen möglicherweise gar keinen Seitenwechsel und dementsprechend würden sie es gar nicht bemerken.

ChatGPT und Claude sind wie wir alle wissen immer sehr zuversichtlich. Ich habe verschiedene Methoden getestet und alle gehen unangenehm stark auf die Performance. Ich prüfe nochmal den Maskier-Ansatz. Hier muss aber oberhalb der Chartlinie genau das gemacht werden, was ich bisher unterhalb der Chartlinie gemacht habe es müssen entlang der Chartlinie Container angeordnet werden, die oberhalb verdecken oder unterhalb einen Gradient machen. Leider ist das schon ein Hack, weil es nativ nicht geht. Das ist dann OK, wenn es im Verhältnis steht. Mit den bisherigen Ansätzen war das nicht gegeben. An die Möglichkeit das man das im Web-UI aktivieren kann habe ich schon gedacht aber auch dann muss es smooth laufen. Das gebietet die Handwerkerehre. :sweat_smile:

Wie man es dreht und wendet… :slight_smile:

Ich schau mal ob es noch irgendwie möglich ist. Da die saubere und möglichst ruckelfreie Bedienung oberste Priorität hat, kann ich das nur einbauen, wenn es im Verhältnis steht. Es kommt auch noch ein cooles Feature und wir müssen etwas mit den Ressourcen haushalten.

1 „Gefällt mir“

Ich habe eine sehr schöne Lösung gefunden! Sogar ohne Performance-Kompromiss. Es sieht so viel besser aus als vorher, das es per Default an sein sollte ohne extra Schalter. :grinning_face_with_smiling_eyes:

Danke euch beiden für den Push. :sweat_smile:

4 „Gefällt mir“

Danke dir fürs reinknieen und umsetzen. :+1:

2 „Gefällt mir“

Das klingt ja mega. Danke für deine Bemühungen! – Kommt das Design-Upgrade schon mit dem nächsten Update? :heart_eyes:

Ja, ist im nächsten Update…

3 „Gefällt mir“