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, 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.

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 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.

Tier 4: Target App Hosts & PWA Templates

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 — 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.

Pinned Loading

  1. pydevices-examples pydevices-examples Public

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

    Python 52 11

Repositories

Showing 10 of 18 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…