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

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.