LovyanGFX LCD/e-Ink graphics driver¶
Microcontrollers and various tinker-friendly devices need display drivers to talk to their LCD display modules. Popular driver libraries include AdafruitGFX made by Adafruit Industries, which brought easy-to-use proportional fonts.
Then Bodmer came along and wrote TFT_eSPI based on that, with support for many more displays. TFT_eSPI is a great library. However, it is structurally complex because it targets multiple architectures, making it very difficult to add required functions such as support for ESP-IDF and 18-bit color.
On the supported architectures, LovyanGFX is the next evolutionary step. It offers added functionality and improved performance while being largely compatibile with its predecessors AdafruitGFX and TFT_eSPI. Major improvements in the API mean not everything could stay the same, but the goal has been for things to “just work” wherever possible.
LovyanGFX works with either an ESP32 with SPI or 8-bit parallel connection to the display or an ATSAMD51 with SPI connection to the LCD.
Among the advantages of LovyanGFX over existing libraries:
Arduino ESP32 and ESP-IDF are supported.
Both 16bit and 24bit color modes are supported. (Actual number of colors depends on LCD specifications)
Uses DMA transfers so other processes can execute during communication with display.
Fast rotation / expansion of the off-screen buffer (sprite).
Simultaneous use of multiple LCDs.
Supported environments¶
Platforms¶
ESP-IDF
Arduino ESP32
Arduino ATSAMD51 (Seeed)
PlatformIO
Displays¶
HX8357
ILI9163
ILI9341 (WioTerminal, ESP-WROVER-KIT, ODROID-GO, LoLin D32 Pro, WiFiBoy Pro)
ILI9342 (M5Stack, M5Stack Core2)
ILI9486
ILI9488 (Makerfabs Touch with Camera)
SSD1351
ST7735 (M5StickC, TTGO T-Wristband, TTGO TS, LoLin D32 Pro, WiFiBoy mini)
ST7789 (M5StickCPlus, TTGO T-Watch, ESP-WROVER-KIT, Makerfabs MakePython, DSTIKE D-duino-32 XS)
ST7796
IT8951 (M5Paper)
GDEW0154M09 (M5Stack CoreInk)
TouchScreens (only on ESP32)¶
I2C FT5x06 / FT6x36
I2C GT911
SPI XPT2046
SPI STMPE610
LCD panels with similar command systems to the above compatible models might very well be supported, but only those that we have obtained and confirmed to work are officially supported.
We will give priority to the models for which we receive a support request. Please file an issue if you have a make or model display that you would like to see supported. We welcome contributions - sponsoring and code - from device manufacturers.
Active Development¶
LovyanGFX is under active development as we write this.
The presently released version (0.3.x) will be superseded by version 0.4.0 which implements a new API (v1). (The current API is v0.) The goal for v1 remains to be mostly compatible with AdafruitGFX and TFT_eSPI. Version 0.4.0 will use API v0 by default but allow optional selection of v1 API.
In version 1.0.0, the v1 API will be the default and in version 1.1.0 support for the v0 API will be removed.
Meanwhile, we are talking to hardware manufacturers to make LovyanGFX the included display driver for their devices. Stay tuned for exciting news.