lvgl-micropython
August 12, 2026 ยท View on GitHub
MicroPython user C module glue for LVGL: Make/CMake usermod entry points, a GC-aware allocator, and an optional frozen manifest.
This repo does not regenerate bindings. It consumes
lvgl-bindings
(generated/lvgl_micropython.c + the lvgl submodule).
Layout
| Path | Role |
|---|---|
micropython.mk / micropython.cmake | Build glue (USER_C_MODULES) |
src/lv_mem_core_micropython.c | GC-aware LVGL allocator |
manifest.py | Optional frozen Python modules |
docs/ | This documentation |
tools/test_lvgl_unix.py | Deprecated smoke wrapper โ lvgl-bindings/tools/test_lvgl_smoke.py |
Build
USER_C_MODULES is the workspace parent (directory containing this repo):
cd micropython/ports/unix
make USER_C_MODULES=../../.. FROZEN_MANIFEST=../../../lvgl-micropython/manifest.py
CMake ports (esp32, rp2): point USER_C_MODULES at this repo.
See the cmods workspace for an easier way to build this repo with other user C modules.
Smoke (developer)
./micropython/ports/unix/build-standard/micropython \
./lvgl-bindings/tools/test_lvgl_smoke.py
Related
- CircuitPython: lvgl-circuitpython
- CPython: lvgl-python (
pip install pydevices-lvgl)