// the find
lovyan03/LovyanGFX
SPI LCD graphics library for ESP32 (ESP-IDF/ArduinoESP32) / ESP8266 (ArduinoESP8266) / SAMD51(Seeed ArduinoSAMD51)
LovyanGFX is a C++ graphics library for ESP32/ESP8266/SAMD51 microcontrollers that drives SPI, I2C, and parallel-connected LCD/OLED/e-paper displays. It's a direct competitor to TFT_eSPI with better DMA support and a cleaner architecture, aimed at embedded developers doing UI work on M5Stack, TTGO, and similar hardware. If you're writing display code for ESP32, this is the library you should be using instead of TFT_eSPI.
DMA transfer is a first-class feature — you can push a sprite to the display while the CPU does other work, which TFT_eSPI largely can't do cleanly. The sprite system supports per-palette color modes and transparent blitting with rotation/zoom, which is genuinely useful for game-style UIs. The PC target support (SDL2, OpenCV, Linux framebuffer, WASM) means you can develop and debug display code on your desktop without flashing hardware on every iteration. The autodetect system correctly identifies dozens of popular boards at runtime, so you don't need to hunt for correct pin definitions for M5Stack variants.
The README is half Japanese with machine-translated English — the translation is functional but you'll hit sections where the English is confusing enough that you need to read both. RP2040 support is notably incomplete: no I2C, no touch, listed in the table as gaps. The startWrite/endWrite reference counting design is easy to misuse — calling endWrite one too many times silently does nothing, calling it one too few holds the SPI bus and blocks other peripherals, and there's no debug mode to catch imbalances. Board autodetect explicitly excludes several popular boards (WT32-SC01, PyBadge, D-duino-32 XS) because they can't read the panel ID, which is the kind of footgun you discover after ordering hardware.