PyDevices Ecosystem
August 25, 2026 ยท View on GitHub
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.
๐๏ธ Ecosystem Structure
- Org Landing Portal: PyDevices.github.io
- MIP Package Index: PyDevices MIP Index
- Centralized Assets & Scripts: .github (dotgithub)
โก Repository Overview
Tier 1: Core Platform & Board Contract
Standard hardware driver engine and companion reference code.
pydevicesโ Unified pure-Python hardware abstraction layer and core device contract for MicroPython, CircuitPython, CPython, direct WebAssembly, Pyodide, 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.audioifโ An audio synthesis stack with CircuitPython import names and play/stop/pause/resume semantics. MicroPython firmware includes audiomp3; pydevices-audioif 0.0.1 provides audiocore, synthio, the mixer, and effects for CPython, Android, and Pyodide.pydevices-examplesโ Comprehensive example code, direct MicroPython WebAssembly demos, board configurations, and multi-interpreter showcase benchmarks.
Tier 2: Python Framebuffers & GUI Toolkits
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.
Tier 3: LVGL Native Extensions & Binding Generator
Single-source LVGL C header binding generator and native interpreter 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.
Tier 4: App Hosts & Mobile
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.
Tier 5: Developer Tools & Infrastructure
MIP package indexing, multi-usermod builds, and serial/FTP IDE extensions.
mpftpโ Connect MicroPython and CircuitPython boards from VS Code, Cursor, or the CLI: dual-pane file transfer, in-editor REPL, firmware flash, mip/circup, plus RPC, MCP, and an optional browser PWA.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.