Install
One line, on Linux, WSL, or Git Bash on Windowscurl -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 needscd 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 repositoryNewcomer'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.