finds.dev← search

// the find

lovyan03/LovyanGFX

★ 1,682 · C · NOASSERTION · updated Jun 2026

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.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →