CircuitPython Custom Build todbot/CircuitPython_Custom

Build customized CircuitPython firmware on demand using GitHub Actions — no local toolchain required.
Start from any supported board, then tune it: enable or disable CIRCUITPY_* features, add frozen Python modules, choose a specific release or branch, and download the resulting .uf2 straight from GitHub Actions artifacts.

Board

Build Options

Loading releases…

Tag, commit (≥8.1.0), or "latest"

CIRCUITPY_* Features

Check a flag to override it. Amber = board sets this explicitly. Teal = port default. Select a board to see effective values.

Select a board to see its flag values, or browse all flags below.

CIRCUITPY_* Overrides

Values from this board's mpconfigboard.mk. Check a row to override it.

Select a board to see its flags.

Frozen Modules

Bold blue = already frozen in the selected board. Unchecking a board default auto-enables "clear".

Loading frozen module list…

CLI Equivalent

Run these commands locally from the root of a CircuitPython checkout.

Select a board to see the equivalent build commands.

GitHub Token

Stored only in your browser's localStorage. Browsing works without a token; triggering builds requires one. Saving your token identifies you via the GitHub API and routes builds to your own fork automatically — you can use this page at its original URL. You must fork this repo first (one-time setup) and enable Actions on your fork (Actions tab → "I understand my workflows, go ahead and enable them"). Classic token: check workflow scope. Fine-grained token: set Repository permissions → Actions: Read and write (not "Workflows") on your fork — though fine-grained tokens may still return 403 on some accounts.

Build