micropython-pydevices

micropython-pydevices — the versioned MicroPython runtime overlay.

micropython-pydevices The PyDevices patch queue for MicroPython, kept like a distribution keeps one: an ordered, provenance-tracked patch series over the pinned upstream release (v1.29.0), with presets, boards and variants that build PyDevices modules into firmware with upstream's own make.

Live Pure-Python Device

Install

One line, on Linux, WSL, or Git Bash on Windows
curl -fsSL https://pydevices.github.io/install.sh | sh

It clones this repository into micropython-pydevices in the current directory (or updates the clone already there), checks the tools every build needs, and tells you what's missing for each port. Add a build after -- to do both at once: curl -fsSL https://pydevices.github.io/install.sh | sh -s -- --port unix --variant pydevices --modules all

On Windows, run it from Git Bash (Start menu, Git Bash), not PowerShell. It clones first, then checks for Python and the MSYS2 toolchain that builds the windows port natively, and prints the install lines for whatever is missing. After that you build from PowerShell or Git Bash with python build_mp.py --port windows --variant pydevices --modules all; the Windows steps have the rest. The other ports build from WSL.

Build

One command; the first run fetches what it needs
cd micropython-pydevices
./build_mp.py          # asks for port, board, variant, flash size and modules
./build_mp.py --port unix --variant pydevices --modules all
./build_mp.py --port esp32 --board ESP32_GENERIC_S3 --variant SPIRAM_OCT --flash 8MB --modules all
./build_mp.py --port rp2 --board RPI_PICO2 --modules displayif,lvgl-micropython

build_mp.py fetches the pinned MicroPython release, applies the patch series, fetches the PyDevices modules you name at their pinned commits and each port's toolchain, and builds into builds/. An esp32 build grows its app partition to fit, and a Pico build sizes its filesystem around the firmware.

Read more

Depth lives in the repository

Newcomer's guide

How a build is put together: the pinned release, our patches, the modules and the variants.

Patch series

Every downstream patch, each justified in its own header.

Boards we build for

The esp32 boards and variants, the Picos, and the unix, Windows and WebAssembly variants.