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, direct WebAssembly, Pyodide, and Android.audiodsp— CircuitPython's audio system (audiocore, synthio, audiomixer, effects, audiomp3) ported to MicroPython and CPython, extending CircuitPython along the way: dynamics, routing, convolution, and offline rendering. On PyPI as pydevices-audiodsp; the instrument and effect libraries built on it ship from audiocomponents.audiocomponents— The instrument and effect libraries for audiodsp: audioinstruments (55 modelled classics, from the TR-808 to the DX7) and audioeffects (45 effect classes and racks), pure Python on MicroPython and CPython. Ships as pydevices-audioinstruments and pydevices-audioeffects, each a standalone distribution and a MIP package.pydevices-examples— Comprehensive example code, direct MicroPython WebAssembly demos, board configurations, and multi-interpreter showcase benchmarks.
Zero external native dependencies — runs on any Python 3 host.
pygraphics— Native C and pure-Python 2D graphics library with drawing primitives, bitmap 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 output, an HSV color wheel, RGB color cubes, Material Design swatches, and Win16 color names.
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 Linux, Windows, Android, 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— Connect MicroPython and CircuitPython boards from VS Code, Cursor, or the CLI, over USB or Wi-Fi: dual-pane file transfer, in-editor REPL, firmware builds and flashing, 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.micropython-pydevices— The PyDevices patch queue for MicroPython, kept like a distribution keeps one: an ordered, provenance-tracked patch series over the pinned upstream (MicroPython v1.30.0-preview-160), with presets, boards and variants that build PyDevices modules into firmware with upstream's own make.workbench— A ViperIDE fork with a built-in WebAssembly MicroPython simulator: edit, run, and debug PyDevices code against a simulated board entirely in the browser, no hardware required.mpvst— Programmable VST3 instruments and effects: every audiocomponents instrument and effect as a named plug-in, each instance running its Python in a sidecar process. Installers for Windows and Linux; nothing has to be built.
Moved into other repositories:
- displayif — now
modules/displayifin micropython-pydevices. The old repository is archived. - audioif — now
modules/audioifin micropython-pydevices. The old repository is archived. - cameraif — now
modules/cameraifin micropython-pydevices. The old repository is archived. - usbif — the C module is now
modules/usbhostin micropython-pydevices; the Python USB packages are in pydevices. The old repository is archived.
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.