Repository navigation
Conversation
The same command now builds OmniPython (CircuitPython-compatible) firmware: CircuitPython with our C modules compiled in through its own USER_C_MODULES, for CircuitPython's ports and boards. - deps.lock pins CircuitPython at 11.0.0-alpha.1 (520805e12), whose core is MicroPython 1.29. It is cloned into deps/circuitpython, never linked to a sibling checkout, and each build fetches only the submodules its target needs with CircuitPython's tools/ci_fetch_deps.py. Its build tools go in deps/circuitpython-venv. - --modules names modules as for MicroPython; each module's micropython.mk goes in as USER_C_MODULES. A module without C is refused for now. - mpy-cross is built first, and make gets a short BUILD= link to our build dir (raspberrypi's link step overflows the 128 KB single-argument limit with long absolute object paths). - Output in builds/circuitpython/<port>/<board or variant>/ with the same build record; the record logic is now one function both paths use. - modules.lock: pygraphics at b98288c, which builds as a user C module in CircuitPython (pygraphics#41; also brings #36 and #38). - A CI workflow builds CircuitPython's unix port with pygraphics from a bare clone and checks it draws.
bdbarnett
added a commit
that referenced
this pull request
Oct 19, 2026
bdbarnett
added a commit
that referenced
this pull request
Oct 19, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
build_mp.pynow builds OmniPython (CircuitPython-compatible) firmware too: CircuitPython with our C modules compiled in through its ownUSER_C_MODULES, for CircuitPython's ports and boards.It's a flag rather than a second command because the module names and
modules.lock, the workspace links, the output layout and the build record are shared; what differs is one function. The build plan's new section, "CircuitPython-compatible builds", has the details:deps.lockpins CircuitPython at11.0.0-alpha.1(520805e12), whose core is MicroPython 1.29, so itspy/py.mkcarries the sameUSER_C_MODULESblock as our MicroPython builds and a module'smicropython.mkworks unchanged. It's cloned intodeps/circuitpython, never linked to a sibling checkout, and each build fetches only the submodules its target needs with CircuitPython'stools/ci_fetch_deps.py. Its build tools go indeps/circuitpython-venv, from itsrequirements-dev.txt.--modulesworks as for MicroPython. CircuitPython freezes Python its own way, so a module with nomicropython.mkis refused for now rather than left out.BUILD=sub-make trap). make gets a shortBUILD=build-<board>link to our build dir, because raspberrypi's link step echoes every object path in one shell argument, and with a long absolute path in front of each that passed Linux's 128 KB limit.builds/circuitpython/<port>/<board or variant>/, with the same build record. The record logic is now one function both paths use.modules.lock: pygraphics at b98288c, which builds as a user C module in CircuitPython (Build as a user C module in CircuitPython too pygraphics#41). That also brings pygraphics#36 and README and newcomer guide: the installer clones into the current directory #38.What was run:
coverage) with pygraphics: imports, draws, reads the pixels back,implementation()isnative_cmod. A stock build of the same target fails that check.adafruit_feather_rp2040: UF2 built,MODULE_DEF_PYGRAPHICSin the module table,mp_module_pygraphicsin the ELF; firmware 886,968 B of 1,020 KB (84.9 %), 51,400 B more than stock.sparkfun_samd51_thing_plus: the same; 578,332 B of the 1,000 KB firmware region (56.5 %), 41,476 B more than stock.build_mp.py: draws and reads back as before.Not yet: running either board image on hardware.
The banner is CircuitPython's own, e.g.
Adafruit CircuitPython 11.0.0-alpha.1 on 2026-10-08; Adafruit Feather RP2040 with rp2040; the build changes no version string or board name.