Ecosystem & sister projects
August 14, 2026 · View on GitHub
PyDevices is the graphics, input-event, and timing backend for the wider PyDevices ecosystem. Anything built on top of it inherits PyDevices's portability across MicroPython, CircuitPython, and CPython.
LVGL sister projects
Three sister projects wire the PyDevices portable stack into LVGL — the popular C graphics library — so you can build LVGL applications in pure Python. They use displaydev, neutral board input, and multimer on each runtime, while pydevices-examples hosts the examples:
| Project | Runtime | Role |
|---|---|---|
| lvgl-micropython | MicroPython | LVGL bindings; PyDevices drives display + input. |
| lvgl-circuitpython | CircuitPython | LVGL bindings backed by PyDevices. |
| lvgl-python | CPython | LVGL bindings backed by PyDevices. |
Because all three share PyDevices as the backend, the same LVGL Python code runs on a microcontroller, on the desktop, and — see below — in a notebook.
Develop LVGL apps in Jupyter Notebook
With the CPython backend you can build and iterate on an LVGL UI interactively in a Jupyter Notebook: run a cell to create widgets, run another to modify them, and watch the display update live in an interactive widget. When you are happy, run the identical code on hardware.
See the LVGL guide for wiring details and the Jupyter platform notes for the async execution model.
GUI library integration
PyDevices also drops in under other GUI stacks:
| Library | Notes |
|---|---|
| LVGL | Full-featured C toolkit via the sister projects above. |
| Nano-GUI | @peterhinch's lightweight FrameBuffer GUI (display-only). |
| Micro-GUI | @peterhinch's button / encoder GUI. |
| MicroPython-Touch | @peterhinch's touch GUI. |
| TFT / st7789py ports | russhughes-style font and bitmap rendering. |
| pdwidgets | Cross-platform widget toolkit for PyDevices. |
| palettes | Color palettes (wheel, cube, material_design). |