LVGL Graphics Library


LVGL is an open-source free graphics library in C language providing everything you need to create embedded GUI with easy-to-use graphical elements, beautiful visual effects and low memory footprint.


LVGL has the following features:

  • More than 30 powerful, fully customizable widgets, e.g., button, slider, text area, keyboard and so on

  • Supports various screens with any resolution

  • Simple interface and low memory usage

  • Supports multiple input device for the same screen

  • Provides various drawing features, e.g., anti-aliasing, polygon, shadow, etc.

  • Supports UTF-8 coding, multi language and multi font text

  • Supports various image formats, can read images from flash or SD card

  • provides online image converter

  • Supports Micropython


The minimum requirements for running LVGL are listed as follows:

  • 16, 32 or 64 bit micro-controller or processor

  • Clock frequency: > 16 MHz

  • Flash/ROM: > 64 kB (180 kB is recommended)

  • RAM: 8 kB (24 kB is recommended)

  • 1 frame buffer

  • Graphics buffer: > “horizontal resolution” pixels

  • C99 or newer compiler

Online Tools

LVGL provides online Font Converter and Image Converter.

Demo Examples


The following examples are no longer maintained. For LCD and LVGL examples, please refer to: i80_controllerrgb_panel And spi_lcd_touch

Official Demo

LVGL provides a demo project of using LVGL on ESP32 in LVGL project for ESP32.

On top of that, ESP-IoT-Solution also provides some application examples of using LVGL:


A thermostat control interface designed using LVGL:


Please find details of this example in hmi/lvgl_thermostat.


An interactive interface of a coffee machine designed using LVGL:


Please find details of this example in hmi/lvgl_coffee.


When connecting Wi-Fi with ESP32, a Wi-Fi connection interface designed using LVGL can show information of the neighboring Wi-Fi, and you can type in Wi-Fi password on this interface.


Please find details of this example in hmi/lvgl_wificonfig.