A curated list of awesome LVGL resources, tools, libraries, and projects.
LVGL (Light and Versatile Graphics Library) is the most popular free and open-source embedded graphics library to create beautiful UIs for any MCU, MPU and display type.
- Official Resources
- Ports
- Language Bindings
- GUI Editors and Design Tools
- Components and Widgets
- Conversion Tools
- Tutorials and Courses
- Books and eBooks
- Integrations
- Projects
- Community
- LVGL Website - Official website with demos, services and blog.
- LVGL GitHub Repository - Main source code repository.
- LVGL Documentation - Comprehensive official documentation for all versions, including 8.x and current releases.
- LVGL Forum - Official community forum for discussions, help, and showcasing projects.
- LVGL Blog - Official blog with monthly newsletters, release notes, and announcements.
- lv_demos - Extended demo applications showcasing advanced features and use cases.
- lvgl_project_creator - Official project generator to quickly bootstrap LVGL applications. (LVGL 9.x branches)
- Online Demos - Try LVGL directly in the browser with interactive demos.
- lv_port_pc_vscode - PC simulator project using VS Code and SDL.
- lv_port_pc_eclipse - PC simulator project using Eclipse CDT and SDL. Recommended on Linux and Mac.
- lv_port_pc_visual_studio - Visual Studio project for Windows development.
- lv_port_linux - LVGL configured to work with Linux framebuffer (fbdev), DRM/KMS, Wayland, X11, and SDL2.
- lv_port_esp32 - LVGL ported to ESP32 including various display and touchpad drivers.
- lvgl_esp32_drivers - Display and touch controller drivers for ESP32.
- esp32_smartdisplay - PlatformIO library supporting many ESP32 smart displays with LVGL.
- lv_port_esp32-epaper - LVGL port for ESP32 with e-paper display and touchpad driver support.
- lv_port_riverdi_101-stm32h7 - LVGL port for Riverdi 10.1" display with STM32H7, using LTDC and SDRAM framebuffers.
- f1c_nonos - Bare metal code examples for Allwinner F1C100S/F1C200S with LVGL 7 and 9 GUI demos. Runs on LicheePi Nano, MangoPi, and CherryPi.
- lv_arduino - Legacy Arduino wrapper repository (archived/obsolete). (LVGL 7.x legacy)
- lv_drivers - TFT display and touch pad drivers for LVGL, including fbdev, DRM, SDL, X11, and Wayland backends.
- lv - Modern C++20 zero-cost, type-safe, header-only bindings with fluent API, reactive state management, and 35 wrapped widgets.
- lv_binding_cpp - Official C++ binding for LVGL (WIP).
- lvglpp - Comprehensive C++17 wrapper with classes for most LVGL features.
- lv_binding_micropython - Official MicroPython bindings with auto-generated API. Runs on ESP32, STM32, Unix, and more.
- lv_micropython - MicroPython fork with LVGL bindings for embedded devices, Unix, and JavaScript.
- lvgl_micropython - Community-driven LVGL MicroPython spinoff focused on simpler builds, broader drivers, and device support. (Community-maintained; LVGL version depends on branch/port)
- PikaScript - PikaScript binding for LVGL, ultra-lightweight Python-like scripting. (LVGL master docs / current)
- lv_binding_rust - Official Rust bindings. Safe, idiomatic,
#![no_std]compatible, integrates with embedded-graphics. Available on crates.io.
- lv_binding_js - Official React-style JavaScript bindings using virtual DOM to manipulate LVGL UI components.
- lv_web_emscripten - LVGL ported to Emscripten to run in the browser as JavaScript.
- luavgl - Optimized LVGL Lua binding.
- lv_binding_berry - Official binding for Berry, used in Tasmota for smart home devices.
- zlvgl - LVGL binding for Zig.
- pinephone-lvgl-zig - LVGL for PinePhone and WebAssembly with Zig and Apache NuttX RTOS.
- LVGLSharp - LVGL C# bindings via ClangSharp PInvoke generation, with native AOT compilation for Windows x64 and Linux ARM.
- go-lvgl - LVGL Go bindings using CGO, tested on Raspberry Pi 4 with touchscreen.
- LVGL Pro (XML Editor) - Official desktop app to build LVGL components and screens in XML, manage data bindings, translations, animations, and tests.
- LVGL Online Viewer - Run the editor in your browser, open GitHub projects, and share without setup.
- SquareLine Studio - Drag and drop UI editor for LVGL. (Note: LVGL ended collaboration with SquareLine in 2024, but the tool still supports LVGL.)
- NXP GUI Guider - Free GUI design tool by NXP enabling drag-and-drop UI creation with LVGL for NXP microcontrollers.
- ESPHome Designer - Visual drag-and-drop editor for ESPHome displays with LVGL support.
- LVGL-AI-Studio - Web UI for AI-powered LVGL UI generation in C or MicroPython.
- map_tiles - Map tiles component for LVGL 9.x with GPS coordinate conversion and tile loading.
- LVGL_Joystick - Virtual joystick widget for LVGL, available as Arduino library and ESP-IDF component.
- lvgl_kawaii_face - Kawaii-style animated face widget for LVGL 9.
- esp_rlottie - IDF component for rendering Lottie animations in LVGL on ESP32.
- Online Font Converter - Free online tool to create C arrays from TTF/WOFF font files with configurable Unicode ranges and bpp.
- lv_font_conv - Offline Node.js tool that converts TTF/WOFF/OTF fonts to compact bitmap format for embedded systems.
- lv_utils - Convert images or system fonts to C arrays for LVGL.
- lvgl_conv_tool - LVGL converter tool with both font and image conversion, written with PySide6.
- Learn the Basics - Official getting started guide from LVGL documentation. (LVGL master docs / current)
- Getting Started with LVGL - EmbeddedExpertIO - Introduction and environment setup tutorial.
- LVGL Tutorials for Arduino and ESP32 - Tutorial series about LVGL implementation using Arduino and ESP32.
- LVGL on ESP32 CYD (Cheap Yellow Display) - Getting started with LVGL on the popular ESP32-2432S028R board.
- ESP32 TFT with LVGL: Weather Station - Build a weather station using ESP32, TFT display, and LVGL.
- ESP32 TFT with LVGL: Display BME280 Sensor Data - Display sensor data in tables using LVGL.
- Mastering ESP32 with LVGL in PlatformIO - Comprehensive beginner guide for ESP32-2432S028R with PlatformIO.
- Mastering Microcontroller: STM32-LTDC, LCD-TFT, LVGL (Udemy) - Learn embedded graphics systems and LVGL on STM32.
- Creating GUIs with LVGL on Portenta H7 - Arduino official tutorial for building GUIs with LVGL.
- LearnLVGL Version 9 - MicroS Academy - Dedicated course for embedded engineers to create UIs with LVGL v9.
- Learn LVGL: Build GUIs for ESP32 Projects - eBook covering GUI development for ESP32 using LVGL with Arduino IDE.
- LVGL on PlatformIO Registry - Official LVGL library on PlatformIO.
- LVGL PlatformIO Integration Guide - Official documentation for PlatformIO setup. (LVGL 9.x docs)
- pio-esp32-espidf-lvgl-example - PlatformIO compilable example for ESP32 with ESP-IDF and LVGL.
- LVGL Arduino Integration Guide - Official setup guide for using LVGL with Arduino. (LVGL 9.x docs)
- LVGL ESP-IDF Integration Guide - Official integration documentation for ESP-IDF projects. (LVGL 9.x docs; includes 8/9 support notes)
- LVGL Zephyr Integration Guide - Official guide for integrating LVGL with Zephyr RTOS. (LVGL 9.x docs)
- LVGL STM32 Integration Guide - Official guide for STM32 integration (including STM32Cube workflows). (LVGL 9.x docs)
- ESPHome LVGL Component - Native LVGL integration for ESPHome smart home displays.
- ESPHome LVGL Tips and Tricks - Cookbook recipes for LVGL in ESPHome.
- esphome-modular-lvgl-buttons - Modular LVGL button platform for ESPHome.
- NXP MCUXpresso Integration - LVGL integration with NXP MCUXpresso SDK, one-click setup with VG-Lite and PXP accelerator support. (LVGL 8.x legacy docs)
- Renesas FSP - Renesas evaluation kits with LVGL support and Dave2D GPU acceleration.
- LVGL for reTerminal (Seeed Studio) - Build UIs using LVGL on the reTerminal.
- InfiniTime - Open-source firmware for PineTime smartwatch, built on FreeRTOS, LVGL, and NimBLE. Features notifications, heart rate, step counting, and OTA updates.
- ESP32S3 GC9A01 LVGL Smart Watch - Open-source smartwatch project using ESP32-S3 and round display.
- esp32-lvgl-watchface - Display pre-built binary watchfaces on ESP32 using LVGL, with a Kotlin script for watchface conversion.
- jarvis-lvgl-esp32 - Jarvis-inspired LVGL UI for ESP32-S3 with BLE-synced time, weather, and notifications via Chronos app.
- ESP32-Watch-Projects - ESP32-based watch firmware projects with LVGL.
- ESP32Berry - ESP32 cyberdeck project combining keyboard input and LVGL UI.
- StickiNote - Digital sticky notes app on ESP32-P4 with LVGL.
- Grid_Board - Interactive 12x5 grid display for ESP32-P4 with BLE, emoji support, and LVGL animations.
- Pixel-Clock - Minimalist digital clock UI built with LVGL v9 on ESP32-P4.
- esp32-c3-mini - LVGL UI for ESP32-C3 mini 240x240 touch display board.
- windows-10-mobile-lvgl - Windows 10 Mobile (Lumia) UI recreation made with LVGL.
- metronome_ui_lvgl_pro - Musical metronome built with LVGL Pro using XML and custom C code.
- battery-indicator-lvgl-editor - iOS-inspired battery indicator designed in LVGL Editor.
- miyoo_mini_plus_lvgl_gamepad_demo - Gamepad UI running on the Miyoo Mini Plus handheld using LVGL Pro and SDL backend.
- google_drive_menubar_lvgl_pro - Google Drive menubar clone made with LVGL Pro.
- DontPanic - Offline Wikipedia reader for the CYD, inspired by The Hitchhiker's Guide to the Galaxy.
- WebScreen-Software - Firmware for WebScreen open hardware project using LVGL 9.
- hd2_macropad - Touch macropad for Helldivers 2 on PC and PlayStation, built with ESP32-S3, LVGL, and BLE/USB-HID.
- M5Core2 Weather Dashboard - LVGL-based weather dashboard for M5Stack Core2.
- X-TRACK / Deck - High-performance ESP32 dashboard featuring 60 FPS animations with LVGL on a 1.3" IPS display.
- ESP32-C6 Crypto Monitor - Cryptocurrency price monitor on ESP32-C6 with 1.47" display and LVGL 9.
- Waveshare ESP32-P4 Panel Firmware - ESPHome + LVGL firmware for Waveshare 8.6" smart panel with weather, device control, and multi-language support.
- Smart Energy Meter - Smart energy meter on ESP32 CYD V2 board using ESPHome and LVGL.
- lvgl-round-thermostat-ui - Two different round thermostat UIs made with LVGL.
- viewe_lvgl_knob_ui - Air conditioner controller made with LVGL Pro and VIEWE knob display.
- lvgl-esp32-smartthings-controller - ESP32 controller for Samsung SmartThings with LVGL UI.
- ESPHome LVGL Weather Forecast Display - 4-day weather forecast display using LVGL in ESPHome with Home Assistant.
- Smart Flask Thermos - Smart thermos with Crowpanel 1.28" round display and ESP32-C3.
- NMEA0183 Multi Function Display - Marine multi-function display on ESP32-P4 with LVGL, showing real-time NMEA0183 navigation data.
- MicroPythonOS - Open-source MicroPython-based OS with LVGL UI, app model, OTA updates, and ESP32/desktop targets. (Built on
lvgl_micropython; LVGL version follows that stack)
- LVGL Forum - Official community forum for Q&A, showcase, and discussions.
- LVGL GitHub Issues - Bug reports, feature requests, and implementation discussions.
- LVGL on GitHub Topics - Discover LVGL-related repositories on GitHub.
- LVGL Services - Commercial support, SLAs, consulting, and engineering assistance from LVGL maintainers.
Contributions welcome! Please submit a pull request or open an issue to add new resources.
Please make sure your contribution follows these guidelines:
- Search previous suggestions before making a new one to avoid duplicates.
- Use the following format:
- [Title](URL) - Description. - New categories or improvements to the existing categorization are welcome.
- Keep descriptions concise and meaningful.