lvgl/lvgl logo

lvgl/lvgl

Free

Embedded graphics library to create beautiful UIs for any MCU, MPU and display type.

FreeFree tier
Type
Open Source

About lvgl/lvgl

LVGL is a free and open-source embedded graphics library that enables developers to create rich graphical user interfaces for any microcontroller (MCU) or microprocessor (MPU), regardless of vendor or platform. It has no external dependencies and can be compiled for targets ranging from small MCUs to multi-core Linux-based MPUs with 3D support. LVGL provides over 30 built-in widgets, a flexible style system with ~100 properties, Flexbox and Grid-like layout engines, UTF-8 text rendering with support for CJK, Thai, Hindi, Arabic, and Persian scripts, data bindings, animations, anti-aliasing, opacity, smooth scrolling, shadows, image transformations, and a powerful 3D rendering engine for glTF models. The library requires only ~100kB RAM and ~200-300kB flash memory for a simple UI, and it supports monochrome, ePaper, OLED, TFT displays, and monitors. LVGL is distributed under the MIT license, making it suitable for commercial projects. It also offers an optional commercial toolkit, LVGL Pro.

Key Features

Free and open-source (MIT license) with no external dependencies
Requires only ~100kB RAM and ~200-300kB flash for a simple UI
Over 30 built-in widgets including Button, Label, Slider, Chart, Keyboard, Meter, Arc, Table
Flexible style system with ~100 style properties for customization
Responsive layout engines: Flexbox and Grid-like
UTF-8 text rendering supporting CJK, Thai, Hindi, Arabic, Persian
Data bindings to connect UI with application logic
Advanced rendering: animations, anti-aliasing, opacity, smooth scrolling, shadows, image transformation
3D rendering engine supporting glTF models
Supports monochrome, ePaper, OLED, TFT displays and monitors

Pros & Cons

Pros
  • Free and open-source with permissive MIT license
  • Low memory and flash footprint suitable for resource-constrained MCUs
  • Rich set of widgets and styling options out of the box
  • Cross-platform: runs on MCUs, MPUs, and even desktop simulators
  • Active community with 24k+ stars on GitHub and frequent updates
  • No external dependencies simplifies integration

Best For

Embedded user interfaces for IoT devicesSmart home control panels and displaysWearable device interfacesIndustrial HMI (Human-Machine Interface) panelsAutomotive dashboard and infotainment displaysMedical device touchscreen interfacesConsumer electronics with graphical displays

FAQ

What is LVGL?
LVGL is a free and open-source embedded graphics library that allows you to create graphical user interfaces for any MCU and MPU from any vendor, on any platform.
What are the hardware requirements?
For a simple UI, you need approximately 100kB of RAM, 200-300kB of flash memory, and a frame buffer with at least 1/10 of the screen size for rendering.
Is LVGL free to use?
Yes, LVGL is free and open-source, distributed under the MIT license, which allows use in commercial projects.
What displays are supported?
LVGL supports monochrome, ePaper, OLED, TFT displays, and even computer monitors. It can work with any display that provides a frame buffer.
Does LVGL require an operating system?
No, LVGL has no external dependencies. It can run bare-metal or with any RTOS or operating system. OS support is optional.
How can I get started with LVGL?
You can start by picking a ready-to-use VSCode, Eclipse, or other project from the LVGL website, and try out the library on your PC before deploying to embedded targets.