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

PathRole
micropython.mk / micropython.cmakeBuild glue (USER_C_MODULES)
src/lv_mem_core_micropython.cGC-aware LVGL allocator
manifest.pyOptional frozen Python modules
docs/This documentation
tools/test_lvgl_unix.pyDeprecated 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