Skip to content

aptumfr/awesome-lvgl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 

Repository files navigation

Awesome LVGL Awesome

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.

Contents

Official Resources

  • 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.

Ports

PC Simulators

Linux

  • lv_port_linux - LVGL configured to work with Linux framebuffer (fbdev), DRM/KMS, Wayland, X11, and SDL2.

ESP32

STM32

Allwinner

  • f1c_nonos - Bare metal code examples for Allwinner F1C100S/F1C200S with LVGL 7 and 9 GUI demos. Runs on LicheePi Nano, MangoPi, and CherryPi.

Arduino

  • lv_arduino - Legacy Arduino wrapper repository (archived/obsolete). (LVGL 7.x legacy)

Drivers

  • lv_drivers - TFT display and touch pad drivers for LVGL, including fbdev, DRM, SDL, X11, and Wayland backends.

Language Bindings

C++

  • 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.

Python

  • 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)

Rust

  • lv_binding_rust - Official Rust bindings. Safe, idiomatic, #![no_std] compatible, integrates with embedded-graphics. Available on crates.io.

JavaScript

  • 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.

Lua

  • luavgl - Optimized LVGL Lua binding.

Berry

  • lv_binding_berry - Official binding for Berry, used in Tasmota for smart home devices.

Zig

  • zlvgl - LVGL binding for Zig.
  • pinephone-lvgl-zig - LVGL for PinePhone and WebAssembly with Zig and Apache NuttX RTOS.

C#

  • LVGLSharp - LVGL C# bindings via ClangSharp PInvoke generation, with native AOT compilation for Windows x64 and Linux ARM.

Go

  • go-lvgl - LVGL Go bindings using CGO, tested on Raspberry Pi 4 with touchscreen.

GUI Editors and Design Tools

  • 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.

Components and Widgets

  • 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.

Conversion Tools

  • 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.

Tutorials and Courses

Getting Started

ESP32 Tutorials

STM32 Tutorials

Arduino Tutorials

Online Courses

Books and eBooks

Integrations

PlatformIO

Arduino

ESP-IDF

Zephyr

STM32Cube

ESPHome / Home Assistant

Vendor SDKs

Projects

Smartwatches

  • 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.

UI Demos and Showcases

Gaming

  • hd2_macropad - Touch macropad for Helldivers 2 on PC and PlayStation, built with ESP32-S3, LVGL, and BLE/USB-HID.

Weather Stations

Dashboards

  • 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.

Home Automation

IoT

Marine

Operating Systems

  • 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)

Community

  • 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.

Contributing

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.

Releases

No releases published

Packages

 
 
 

Contributors