// the find
moononournation/Arduino_GFX
Arduino GFX developing for various color displays and various data bus interfaces
Arduino_GFX is a graphics library for Arduino-family, ESP32, RP2040 and STM32 boards that drives a large set of LCD and OLED controllers over whatever bus the board has: hardware or software SPI, 8- or 16-bit parallel, or the ESP32 RGB panel interface. It is aimed at hobbyists and firmware authors who have one specific cheap display module and want it running from the Arduino IDE.
The data bus is separate from the display driver. Each panel class takes an Arduino_DataBus object, so the same ILI9341 code runs over hardware SPI, a parallel bus or an ESP32 LCD peripheral without changes to the driver. That split is what makes the display list this long. The ESP32 hardware SPI path supports 9-bit mode for controllers such as the HX8357B, which many Arduino display libraries cannot drive over hardware SPI. The canvas classes trade colour depth for RAM: Arduino_Canvas_Mono uses one sixteenth of a 16-bit framebuffer and Arduino_Canvas_Indexed uses half, which matters on boards with a few KB of RAM. The library also skips all panel readback calls, which keeps the binary smaller and the write path simple, at the cost of not being able to read pixels back from the panel.
The README says support is worth under an hour of maintainer time a month and that only the Arduino IDE is supported. Non-bug issues are closed, and hardware requests are pushed to Discussions, so do not expect fixes for a board that is not already covered. The supported list is mostly a list of boards with a demo video, not a test matrix, so an unfamiliar panel from a marketplace listing is a gamble until you have run it yourself. ESP32LCD8, ESP32LCD16 and the ESP32 RGB panel classes are documented as dropped in arduino-esp32 v3.0, which pins anyone on current cores to 2.x or to a different bus class. The performance table dates from 2021 and uses arduino-esp32 1.0.6 and Arduino IDE 1.8.15, so treat those numbers as historical.