Welcome to PyDevices — a unified pure-Python hardware abstraction engine, 2D graphics toolkit, native LVGL C binding generator, and cross-platform app host across MicroPython, CircuitPython, CPython, PyScript, and Android.
- Org Landing Portal: PyDevices.github.io
- MIP Package Index: PyDevices MIP Index
- Centralized Assets & Scripts: .github (dotgithub)
Standard hardware driver engine and companion reference code.
pydevices— Unified pure-Python hardware abstraction layer and core device contract for MicroPython, CircuitPython, CPython, Pyodide WASM, and Android.displayif— High-performance C hardware bus engines (SPI, I2C, Intel 8080, RGB/DPI, MIPI DSI) and native usermod display drivers for MicroPython and CircuitPython.pydevices-examples— Comprehensive example code, interactive PyScript browser demos, board configurations, and multi-runtime showcase benchmarks.
Zero external native dependencies — runs on any Python 3 host.
pygraphics— Pure-Python 2D graphics library with drawing primitives, anti-aliased font rendering, paletted surface blitting, and area-dirtying pipelines.pdwidgets— Lightweight object-oriented UI widget framework including buttons, sliders, progress bars, labels, and event routing for PyDevices screens.palettes— Color management library with RGB565 / RGB888 conversion, HSL / HSV color spaces, palette swatches, and smooth gradient generators.
Single-source LVGL C header binding generator and native runtime modules.
lvgl-bindings— Automated binding generator parsing LVGL C headers into native CPython extensions, MicroPython usermods, and CircuitPython modules.lvgl-micropython— Native MicroPython C module integrating LVGL v9 graphics engine with displayif bus drivers across ESP32, RP2040, and i.MX RT targets.lvgl-python— Pre-built CPython extension wheels and Pyodide WASM packages bringing LVGL v9 to desktop Linux, macOS, Windows, and web browsers.lvgl-circuitpython— CircuitPython native C module providing LVGL v9 bindings and displayif integration for Adafruit Feather and SAMD51 / RP2040 boards.
Deploy PyDevices apps directly to desktop browsers or mobile APKs.
pyscript-template— Progressive Web App starter template repository for deploying offline-capable client-side PyDevices applications on GitHub Pages.android-template— Pre-configured python-for-android build recipes and Buildozer project template for packaging PyDevices applications into native Android APKs.
MIP package indexing, multi-usermod builds, and serial/FTP IDE extensions.
mpftp— Dual-pane serial FTP file manager, in-editor REPL console, and board flasher extension for VS Code, Antigravity IDE, and Cursor.mip— Single source of truth (SoT) for precompiled MicroPython .mpy bytecode packages and pure-Python library distributions across the PyDevices ecosystem.cmods— Out-of-tree C build workspace for compiling MicroPython and CircuitPython firmware binaries with displayif drivers and LVGL bindings.
Deliberately absent from this map:
- .github (dotgithub) — No landing page by design. It holds org-wide data, scripts, and community health files, and is documented as markdown only.
- android-runner — Exists solely to enable pydevices/bin/android.py. The APK is documented in pydevices; the runner publishes no site.