lvgl logo

lvgl

Free

Graphics library to create an embedded GUI with easy-to-use graphical elements, beautiful visual effects and low memory footprint. It offers anti-aliasing, opacity, and animations using only one frame buffer.

FreeFree tier
Type
Open Source
Company
LVGL Ltd

About lvgl

LVGL (Light and Versatile Graphics Library) is the world's most widely adopted open-source embedded UI ecosystem. Designed from the ground up for embedded systems, it provides a complete toolkit for building graphical user interfaces on any MCU, MPU, OS, or display. The library features over 30 built-in widgets, anti-aliased rendering, animations, multi-language support (including Arabic, Persian, Hebrew, and CJK), flex and grid layouts, 100+ style properties, and a typography system. With an extremely low memory footprint (as low as 4kB RAM + 150 bytes per widget and ~100kB Flash), LVGL enables smartphone-like UIs in kilobytes. It is distributed under the MIT license, making it free for commercial and personal use. The core library has no external dependencies and is backed by a vibrant open-source community, with commercial extensions (LVGL Pro, LVGL Safe) available for enterprise and safety-critical applications.

Key Features

30+ built-in widgets (arc, bar, calendar, chart, checkbox, keyboard, meter, switch, table, text area, etc.)
Anti-aliased software rendering with minimal resource usage
100+ style properties with support for states and transitions
Flex and grid layout managers for responsive UI design
Multi-language and Unicode support (Arabic, Persian, Hebrew, Thai, CJK, emoji, mixed RTL/LTR)
Font engine supporting bitmap fonts, TTF/WOFF via FreeType or TinyTTF
Image and widget transformations (scale, rotate, skew)
Scrolling, animations, and masking
Portable to any MCU/MPU (16/32/64-bit), OS (bare-metal, FreeRTOS, Linux, etc.), and display
Memory footprint as low as 4kB RAM + 150 bytes/widget, ~100kB Flash

Pros & Cons

Pros
  • Completely open-source and free (MIT license) for any use
  • Extremely low memory and flash footprint suitable for resource-constrained devices
  • Runs on virtually any MCU, MPU, OS, or display without external dependencies
  • Rich set of built-in widgets and style properties enabling smartphone-like UIs
  • Active community and commercial support from LVGL Ltd
  • Extensive partnerships with major chip manufacturers (NXP, ST, TI, Renesas, Espressif, etc.)
  • Mature project with over 8 years of development and millions of devices deployed
Cons
  • Primarily designed for embedded systems; not intended for desktop or mobile app development
  • Core library is 2D; 3D graphics require external GPU integration (e.g., NEMA GPU, VeriSilicon)
  • Learning curve for developers new to embedded GUI programming
  • Advanced features (e.g., visualization tools, safety cert) require commercial LVGL Pro or LVGL Safe

Best For

Embedded GUI for IoT devicesSmart wearables (watches, fitness trackers)Medical devices and healthcare monitorsAutomotive dashboards and infotainmentIndustrial control panels and HMISmart home appliances and consumer electronicsAIoT devices (voice assistants, smart audio)Safety-critical embedded systems (with LVGL Safe)

FAQ

Is LVGL free to use?
Yes, the core LVGL library is distributed under the MIT license, which permits free use, modification, and distribution for commercial and personal projects.
What hardware does LVGL support?
LVGL runs on any MCU or MPU (16/32/64-bit) and any OS or bare-metal environment. It requires a C99 or higher compiler and can work with as little as 4kB RAM plus 150 bytes per widget and ~100kB Flash.
Does LVGL support multi-language and right-to-left text?
Yes, LVGL supports UTF-8 encoding, Arabic, Persian, Hebrew, Thai, Chinese, Japanese, Korean, and many other languages. It can mix RTL and LTR writing directions and includes fallback fonts and emoji support.
Can LVGL be used in safety-critical applications?
Yes, LVGL offers a commercial extension called LVGL Safe designed for safety-critical systems requiring certification. The open-source core can also be used in non-certified applications.
How can I get started with LVGL?
Visit the LVGL website to download the library, explore demos, and access documentation. The library can be added to projects via package managers (e.g., ESP-IDF, MCUXpresso) or by copying the source files.