Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tdeck-screenfix

Standalone screen-fixer firmware for the LILYGO T-Deck (ESP32-S3 / ST7789 2.8" IPS panel).

This is our own firmware — not a fork or derivative of MeshCore or any other firmware project. It is a minimal, self-contained PlatformIO project built around the official LilyGO T-Deck references (pin map, board definition) and a standard display driver library.

Keeps the display on 24/7 and cycles through image-retention / burn-in clearing patterns forever. Flash it, plug the T-Deck in, leave it running — no interaction needed.

Why

LCD panels can suffer from image retention (ghosting) when a static UI is left on screen for long periods. Cycling the panel through full-brightness solid colours, moving gradients, checkerboards and noise exercises every subpixel evenly and clears the retained image. The T-Deck's 2.8" ST7789 is no exception.

What it does

At boot the display lights up (backlight on GPIO 42, peripheral power rail on GPIO 10), all sleep sources are disabled (CPU locked at 240 MHz, no light sleep), and the routine starts. The ~4 minute cycle repeats forever:

# Phase Duration What you see
1 Solid white 20 s Full-screen white
2 Solid red 20 s Full-screen red
3 Solid green 20 s Full-screen green
4 Solid blue 20 s Full-screen blue
5 Solid black 20 s Panel off pixels (relax cycle)
6 Hue sweep 30 s Scrolling rainbow gradient
7 Colour bars 20 s Classic white/red/green/blue/cyan/magenta/yellow/black bars
8 Checkerboard 20 s Black/white checkerboard, inverting every second
9 Sweep horizontal 30 s White bar sweeping top → bottom
10 Sweep vertical 30 s White bar sweeping left → right
11 Colour noise 20 s Random-colour static

Progress is logged over USB serial (115200 baud): [screenfix] phase 3/11: solid green (20s) — uptime 64s.

All durations are compile-time configurable — see src/main.cpp PHASE_*_S defines.

Building

pio run                    # compile
pio run -t upload          # build + flash over USB (main USB-C port!)
pio device monitor         # watch phase progress

PlatformIO 6.x with the stock espressif32 platform is all you need — the T-Deck board definition is vendored in boards/t-deck.json, so the project builds out of the box with no extra setup.

Flashing

  • Use the main USB-C port (ESP32-S3 native USB), not the keyboard one.
  • Flash mode defaults to DIO in platformio.ini — many T-Deck units boot-loop with QIO flash (PSRAM pin conflict). If your unit runs QIO fine, remove that override.
  • The merged binary lands at .pio/build/t-deck/firmware.bin — flash it with pio run -t upload or any ESP32 flasher.

Pin map (T-Deck)

From the official LilyGO T-Deck reference (TDECK_PINS.h):

Signal GPIO
LCD CS 12
LCD DC 11
LCD backlight 42
LCD RST not connected (software reset)
SPI SCK 40
SPI MOSI 41
Peripheral power rail 10

Attribution & licensing

  • This project's code and docs (firmware, build config, README): MIT — see LICENSE.
  • Board definition boards/t-deck.json: copied verbatim from the official Xinyuan-LilyGO/T-Deck repository (boards/T-Deck.json, © LilyGO).
  • Pin map: from the official Xinyuan-LilyGO/T-Deck reference header examples/LvglArduinoVNC_VGA/TDECK_PINS.h (© LilyGO).
  • Display driver: Adafruit ST7735 and ST7789 Library (+ Adafruit GFX / BusIO dependencies), BSD-3-Clause, © Adafruit Industries.

Full details in THIRD_PARTY_NOTICES.md.

About

Standalone display retention fixer for the LILYGO T-Deck — keeps the ST7789 on 24/7 and cycles burn-in-clearing patterns

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages