Skip to content
@PyDevices

PyDevices

Cross-platform Python display, input, and graphics stack — MicroPython, CircuitPython, and CPython.

PyDevices Ecosystem

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


⚡ 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 — CircuitPython's audio system (audiocore, synthio, audiomixer, effects, audiomp3) ported to MicroPython and CPython, extending CircuitPython along the way: 53 classic instruments (audioinstruments), 43 effects (audioeffects), dynamics, routing, convolution, and offline rendering. Ships as pydevices-audioif with pydevices-audioinstruments and pydevices-audioeffects.
  • 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.
  • micropython-pydevices — The PyDevices patch queue for MicroPython, kept like a distribution keeps one: an ordered, provenance-tracked patch series over a pinned upstream release, with profiles for Windows networking/FFI, desktop, and WebAssembly, plus the wasm bridge usermod and variant.

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.

Pinned Loading

  1. pydevices-examples pydevices-examples Public

    Examples, integration guides, and an installable PyScript gallery for the PyDevices driver stack.

    Python 52 11

  2. pydevices pydevices Public

    Portable display, audio, event, board-config, and hardware-driver packages for MicroPython, CircuitPython, and CPython.

    Python

  3. audioif audioif Public

    CircuitPython's audio system (audiocore, synthio, audiomixer, effects, audiomp3), ported to MicroPython.

    C

  4. workbench workbench Public

    Forked from vshymanskyy/ViperIDE

    PyDevices Workbench — MicroPython IDE for Web and Mobile: built-in device simulator plus USB/BLE/WebREPL board connectivity. Built on ViperIDE.

    JavaScript

  5. displayif displayif Public

    Native display-interface modules for PyDevices on MicroPython and CircuitPython.

    C 1

Repositories

Showing 10 of 22 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…