🖥️ From Flickering Lines to a Perfect Dashboard
Vom Flackern zum perfekten Dashboard – Wie ich das LilyGO T-Display S3 gezähmt habe
Introduction / Einführung
When I started building a small dashboard for my Blurt and Hive stats, I didn’t expect it to turn into a mini adventure in electronics and debugging.
My goal was simple: display the Blurt and Hive prices, show the latest post stats, and monitor my witness status — all on a LilyGO T-Display S3.
Als ich mein kleines Dashboard für Blurt und Hive bauen wollte, ahnte ich nicht, dass daraus ein kleines Abenteuer in Sachen Elektronik werden würde.
Mein Ziel war einfach: Blurt- und Hive-Kurse anzeigen, die neuesten Posts und meinen Witness-Status – alles auf einem LilyGO T-Display S3.
The first upload went smoothly until I connected the USB cable.
A bright vertical stripe appeared immediately, and only after five seconds did the rest of the screen show up.
No error messages, just a confused display.
At that point, I knew this was not a software bug, it was an initialization problem.
Der erste Upload lief problemlos, bis ich das USB-Kabel anschloss.
Nach einer halben Sekunde erschien ein heller Streifen auf der rechten Seite, und erst fünf Sekunden später der Rest des Bildes.
Keine Fehlermeldung, nur ein verwirrtes Display.
Mir war klar: Das ist kein Softwarefehler, das ist ein Initialisierungsproblem.
The Problem – Ghost Lines and Missing Pixels / Das Problem – Geisterlinien und fehlende Pixel
At first, I tried all the usual suspects: rotation settings, SPI speed, and even re-flashing the firmware.
But no matter what I did, the screen always showed that annoying right-hand bar and strange timing issues.
I even noticed that the right half of the display didn’t respond correctly to color fills, as if the buffer stopped at pixel 240 instead of 320.
Ich dachte zuerst an die üblichen Verdächtigen:
Rotation, SPI-Geschwindigkeit und Neu-Flashen.
Aber egal, was ich machte, der rechte Balken blieb.
Dann fiel mir auf, dass der rechte Teil des Displays gar nicht richtig zeichnete,
als ob das Speicherfenster bei Pixel 240 endete.


Investigation / Fehlersuche
So, I ran some test sketches.
One of them simply drew a white frame:
tft.fillScreen(TFT_BLACK);
tft.drawRect(0, 35, 240, 170, TFT_WHITE);
That’s when I discovered that everything beyond x=240 was invisible, a clear sign of incorrect initialization for this ST7789 controller.
It seemed that the screen memory wasn’t properly reset at startup, and part of the driver still “remembered” its previous state.
Also schrieb ich Testsketche, die nur einfache Linien oder Rechtecke zeigten.
Dabei stellte ich fest, dass alles rechts von x=240 einfach schwarz blieb,
ein klares Zeichen dafür, dass das Display nicht korrekt initialisiert war.
Teile des internen RAMs waren offenbar in einem undefinierten Zustand.
The Fix / Die Lösung
After several experiments, I finally found the correct sequence:
1️⃣ A hard reset of the display
2️⃣ A ST7789 command 0x13 (normal display mode)
3️⃣ Immediate backlight activation before any drawing
4️⃣ Then re-initialization with the correct rotation (USB on the right)
Nach einigen Experimenten fand ich die richtige Reihenfolge:
1️⃣ Hard-Reset des Displays
2️⃣ Kommando 0x13 für den Normalmodus
3️⃣ Backlight sofort aktivieren, bevor irgendetwas gezeichnet wird
4️⃣ Rotation 2, damit der USB-Anschluss rechts ist
Here’s the short reset code that brought the panel back to life:
Hier der kleine Reset-Sketch, der das Display wiederbelebt hat:
#include <TFT_eSPI.h>
TFT_eSPI tft = TFT_eSPI();
void setup() {
tft.init();
delay(100);
tft.writecommand(0x13);
delay(100);
tft.fillScreen(TFT_BLACK);
delay(500);
tft.init();
tft.setRotation(2);
tft.setTextColor(TFT_WHITE, TFT_BLACK);
tft.setTextSize(3);
tft.setCursor(80, 150);
tft.println("RESET");
}
void loop() {}
After running this once, the panel was completely clean, with no ghost lines or flickering.
Then I uploaded my main dashboard code, and everything worked instantly.
Nach einmaligem Ausführen war das Display komplett sauber, ohne Streifen oder Flackern.
Dann lud ich meinen Haupt-Dashboard-Code hoch und alles funktionierte auf Anhieb.
The Result / Das Ergebnis
The dashboard now boots instantly, connects to Wi-Fi, fetches the data from Blurt, Hive, and CoinGecko,
and displays everything neatly:
Blurt & Hive prices
Latest post votes and payout
Witness status with live rank
Das Dashboard startet sofort, verbindet sich mit dem WLAN,
ruft automatisch die Daten von Blurt, Hive und CoinGecko ab
und zeigt alles übersichtlich an:
Blurt- und Hive-Kurse
Neueste Votes und Payouts
Witness-Status inklusive Rang
No more visual artifacts or delay, just clean, reliable data.
Keine Streifen, keine Verzögerung, nur klare Daten in Echtzeit.
Conclusion / Fazit
Sometimes a tiny missing command can make a big difference.
The LilyGO T-Display S3 is a great little device, but it definitely has its quirks.
Once the backlight timing and reset sequence were fixed, it turned into a stable, crisp dashboard for my blockchain stats.
Manchmal ist es nur ein einziger fehlender Befehl, der alles verändert.
Das LilyGO T-Display S3 ist ein tolles Gerät, aber mit kleinen Eigenheiten.
Sobald die Backlight-Steuerung und die Initialisierung stimmen, läuft es stabil und zuverlässig.
Now I can keep an eye on Blurt, Hive, and my witness status right on my desk, no PC needed.
And best of all: I finally tamed the T-Display. 😄
Jetzt kann ich meine Blurt- und Hive-Daten direkt auf dem Schreibtisch verfolgen,
und mein Witness-Rang ist immer im Blick.
Ein kleines Projekt mit großem Lerneffekt und endlich ein Display, das tut, was es soll. 😊
Final Thoughts / Abschließende Gedanken
It’s not perfect, but it works — and for someone who had no clue about this stuff, it’s not bad at all.
Okay, I had a bit of help from ChatGPT, otherwise I would have been completely lost. 😅
Es ist nicht perfekt, aber es läuft, und für jemanden, der davon keine Ahnung hatte, ist es gar nicht so schlecht.
Okay, ich hatte Hilfe von ChatGPT, sonst wäre ich aufgeschmissen gewesen. 😅
Thanks for Reading / Danke fürs Lesen
Thanks for reading and see you on the chain!
Danke fürs Lesen und bis zum nächsten Beitrag!

Dein Hornet on Tour
Your Hornet on Tour

Instagram: hornet_on_tour
Twitter: OnHornet
Photo: Hornet on Tour
Translated with www.DeepL.com/Translator (free version)

Cool, hast du dich auch schon an LoraWAN gewagt?
Leider nein noch nicht wäre, glaube ich auch interessant. Mal schauen wann ich dafür Zeit finde.