Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

rp2040py

license pypi version python versions Pre-commit Test MicroPython Releases Test Pi Pico SDK coverage

Raspberry Pi Pico (RP2040) Emulator in Python — started as a port of rp2040js, now grown into its own CLI/SDK toolkit around it (see Differences from upstream rp2040js below). It blinks, runs native code, and even the MicroPython REPL!

See docs/PORTING.md for the file-by-file port status against upstream rp2040js.

Table of Contents

Installation

pip install rp2040py

or, with uv:

uv add rp2040py       # into a project
uv tool install rp2040py   # as a standalone CLI tool
uvx rp2040py ...           # run without installing at all

Any of these gives you the rp2040py console script (python -m rp2040py works identically), so the emulator is runnable without a git checkout - see Run the demo project below for the checkout-equivalent commands.

Environments without compiled-extension support (iOS)

rp2040py ships an optional Cython-accelerated backend as a compiled extension (see Performance) alongside a pure-Python fallback with identical behavior - but a handful of environments, fully sandboxed by the OS with no dynamic-library loading at all, can't load compiled .so extensions or import native code dynamically. So far that's confirmed only for iOS app runtimes like Pythonista and PythonIDE - not Android: both Termux and Python 3 IDE (Pydroid 3) load the compiled rp2040py.native extension fine, confirmed by hand (see "Tested" below). A plain pip install rp2040py in one of the affected iOS environments resolves to a platform-specific wheel that simply won't load. Force the pure-Python universal wheel instead:

pip download rp2040py --only-binary=:all: --platform any --abi none
pip install rp2040py-*.whl --upgrade

This is the exact same artifact rp2040py's own release pipeline builds and publishes for every release (RP2040PY_SKIP_NATIVE_BUILD=1, see .github/workflows/publish.yml's build-pure job) - not a degraded or unsupported build, just the emulator without the compiled speedup.

To confirm you actually got it:

  • Before installing: the downloaded file's name - a genuine pure-Python wheel is rp2040py-<version>-py3-none-any.whl, with no platform/ABI tag (e.g. no cp310-abi3-manylinux...) anywhere in the filename.
  • At runtime: rp2040py.rp2040.RP2040.__module__ is "rp2040py._rp2040" (pure Python) rather than "rp2040py.native._rp2040" (compiled) - equivalently, watch for the UserWarning ("Native extensions are not available...") rp2040py.native raises on import once the compiled backend isn't present, which is the expected, harmless case here rather than an error.

Tested:

  • iOS
    • Pythonista - full support (no [fs] optional dependency); mpremote itself now confirmed to work over --tcp-port, but running the emulator and mpremote at the same time did not work on-device - the app's sandbox appears to only run one Python process per app instance, with no real subprocess/multi-process support, so there's no way to have rp2040py micropython --tcp-port ... and a separate mpremote invocation running concurrently the way this works on a normal OS. This is a constraint of the app sandbox itself, not something rp2040py/rp2040py mpremote can patch around (unlike the list_ports ImportError below).
    • PythonIDE - full support (no [fs] optional dependency); same mpremote-works-but-not-concurrently-with-the-emulator caveat as Pythonista above.
  • Android
    • Termux - full support, including mpremote via rp2040py mpremote (the real mpremote binary alone still fails - pySerial's list_ports has no Android backend and raises ImportError at import time regardless of which subcommand you run; rp2040py mpremote patches around it - see docs/mpremote.md). The compiled rp2040py.native (Cython) extension loads and runs fine here too - confirmed by hand, no pure-Python fallback needed.
    • Python 3 IDE (Pydroid 3) - full support, including mpremote via rp2040py mpremote over --tcp-port (same caveat and same fix as Termux above) and the compiled rp2040py.native (Cython) extension, both confirmed by hand.

Run the demo project

The commands below assume rp2040py is installed (pip install rp2040py / uv add rp2040py / uv tool install rp2040py, or run ad hoc with uvx rp2040py ...). From a checkout of this repo instead, each maps 1:1 onto uv run python demo/*.py (demo/*.py are thin wrappers around the same src/rp2040py/cli code):

rp2040py subcommand Checkout equivalent
rp2040py run ... uv run python demo/emulator_run.py ...
rp2040py micropython ... uv run python demo/micropython_run.py ...
rp2040py kaluma ... uv run python demo/kaluma_run.py ...
rp2040py bench ... uv run python demo/benchmark.py ...

Native code

You'd need to get hello_uart.hex by building it from the pico-examples repo, then copy it to the rp2040py root directory and run:

rp2040py run
# or, without installing:
uvx rp2040py run

You can also specify the path to the image on the command line and/or load a UF2 image:

rp2040py run --image ./my-pico-project.uf2

A GDB server will be available on port 3333, and the data written to UART0 will be printed to the console.

MicroPython code

No manual download needed: just run

rp2040py micropython
# or, without installing:
uvx rp2040py micropython

and enjoy the MicroPython REPL! Quit the REPL with Ctrl+X. The first run fetches the recommended MicroPython build (1.21.0, currently) from micropython.org into ~/.cache/rp2040py and reuses that cached file afterwards (falls back to the current directory if the cache directory isn't writable). 1.21 is recommended: it does far less work before dropping to the REPL prompt than newer releases, so it boots dramatically faster in the emulator (see the benchmark below). Newer releases work too, just slower to reach the REPL - e.g. 1.28.0.

A different version, a local UF2 file, or a CircuitPython version (--circuitpython, see below) can be loaded by supplying the --image option - a known version tag (1.28.0), or a path to a UF2 file already on disk:

[!TIP] Booting real firmware means executing millions of Thumb instructions through a pure-Python interpreter, which is dramatically slower than V8 JIT-compiling the equivalent JS in rp2040js. Measured with demo/benchmark.py booting MicroPython 1.28 + littlefs, then running a typical resident script (while True: print(...); time.sleep(1), same as ci-micropython.yml's fixture) to its first output:

Interpreter Time
CPython 3.10 188.98s
CPython 3.10 + rp2040py.native (Cython, on by default) 25.83s (~7.3x)
CPython 3.14 + PYTHON_JIT=1 113.77s (~1.7x)
PyPy 3.10 8.75s (~22x)

The rp2040py.native figure improved from an earlier 46.65s (~4.1x) after fixing two Cython compilation gotchas in the bus/interpreter hot path (untyped address/value parameters forcing a PyLong box on every memory access, and bare 0x80000000+ hex literals silently compiling as Python-object constants instead of C literals) - see docs/BACKLOG.md for the full writeup, including why PyPy's gap didn't close by the same amount (a real boot spends a large, unchanged share of its time in still-Python peripheral emulation that these fixes don't touch). This row is CPython 3.10 specifically (this project's default target, and below the abi3 floor - see Performance below): CPython 3.11+ actually measures slower in absolute terms (33.90s, ~5.6x) on the same fixed source, purely from the stable-ABI (Py_LIMITED_API) build every 3.11+ wheel uses - see the same BACKLOG.md section for that gap too, found (and initially mismeasured!) while producing these very numbers.

The rp2040py.native row is what most installs actually get with no extra effort - see Performance below. It doesn't help PyPy (compilation is deliberately skipped there - PyPy's own JIT already does better on its own than routing through rp2040py.native's CPython-C-API-based extension would), so for CPU-bound runs PyPy is still the clear winner: uv run --python pypy3.10 --no-dev -- rp2040py micropython ... (or ... -- python demo/micropython_run.py ... from a checkout). See docs/PORTING.md for the full breakdown (including a synthetic instructions/sec benchmark) and CI's python_runtime matrix, which tests all three.

This is also why 1.21 is the recommended version: reaching the bare REPL prompt is fast on both 1.21 and 1.28 (well under a second, whether or not a littlefs main.py auto-runs first) - the gap above is specifically about running a script shaped like the one above afterward. On the same machine and CPython 3.10, that same script reaches its first print() in 3.72s (1,418,835 steps) under 1.21 versus 188.98s (64,679,599 steps) under 1.28 - identical instruction counts run-to-run (this is deterministic, not host-speed noise), so the ~45x gap is a real difference in how much work 1.28 does per loop iteration, not an emulator bug: profiling shows the core essentially never reaches WFI/idle during that time, so it's real Thumb instructions being interpreted, not something hanging. 1.28 still boots and mounts a mklittlefs-built littlefs image correctly (that's exactly the version pinned disk_version fixed compatibility for, see below); it's simply much more expensive to actually run typical resident scripts on.

Core-level per-instruction throughput work continues independently of this version gap (most recently: RP2040.write_uint32() was checking a peripheral dict lookup before cheap RAM/flash range comparisons - see docs/PORTING.md for the running log). These are general wins, not something that closes the 1.21-vs-1.28 gap itself - that gap is real work MicroPython 1.28's own compiled firmware does per loop iteration, not something this project's emulator code controls.

rp2040py micropython --image 1.28.0
rp2040py micropython --image my_image.uf2

A GDB server on port 3333 can be enabled by specifying the --gdb flag:

rp2040py micropython --gdb

For using the MicroPython demo code in tests, --expect-text can come in handy: it will look for the given text in the serial output and exit with code 0 if found, or 1 if not found. It's repeatable (--expect-text foo --expect-text bar stops once both have appeared, on any line, not necessarily the same one or in that order) and, with --expect-regex, each --expect-text value is matched as a Python re pattern (via re.search) instead of a plain substring. You can find an example in the MicroPython CI test.

For one-shot, non-interactive runs (like micropython's own CLI), pass one of -c <command>, -m <module>, or a script <filename> - mutually exclusive, matching [-c <command> | -m <module> | <filename>]. Instead of dropping into the REPL, rp2040py boots the device, runs it via the raw-REPL protocol, prints its stdout/stderr, and exits with the device's exit status (0 on success, 1 if it raised):

rp2040py micropython -c "print(1 + 1)"
rp2040py micropython -m sys
rp2040py micropython path/to/script.py

mpremote

--tcp-port <port> serves the console over a plain TCP socket instead of this process's own stdio - for tools that expect a serial port but can't open one, notably mpremote in a sandboxed environment with no serial support at all (e.g. Pythonista, see above). No client-side patching needed - mpremote connect socket://host:port just talks directly to rp2040py, via pySerial's own built-in socket:// URL support:

rp2040py micropython --tcp-port 4321
# in another terminal:
mpremote connect socket://127.0.0.1:4321 exec "print(1 + 1)"
mpremote connect socket://127.0.0.1:4321 fs cp your_script.py :main.py

--pty (POSIX only) is the alternative: a real pseudo-terminal instead of a TCP socket, whose slave side (e.g. /dev/pts/3) is a genuine POSIX serial device path - everything --tcp-port supports also works here, plus mpremote's own bare interactive REPL, which does not work over --tcp-port's socket:// transport through the real mpremote binary (see below) - though rp2040py mpremote (a thin proxy subcommand, same arguments as mpremote itself) patches around that specific crash, so rp2040py mpremote connect socket://host:port repl works too, no --pty needed.

See docs/mpremote.md for the full picture: connection details for both flags, the rp2040py mpremote proxy and the upstream bug it patches around (micropython#18660), how to quit the emulator when mpremote owns the console, and an explicit list of which mpremote commands are verified working against each transport (exec, fs, mount, run, reset/bootloader, the interactive repl over --pty or rp2040py mpremote, ...) versus the remaining documented limitations (the real mpremote binary's own bare interactive REPL over --tcp-port, --pty on Windows, and df on MicroPython ≤1.21).

Filesystem support

With MicroPython, you can use the filesystem on the Pico. This becomes useful as more than one script file is used in your code. Build a LittleFS formatted filesystem image (see mklittlefs below) and pass it with --littlefs path/to/littlefs.img, and your main.py will be automatically started from there (it's silently skipped, not an error, if the file doesn't exist - but it's never loaded unless --littlefs is given explicitly, even if a littlefs.img happens to sit in the current directory).

The mklittlefs subcommand builds such an image (requires the optional fs extra: pip install rp2040py[fs] / uv sync --extra fs). Every file keeps its own basename; pass --main to mark one of them as main.py (auto-run on boot) - omit it entirely for a filesystem with no auto-run script, e.g. modules staged for a raw-REPL-driven test, or omit files entirely for an empty formatted image. Always builds fresh - pass -f/--force to overwrite an existing --output (there's no "add these files to the existing image" mode; rebuild from the full file list):

rp2040py mklittlefs -o littlefs.img your_main.py your.py files.py here.py --main your_main.py
rp2040py mklittlefs -o littlefs.img --force your_main.py --main your_main.py  # to overwrite it later

--disk-version {2.0,2.1} selects the littlefs on-disk format (defaults to 2.0): MicroPython <=1.21's bundled littlefs can only mount 2.0, while 1.28's reads both - see docs/PORTING.md for why.

--target {micropython,circuitpython,kaluma} presets --block-size/--block-count to a known firmware's own filesystem layout instead of spelling them out by hand (mutually exclusive with passing them explicitly) - see the Kaluma section below for why its layout differs from MicroPython/CircuitPython's.

The filesystem is writeable - MicroPython's os/rp2.Flash calls go through a real JEDEC SPI-NOR flash command emulation in the SSI peripheral (RPSSI), the same peripheral real hardware uses to erase/program flash.

--dump-fs <path> dumps the device's filesystem flash region back out to a local file when the micropython/kaluma subcommand exits (Ctrl+X, --expect-text, or the end of a -c/-m/script run) - the same layout --littlefs path/to/littlefs.img reads back in, so a dump can be fed straight back with --littlefs/--dump-fs pointing at the same path for persistence across runs:

rp2040py micropython --littlefs littlefs.img --dump-fs littlefs.img -c "open('log.txt', 'a').write('run\n')"

[!TIP] This makes --dump-fs a littlefs-python-free alternative to mklittlefs: instead of building the image on the host with littlefs-python, boot the real emulated MicroPython firmware against blank flash, write files to it the normal way (open(path, "wb").write(data), exactly as code running on a real Pico would), and dump the resulting filesystem - built by MicroPython's own bundled littlefs, not a separately-installed library. demo/mklittlefs_dump.py generates such a script from a list of local files (mirroring mklittlefs's own --main semantics) for use as the positional <filename> argument:

python demo/mklittlefs_dump.py your_main.py your.py files.py here.py --main your_main.py \
    --output flash_script.py
rp2040py micropython --dump-fs littlefs.img flash_script.py

Useful when the fs extra isn't installed, or to build against exactly the same littlefs version/behavior a given firmware boots with instead of whatever littlefs-python happens to bundle.

CircuitPython code

To run the CircuitPython demo, follow the directions above for MicroPython but add --circuitpython:

rp2040py micropython --circuitpython

and start the CircuitPython REPL! As with MicroPython, the firmware (8.0.2 by default) is downloaded automatically on first use; a different version or a local file can be given via --image (e.g. --image 10.2.1 or a path to an already-downloaded UF2). The rest of the experience is the same as the MicroPython demo (Ctrl+X to exit, the --gdb option, etc).

Filesystem support

For CircuitPython, you can create a FAT12 filesystem in Linux using the truncate and mkfs.vfat utilities:

truncate fat12.img -s 1M  # make the image file
mkfs.vfat -F12 -S512 fat12.img  # create the FAT12 filesystem

You can then mount the filesystem image and add files to it:

mkdir fat12  # create the mounting folder if needed
sudo mount -o loop fat12.img fat12/  # mount the filesystem to the folder
sudo cp code.py fat12/  # copy code.py to the filesystem
sudo umount fat12/  # unmount the filesystem

Then pass it explicitly with --fat12 (no default - fat12.img sitting in the current directory is never picked up implicitly):

rp2040py micropython --circuitpython --fat12 fat12.img

CircuitPython doesn't typically write to its own filesystem at runtime the way MicroPython's os/rp2.Flash does, so this hasn't been separately exercised - but the underlying flash-write path (see the MicroPython filesystem support section) is the same SSI peripheral either way.

Kaluma (other USB-CDC firmware, not MicroPython/CircuitPython)

rp2040py's USB/CDC emulation isn't MicroPython-specific - any firmware presenting a CDC-ACM serial console works the same way underneath. The kaluma subcommand runs Kaluma (a JavaScript runtime for RP2040), verified against 1.2.1 - it boots, USB enumerates, and evaluates real JS at its REPL prompt (e.g. sending 1+1 gets back 2):

rp2040py kaluma
# or, without installing:
uvx rp2040py kaluma
rp2040py kaluma --image 1.2.1
rp2040py kaluma --image my_kaluma_image.uf2

As with micropython, missing firmware is downloaded automatically (1.2.1 by default - the newest release still shipping a plain, non--w, RP2040 pico build; 1.3.0+ only ships pico2/pico2-w). Ctrl+X to exit, same as the MicroPython demo. Unlike micropython, kaluma is interactive-only - Kaluma has no raw-REPL-equivalent protocol, so there's no -c/-m/<filename>.

An optional <script.js> positional stages a local file into Kaluma's "user program" flash region before boot - the same one kaluma flash <file> writes to on real hardware, which Kaluma auto-executes on every boot:

rp2040py kaluma your_script.js

Give it a few real seconds after connecting before expecting output - like MicroPython, booting real firmware through an interpreted emulator takes actual wall-clock time (JerryScript engine init, then running your script), not something --expect-text needs to work around, just something to expect if driving this non-interactively.

Separately, Kaluma has its own pluggable littlefs-backed filesystem (see its docs), mounted from a 512K region of flash with 4096-byte blocks - a different flash region than the user-program one above, with no auto-run semantics of its own (plain storage, accessible from JS via require('fs')). Build a compatible image with mklittlefs and pass it via --littlefs explicitly (no default - unlike MicroPython's --littlefs, it's never picked up implicitly, even from a kaluma_littlefs.img sitting in the current directory):

rp2040py mklittlefs -o kaluma_littlefs.img --target kaluma your_script.js
rp2040py kaluma --littlefs kaluma_littlefs.img

--target {micropython,circuitpython,kaluma} presets --block-size/--block-count for a known firmware's filesystem layout (mutually exclusive with passing them explicitly) - omit both for MicroPython's own defaults.

--dump-fs <path> works here too, dumping the same littlefs-formatted region back out on exit - but unlike micropython, kaluma has no non-interactive exec mode to script filesystem writes through (no -c/<filename> raw-REPL equivalent, see above), so the mklittlefs-without- littlefs-python trick above doesn't apply the same way; use it interactively via require('fs') at the REPL instead, or stick with mklittlefs.

--tcp-port <port>/--pty also work here, same as micropython - see mpremote above (that section is mpremote-specific, but the underlying mechanism, a plain socket/pty serving the console instead of this process's own stdio, is not).

[!NOTE] Without a valid --littlefs image, board.js's unconditional mount-at-startup logs Bad block at 0x0/Superblock 0x0 has become unwritable/Error: No space left on device against the unformatted flash region - purely cosmetic, Kaluma catches and prints the error without aborting, so boot and <script.js> auto-run both continue normally past it. This used to reproduce even against a validly-built mklittlefs image, not just blank flash - no longer reproduced after the SSI flash-read/write fixes in docs/BACKLOG.md (a real --target kaluma image now mounts and reads/writes cleanly, verified via tests/kaluma/index-flash-rw.js), though that wasn't a deliberate target of those fixes and hasn't been separately root-caused - flag it if it resurfaces.

Kaluma prints its "Welcome to Kaluma" banner exactly once, right at boot - but that's before the emulated USB-CDC connection to the host is actually up, so (same as real hardware racing a host terminal that isn't already attached - Kaluma's own docs: "if you cannot see the prompt, press Enter several times") those bytes are typically gone by the time anything's listening. kaluma doesn't send anything to work around this - type .hi yourself at the prompt to reprint the same banner on demand if you need to see it; if you're scripting against a device's output instead of typing at it interactively, stage a <script.js> and match against its output, which isn't racy (see the Kaluma CI test, which does exactly that).

Bootrom revisions

run, micropython, kaluma, and bench all boot a fixed bootrom (B1, bundled - no download needed) by default. --bootrom picks a different one: a b0/b1/b2 version tag (downloaded automatically from Raspberry Pi's pico-bootrom-rp2040 releases and cached locally, same as --image), or a local .elf/.bin path:

rp2040py micropython --bootrom b2
rp2040py micropython --bootrom path/to/custom.elf

Raspberry Pi only publishes .elf for each revision - pyelftools (a normal dependency, not an extra: it's a pure-Python wheel with no platform-specific build to justify gating it) parses out the ROM image on the fly, no separate conversion step needed. A local .bin (e.g. produced with objcopy -O binary) is loaded directly with no parsing at all.

Library API

Everything above is the CLI, but the emulator is also usable programmatically - e.g. to run code against a device and check its output the way Thonny does over a real serial port, from a test suite or another tool. rp2040py.device.MicroPythonDevice boots a UF2 image and lets you run code on it via the same raw-REPL protocol mpremote run/tools/pyboard.py use, interrupting anything already running on the device first (e.g. an auto-run main.py from a littlefs image).

Blocking (exec()/exec_file()) is the simplest form - each call returns once the device finishes, or raises TimeoutError after timeout elapses (30s by default, since unlike the CLI there's no Ctrl+C to fall back on):

from rp2040py.device import MicroPythonDevice

with MicroPythonDevice("RPI_PICO-20231005-v1.21.0.uf2") as device:
    stdout, stderr = device.exec("print(1 + 1)")
    assert stdout == b"2\r\n"

    stdout, stderr = device.exec_file("my_script.py")

Callback style, via exec_async()'s concurrent.futures.Future - no separate API needed, Future.add_done_callback() does this out of the box:

def on_done(future):
    stdout, stderr = future.result()
    print(stdout.decode())


device.exec_async("print(1 + 1)").add_done_callback(on_done)

asyncio, via astart()/aexec()/aexec_file():

async def main():
    async with MicroPythonDevice("RPI_PICO-20231005-v1.21.0.uf2") as device:
        stdout, stderr = await device.aexec("print(1 + 1)")

All of these - blocking, callback, and asyncio - share one ThreadPoolExecutor(max_workers=1) per device: since the device only has a single REPL channel and can't run two exec()s at once, calling exec_async()/aexec() again before a previous call finishes doesn't raise, it just queues behind it and runs once its turn comes. This is exactly what powers the CLI's own micropython -c/-m/<filename> batch mode - it's a caller of this same API, not a separate implementation. start()/start_async()/stop() are available directly if you want more control over the lifecycle than the context manager gives you.

Performance

The interpreter core (CortexM0Core) and the memory bus's hot read/write paths are also available as a compiled Cython extension (rp2040py.native), giving roughly 7x the instruction throughput of the pure-Python implementation on both a synthetic benchmark and a real MicroPython boot (see docs/BACKLOG.md for the full measured breakdown).

This is on by default and needs nothing from you: pip install rp2040py builds it automatically when a C compiler is available (prebuilt wheels are published for common platforms, so most installs don't even need one) and falls back to the identical pure-Python implementation otherwise

  • correctness is the same either way, just the speed differs. A couple of environment variables exist for cases where you want to control this explicitly:

  • RP2040PY_SKIP_CYTHON=1 - force the pure-Python implementation at runtime, even if the compiled extension is installed (e.g. to rule out a native-specific issue).

  • RP2040PY_SKIP_NATIVE_BUILD=1 - skip compiling the extension at build time, for a deliberately pure-Python install/wheel.

Differences from upstream rp2040js

rp2040py started as a straight port of rp2040js - the core CPU/peripheral emulation still tracks it closely, and docs/PORTING.md keeps a file-by-file checklist of that. But it's grown well past a 1:1 translation into its own toolkit with no rp2040js equivalent, built around actually running real firmware from a shell rather than embedding the emulator as a library (rp2040js's own primary use case, e.g. inside Wokwi):

  • A real packaged CLI - rp2040py/python -m rp2040py, installable via pip/uv, not just a checkout-only demo/*.ts script. Firmware (MicroPython/CircuitPython/Kaluma) is auto-downloaded and cached by version tag instead of needing to be fetched and placed by hand.
  • A real, writeable filesystem: RPSSI (the SSI peripheral MicroPython/CircuitPython's os/rp2.Flash calls go through to erase/program flash) implements the actual JEDEC SPI-NOR command set (WREN/WRDI, status/JEDEC-ID reads, page program, sector/block erase) - the same commands real flash hardware understands - not just a register stub. rp2040js has the same gap MicroPython/CircuitPython on rp2040py used to have (see docs/BACKLOG.md's "SSI flash-write support"): on-device open(path, "w")/os.remove()/... genuinely persist to the emulated flash now, instead of raising/no-opping against an unimplemented peripheral.
  • A filesystem toolkit: mklittlefs builds a littlefs image on the host (needs littlefs-python, the optional fs extra); --dump-fs builds one without that dependency instead, by writing files to a booted device's real filesystem the normal way and reading the resulting flash region back out - see mpremote and Filesystem support above.
  • A programmatic device API (rp2040py.device.MicroPythonDevice/KalumaDevice) for driving a booted device from another Python program over the raw-REPL protocol (device.exec("print(1+1)")) - the same API micropython -c/-m/<filename> and --tcp-port themselves are built on, not a separate implementation. --tcp-port/--pty in particular let any serial-oriented external tool - mpremote chief among them, including its own bare interactive REPL via rp2040py mpremote (see mpremote) - drive the emulator over a real socket or pty, something rp2040js has no analogue for at all (no pty/socket-backed USB-CDC passthrough anywhere in its source, only stdio-driven demo scripts).
  • Broader firmware coverage: MicroPython, CircuitPython, and Kaluma (a second, independent USB-CDC-console JS runtime for RP2040 - unrelated to rp2040js despite both being JS) all boot and run against this emulator; a built-in GDB server (--gdb) works against any of them.
  • machine.reset()/machine.bootloader() actually reset the device: rp2040js's own RPWatchdog.onWatchdogTrigger (src/peripherals/watchdog.ts) defaults to logging "Watchdog triggered, but no reset handler provided" and does nothing else - the emulated CPU spins forever waiting for a reset that never happens. rp2040py's RPWatchdog.on_watchdog_trigger performs a real in-place reset (CPU core, PWM/DMA/USB-CDC peripheral state) and jumps back to flash's entry point, preserving flash/filesystem content and every externally-referenced peripheral object's identity - mpremote reset/mpremote bootloader (the latter performs the same reset rather than entering actual BOOTSEL mode, which isn't implemented) both return promptly instead of hanging.
  • Configurable bootrom revision (--bootrom b0/b1/b2, or a local .elf/.bin) - see Bootrom revisions below - auto-downloaded and cached the same way firmware images are. rp2040js ships exactly one hardcoded bootrom build (demo/bootrom.ts, revision B1), with no way to select a different revision at all.
  • An optional native-compiled backend (rp2040py.native, Cython) for when pure-Python instruction dispatch is the bottleneck - see Performance above - alongside a pure-Python universal wheel for environments that can't load compiled extensions at all (e.g. Pythonista).

See docs/PORTING.md#known-differences-from-rp2040js for the exhaustive, file-level breakdown (including behavioral divergences found while porting, not just added features).

Used by

  • ballistics-lab/micropython-bclibc — tests its RP2040 usermod/natmod builds in CI by actually booting real firmware through this emulator (o-murphy/rp2040py/.github/actions/setup-rp2040py), not just compiling it.

Learn more

  • rp2040js — the upstream TypeScript emulator this project is ported from.
  • docs/PORTING.md — port status, file by file.

License

Released under the MIT license. Copyright (c) 2021, Uri Shaked. Copyright (c) 2026, Dmytro Yaroshenko.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rp2040py-0.2.0rc1.tar.gz (473.4 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

rp2040py-0.2.0rc1-py3-none-any.whl (215.3 kB view details)

Uploaded Python 3

rp2040py-0.2.0rc1-cp314-cp314t-win_arm64.whl (1.0 MB view details)

Uploaded CPython 3.14tWindows ARM64

rp2040py-0.2.0rc1-cp314-cp314t-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.14tWindows x86-64

rp2040py-0.2.0rc1-cp314-cp314t-win32.whl (1.1 MB view details)

Uploaded CPython 3.14tWindows x86

rp2040py-0.2.0rc1-cp314-cp314t-musllinux_1_2_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

rp2040py-0.2.0rc1-cp314-cp314t-musllinux_1_2_i686.whl (1.2 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ i686

rp2040py-0.2.0rc1-cp314-cp314t-musllinux_1_2_armv7l.whl (1.1 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARMv7l

rp2040py-0.2.0rc1-cp314-cp314t-musllinux_1_2_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

rp2040py-0.2.0rc1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

rp2040py-0.2.0rc1-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl (1.1 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARMv7lmanylinux: glibc 2.31+ ARMv7l

rp2040py-0.2.0rc1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

rp2040py-0.2.0rc1-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (1.2 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ i686manylinux: glibc 2.5+ i686

rp2040py-0.2.0rc1-cp314-cp314t-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

rp2040py-0.2.0rc1-cp314-cp314t-macosx_10_15_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.14tmacOS 10.15+ x86-64

rp2040py-0.2.0rc1-cp314-cp314t-macosx_10_15_universal2.whl (1.5 MB view details)

Uploaded CPython 3.14tmacOS 10.15+ universal2 (ARM64, x86-64)

rp2040py-0.2.0rc1-cp314-cp314-android_24_x86_64.whl (1.1 MB view details)

Uploaded Android API level 24+ x86-64CPython 3.14

rp2040py-0.2.0rc1-cp314-cp314-android_24_arm64_v8a.whl (1.1 MB view details)

Uploaded Android API level 24+ ARM64 v8aCPython 3.14

rp2040py-0.2.0rc1-cp313-cp313-android_24_x86_64.whl (1.1 MB view details)

Uploaded Android API level 24+ x86-64CPython 3.13

rp2040py-0.2.0rc1-cp313-cp313-android_24_arm64_v8a.whl (1.1 MB view details)

Uploaded Android API level 24+ ARM64 v8aCPython 3.13

rp2040py-0.2.0rc1-cp311-abi3-win_arm64.whl (1.0 MB view details)

Uploaded CPython 3.11+Windows ARM64

rp2040py-0.2.0rc1-cp311-abi3-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.11+Windows x86-64

rp2040py-0.2.0rc1-cp311-abi3-win32.whl (1.0 MB view details)

Uploaded CPython 3.11+Windows x86

rp2040py-0.2.0rc1-cp311-abi3-musllinux_1_2_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.11+musllinux: musl 1.2+ x86-64

rp2040py-0.2.0rc1-cp311-abi3-musllinux_1_2_i686.whl (1.2 MB view details)

Uploaded CPython 3.11+musllinux: musl 1.2+ i686

rp2040py-0.2.0rc1-cp311-abi3-musllinux_1_2_armv7l.whl (1.1 MB view details)

Uploaded CPython 3.11+musllinux: musl 1.2+ ARMv7l

rp2040py-0.2.0rc1-cp311-abi3-musllinux_1_2_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.11+musllinux: musl 1.2+ ARM64

rp2040py-0.2.0rc1-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

rp2040py-0.2.0rc1-cp311-abi3-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl (1.1 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.17+ ARMv7lmanylinux: glibc 2.31+ ARMv7l

rp2040py-0.2.0rc1-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

rp2040py-0.2.0rc1-cp311-abi3-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (1.2 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.28+ i686manylinux: glibc 2.5+ i686

rp2040py-0.2.0rc1-cp311-abi3-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.11+macOS 11.0+ ARM64

rp2040py-0.2.0rc1-cp311-abi3-macosx_10_9_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.11+macOS 10.9+ x86-64

rp2040py-0.2.0rc1-cp311-abi3-macosx_10_9_universal2.whl (1.4 MB view details)

Uploaded CPython 3.11+macOS 10.9+ universal2 (ARM64, x86-64)

rp2040py-0.2.0rc1-cp310-cp310-win_arm64.whl (1.0 MB view details)

Uploaded CPython 3.10Windows ARM64

rp2040py-0.2.0rc1-cp310-cp310-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.10Windows x86-64

rp2040py-0.2.0rc1-cp310-cp310-win32.whl (1.0 MB view details)

Uploaded CPython 3.10Windows x86

rp2040py-0.2.0rc1-cp310-cp310-musllinux_1_2_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

rp2040py-0.2.0rc1-cp310-cp310-musllinux_1_2_i686.whl (1.2 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ i686

rp2040py-0.2.0rc1-cp310-cp310-musllinux_1_2_armv7l.whl (1.1 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARMv7l

rp2040py-0.2.0rc1-cp310-cp310-musllinux_1_2_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

rp2040py-0.2.0rc1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

rp2040py-0.2.0rc1-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl (1.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARMv7lmanylinux: glibc 2.31+ ARMv7l

rp2040py-0.2.0rc1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

rp2040py-0.2.0rc1-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (1.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ i686manylinux: glibc 2.5+ i686

rp2040py-0.2.0rc1-cp310-cp310-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

rp2040py-0.2.0rc1-cp310-cp310-macosx_10_9_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

rp2040py-0.2.0rc1-cp310-cp310-macosx_10_9_universal2.whl (1.5 MB view details)

Uploaded CPython 3.10macOS 10.9+ universal2 (ARM64, x86-64)

File details

Details for the file rp2040py-0.2.0rc1.tar.gz.

File metadata

  • Download URL: rp2040py-0.2.0rc1.tar.gz
  • Upload date:
  • Size: 473.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for rp2040py-0.2.0rc1.tar.gz
Algorithm Hash digest
SHA256 bcc3ab81acf78888fdfd04f6c2bdb2138b440210c5a020fdaa98dc53a4a83a3d
MD5 be9d3c674271ccc25bf13872d94e5b39
BLAKE2b-256 e72a5bbc2845cdf42fc9bdb636202b7b2be89c4cf932efe1cfd60a3fb7ea1262

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1.tar.gz:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-py3-none-any.whl.

File metadata

  • Download URL: rp2040py-0.2.0rc1-py3-none-any.whl
  • Upload date:
  • Size: 215.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for rp2040py-0.2.0rc1-py3-none-any.whl
Algorithm Hash digest
SHA256 afb8327dab33ffb55f1d74c28f8b531fb1fe1ac709c93eed40b49942bebe57fd
MD5 21414d38c5e4ca7d6ed22cce03270037
BLAKE2b-256 7d520cc4391df78d670472da7a0bf3643e6f89386351a0ab0c8fea597a7bc84a

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-py3-none-any.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp314-cp314t-win_arm64.whl.

File metadata

File hashes

Hashes for rp2040py-0.2.0rc1-cp314-cp314t-win_arm64.whl
Algorithm Hash digest
SHA256 1a2f94c4540211a893cb38132734c987ee5df2b5b355b36a0b7ac15a85aa30a1
MD5 c784baf0e04f142ef3309e1b99f8ed35
BLAKE2b-256 3c37d1a32926073c62ba111182032e6f1675aa7b512c358b8ac8f6cb9dfd2abf

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp314-cp314t-win_arm64.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp314-cp314t-win_amd64.whl.

File metadata

File hashes

Hashes for rp2040py-0.2.0rc1-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 3742dc097f79e65e7e1c1d2dbb7e9009912c1f88307999038edd0f1ea2c90151
MD5 b06242eb2b784b7fcf723833745986f9
BLAKE2b-256 0437fd3887a0ac5196acb488bdf17370e779c0d5613416d94efba434e42228cc

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp314-cp314t-win_amd64.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp314-cp314t-win32.whl.

File metadata

  • Download URL: rp2040py-0.2.0rc1-cp314-cp314t-win32.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.14t, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for rp2040py-0.2.0rc1-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 1c17b22e3a12da7f651d0f925726436ef1c4c60ead627afa145eded3ad6958a8
MD5 3c134a3566024d53e07908a6d64fc5d9
BLAKE2b-256 58460fffb32b9d5ffe961210bd223816a3ef676d2ff0e8b78f30c2736f945acf

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp314-cp314t-win32.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rp2040py-0.2.0rc1-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 fa53c893b035959d0d832dc1549e63b663bcd8c3855f531b2a4ad35db354663d
MD5 f1e8cfb8684f215ca9cf65574cdb0c17
BLAKE2b-256 7ea62ee46a5066bef6c256e78dbb3fb51dd5854451219953195869fbc53432a5

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp314-cp314t-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp314-cp314t-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for rp2040py-0.2.0rc1-cp314-cp314t-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 841bf4811c289248c52f0279e8951074ecf7adc596e606fc120963f1497aab92
MD5 0afc6019333448057d0dace2e33f93c1
BLAKE2b-256 dc99bd32fea780ae2b0880500b691efa9fcaf3e9b372daf3a325227912c71679

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp314-cp314t-musllinux_1_2_i686.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp314-cp314t-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for rp2040py-0.2.0rc1-cp314-cp314t-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 385b45529269472cd1068421c01bdc18bce2410ee4e30fc70866bfb92f1333d6
MD5 63cf884067a017bf4f4d76aaab93f860
BLAKE2b-256 87394e7c86a39ae762f309dee4dfd692b78e5847681e113ca6302dd9077a8e22

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp314-cp314t-musllinux_1_2_armv7l.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for rp2040py-0.2.0rc1-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 964eec3ae5ecd5bf858c73757ab5b07f57fe5becb4bb4646eb1b4e166691c3f0
MD5 8121541ff4a8a12fe37b0080f03767bd
BLAKE2b-256 5ad2184bb63cbc197ba1924b80fa909bc3b4f9d0a73e304a6a846b76527884d1

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp314-cp314t-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for rp2040py-0.2.0rc1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 860f10563c9f3ac28594e55e233cfb9fea8679e50bcbcad8e63216d90ab63cc7
MD5 4fe0f12a3d60575b2d28af3086f8e360
BLAKE2b-256 f1257a0cffc606dcacbfc6760d583a6bdd586c9b35bb47397cda580c4c8469f0

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl.

File metadata

File hashes

Hashes for rp2040py-0.2.0rc1-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl
Algorithm Hash digest
SHA256 c6aa6c232d8d3c0323d0ba58f96612a74eafb5675517508f7dd8a89ccd2ba843
MD5 fe8b09079d800465885c23e124500349
BLAKE2b-256 ab21322e97c6a9344febae65bede64618b651db520e929dff0877232924793ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for rp2040py-0.2.0rc1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 562871dde066c40ba028def56fb744496c136f15c81e89aeac1c49fbb9729db4
MD5 dd2dc7f557c362f516f884cb3c7ed5d7
BLAKE2b-256 1aca396c61d239f166a67719364fa93c6d868a9e7a8d6affe6887c6fbf726a9f

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl.

File metadata

File hashes

Hashes for rp2040py-0.2.0rc1-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 44e9b2315faf6ef5d0dd2e96dea22fe15dfd6f9d7c28310de8a459fe58d8245c
MD5 b3e5d75372da8d282e64d29033e0cad1
BLAKE2b-256 1d06880b91276f1a7202069cced8fd5858d8236b82f45f1bd381f29a54bcdae9

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rp2040py-0.2.0rc1-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cd0b6ddf3b08cccc7cba40f68ede29fde550c86b35ce2d7919880ec3695c150c
MD5 fb7cfa7e2afcb7d0db60122a05db6d9b
BLAKE2b-256 6a86afd9645fc4f1ee5fb0f63c74a89ea22f97e5f8a34352b067098a65aaee41

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp314-cp314t-macosx_11_0_arm64.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp314-cp314t-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for rp2040py-0.2.0rc1-cp314-cp314t-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 efefc87730342afa6c1a3db22b4b6083028d7c01ad9788a36bb16afab831de2d
MD5 6a28ca8c00eda6f44f9177d682ebc5b5
BLAKE2b-256 37d6ddeacc4a2747a4cb14ccf5c023a565e812c31793e06ff7a12ac2c597cf0e

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp314-cp314t-macosx_10_15_x86_64.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp314-cp314t-macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for rp2040py-0.2.0rc1-cp314-cp314t-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 79937f31e5e259c6b7481361d3555be4ec65c59d432335d251146913302c469d
MD5 14696798ac808304ae8d2e33995cde3e
BLAKE2b-256 7aa303638fb87d199385dfb9018b80a4a560b7cbef6dbe2314c3f427f0bc649f

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp314-cp314t-macosx_10_15_universal2.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp314-cp314-android_24_x86_64.whl.

File metadata

File hashes

Hashes for rp2040py-0.2.0rc1-cp314-cp314-android_24_x86_64.whl
Algorithm Hash digest
SHA256 4b3756a9520feb11cd565dc11835db71cf0c20dd3729ea04d62490f226592b09
MD5 d5126343156608dabd4585c839e5757e
BLAKE2b-256 8eac400367da4fe7cc4626b5a17972443e5f4a751e5f18270a2148ed5384bf69

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp314-cp314-android_24_x86_64.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp314-cp314-android_24_arm64_v8a.whl.

File metadata

File hashes

Hashes for rp2040py-0.2.0rc1-cp314-cp314-android_24_arm64_v8a.whl
Algorithm Hash digest
SHA256 593d6de50069b6843427e782ca23035f21cd303b0389f4e263099146cf703d9b
MD5 9bb582aa2acf1e4cdcec5ed37920b042
BLAKE2b-256 bf73d6ef9ac37828288a26a7aa9ea931112e756324fb0d325f221743521c6c03

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp314-cp314-android_24_arm64_v8a.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp313-cp313-android_24_x86_64.whl.

File metadata

File hashes

Hashes for rp2040py-0.2.0rc1-cp313-cp313-android_24_x86_64.whl
Algorithm Hash digest
SHA256 63d5f7f6dee15818236bd1a958771e293e2babeaf03fe8cbd39522e781ef5a89
MD5 c4ff92232bffe6413fb11d139120f363
BLAKE2b-256 6566ff36c592b8ca5f87fd6e1b9e51bfcd9b14512d35ada9ec14f36e54bac364

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp313-cp313-android_24_x86_64.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp313-cp313-android_24_arm64_v8a.whl.

File metadata

File hashes

Hashes for rp2040py-0.2.0rc1-cp313-cp313-android_24_arm64_v8a.whl
Algorithm Hash digest
SHA256 6da5131a448dc57c8bf800fd4772472a0ede365153187f309cc6e928ed5cba8b
MD5 3f508b138751805608048af192b5dfa5
BLAKE2b-256 bcf9582cde796db5ba5eceda2d0c6223ce42632a905f62a9d5f5a039521763f4

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp313-cp313-android_24_arm64_v8a.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp311-abi3-win_arm64.whl.

File metadata

  • Download URL: rp2040py-0.2.0rc1-cp311-abi3-win_arm64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.11+, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for rp2040py-0.2.0rc1-cp311-abi3-win_arm64.whl
Algorithm Hash digest
SHA256 d6d749406fa1fd09708ebf568bdc35bc32c1d0d5047c8ede4cd362a53b9e2500
MD5 a4ab6c56c1c0eaa7d082e67ffb18d6a3
BLAKE2b-256 e7730ed980952c8f66b41c8cf400237511bf6812d84e25c118ba05dd8932d00c

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp311-abi3-win_arm64.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp311-abi3-win_amd64.whl.

File metadata

  • Download URL: rp2040py-0.2.0rc1-cp311-abi3-win_amd64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.11+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for rp2040py-0.2.0rc1-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 7cc5bb616539e2720654930c3d135ef1c0fdefa2a0e9bcd8b4095fadedfb112a
MD5 477b3259177dca1e9780a22c461cd29c
BLAKE2b-256 9cbf915c0637f1c161b5a5aef14efb259951b45133072db961bc1cd4f30436c7

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp311-abi3-win_amd64.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp311-abi3-win32.whl.

File metadata

  • Download URL: rp2040py-0.2.0rc1-cp311-abi3-win32.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.11+, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for rp2040py-0.2.0rc1-cp311-abi3-win32.whl
Algorithm Hash digest
SHA256 030b48efc32e36f347f3e14351edc1224378f2725ee2e168241aa6b470c8c035
MD5 bb665f4aff5a3f178604dac06f2ed612
BLAKE2b-256 b4b562b94fb5042bf3caecbbac842d3000e259cef6c757b06bc10384af967d75

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp311-abi3-win32.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp311-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rp2040py-0.2.0rc1-cp311-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 360f3022dcbac296ff8156266eeab8e90c9152c21e490636d35e07d25e0f8252
MD5 dbca56339103be4865deb80097796bc5
BLAKE2b-256 f0a0414d5aa0ec5f466d3a442b7aa5cfa9249498ffa5ff8b1ac8c486922e3955

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp311-abi3-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp311-abi3-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for rp2040py-0.2.0rc1-cp311-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 4a1fc433905fcf5591ea4fff6a3dc51b1c4a2bc08e027a02b998057e80a0f7bb
MD5 9af64a78774d7ad6130b2935ff9f55ee
BLAKE2b-256 c334c3537232c31aca0a987b6d5d71aa2128c1ed5e575d37719e7204069927ae

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp311-abi3-musllinux_1_2_i686.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp311-abi3-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for rp2040py-0.2.0rc1-cp311-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 0c19f106bc7c22cb61280e8841f87152efa72ba0095d52d69f10d3d81c36e116
MD5 7a30d5700487f2519dd4bffd715b5704
BLAKE2b-256 9790ea61cb76afd1da0e11b5b883af0685b3c449f8d1b366cdd5e62780dbefaf

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp311-abi3-musllinux_1_2_armv7l.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp311-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for rp2040py-0.2.0rc1-cp311-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f06af0cd1780994e3df85866b4591d50699ffc19133c85c5a14291e33661c594
MD5 94e560a6b4101e44b2ff80cd1ab37ace
BLAKE2b-256 45691a54107c5a4d4a4e81176d17f7410dd1034525cd32e8570ae4a284f2a31a

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp311-abi3-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for rp2040py-0.2.0rc1-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 34f28603bf34438fde996d4bab609c2bd933974be8c9c194bb9345148d3c5c13
MD5 cae3d3450c97c42255a2435069e75a6e
BLAKE2b-256 1e1410636485c4c3fc0ae2820729df418aae709f148045bf4622d4fba0a9628d

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp311-abi3-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl.

File metadata

File hashes

Hashes for rp2040py-0.2.0rc1-cp311-abi3-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl
Algorithm Hash digest
SHA256 8a2305b694dc1d5c66825363b468ced7d1fe6e4fbb3d4e3c8e14fdebdb680b38
MD5 1e471efd6bbb9bd50d9b97f77c8cc275
BLAKE2b-256 e23ed5fc25b7e2067c9bbc4c3c0a75aaa5f4d012b439e19eaa019a28329e4fb7

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp311-abi3-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for rp2040py-0.2.0rc1-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0f44b135a6bdaf616092176b2e30c7a02c71d1e800f577e23b2fa4dad1764486
MD5 825ef51a9066d873aa4cf037b4770fc9
BLAKE2b-256 08cb15dc4bc9f36b7ca2611aa1226509d491a04a4764d5527583c98f6c60e1c7

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp311-abi3-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl.

File metadata

File hashes

Hashes for rp2040py-0.2.0rc1-cp311-abi3-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 3a78c86c063f6a6d85aeeacb7722b8b441f6873024aeb8d176a4804868118f92
MD5 9ca3c334ad4ffd0dce69afed19e1c39a
BLAKE2b-256 1ada5720ca59cdf069c62f5caeb9fa4aea84fb93cec85fbbc366ac51748f1419

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp311-abi3-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp311-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rp2040py-0.2.0rc1-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 49b0b54dba08406c025e5a92632ca861b30b65ce510c0f8cf8071f4a1184f2b3
MD5 717898c209bfde8b6361b13be5e7b413
BLAKE2b-256 d882ab554f9955ca679f089c0e49d61b2e6e68974fbd366f02fe643dc3ae4f61

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp311-abi3-macosx_11_0_arm64.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp311-abi3-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for rp2040py-0.2.0rc1-cp311-abi3-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 00a9ddd3510a582f7256f9012bcd4596527cfdc3a821583dda267b0bf8e47251
MD5 3a1527c592d62efdda35c62ffedd8ce3
BLAKE2b-256 e6f9835263d3e312ab9cd39f6ec5db9605a94e2a3065c6cd2126f1c9869a6dc1

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp311-abi3-macosx_10_9_x86_64.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp311-abi3-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for rp2040py-0.2.0rc1-cp311-abi3-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 0dc1221ef077cfb7e86619ade9601768846312734eef94ce706dd361a7deeb9a
MD5 69e7f23abc8292e0a879069bed92705b
BLAKE2b-256 8788277017f58021420d548560ea0a6bd906e0a3bdb077fd1788b1fc16af497b

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp311-abi3-macosx_10_9_universal2.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp310-cp310-win_arm64.whl.

File metadata

File hashes

Hashes for rp2040py-0.2.0rc1-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 195b1c8aa7ba6d7471587cf66ed4c1b93e106507d2fb9f7cbd82053b8dbc7850
MD5 6afc5de95bcb035323ec2fc1635a0313
BLAKE2b-256 d2e0ef1b973c89bc4f00fcad083f459794126302ad00214542f9a12d7a863f3d

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp310-cp310-win_arm64.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for rp2040py-0.2.0rc1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a1e194b1255a0580770506537e84988b79fe4df7911a1ffbbcf19684dffb8b5f
MD5 18649ea0344651880eaca305bea16b9a
BLAKE2b-256 bba052d8d729a08581440a8f2d597abd81a682fef6f49f98a1e0d2d8e5afea56

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp310-cp310-win_amd64.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp310-cp310-win32.whl.

File metadata

  • Download URL: rp2040py-0.2.0rc1-cp310-cp310-win32.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for rp2040py-0.2.0rc1-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 c778f1e41a976ff4ffa7fa387eea158021a5f242162aead89f770d24b65fc5ee
MD5 f67aab446f7613b51c99295e44d3f7c6
BLAKE2b-256 d1f32a740df36453131e8e7b4ab1e1fad8281d6362bd01d68f369ee52abd0e18

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp310-cp310-win32.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rp2040py-0.2.0rc1-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9f6f4cf00aee72c1be68a7353ae0a83f2e4be12e6758ade2b966d7ac398caac1
MD5 33b9f93022504012eea8ddb3e961ffaa
BLAKE2b-256 600dc472eddc7f1b26012045e50a424a860dc12f45ab684bbb35c199e283669f

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp310-cp310-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp310-cp310-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for rp2040py-0.2.0rc1-cp310-cp310-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 12292230431fba57e073fc39bc88a8edf4b351b742405f335cb8ea1696e134c4
MD5 826053d9c385f60f1c3b392eea411295
BLAKE2b-256 739c1291c26f4785fffc6d513122c8164b80efb6c290daec16c1e6df69c1ba35

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp310-cp310-musllinux_1_2_i686.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp310-cp310-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for rp2040py-0.2.0rc1-cp310-cp310-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 080496f736f3e61e2cec38b190936757b5d1e197e55f662a24aa8cc59d63b2c3
MD5 a3096efaaeddf440afc4eb5bce5f37c1
BLAKE2b-256 a0ad43ec7aa4682f3edfc97067ecbec1ec9806f53d3de36e3a3079d8629c096b

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp310-cp310-musllinux_1_2_armv7l.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for rp2040py-0.2.0rc1-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 12bbf0cb6c22c42ed5cf14951ce9919881d930420b66cd5da7a28511a86a6dcc
MD5 37024ef9bb16c591ded5086ab9d13d7b
BLAKE2b-256 68b1346d4f3173edb996193f019c9642fc2ffae3b8cad9f819a5d80bbc25cec7

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp310-cp310-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for rp2040py-0.2.0rc1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 de7289c13008e2844544d3ca537f7424433d33cd16e3fdd9e1d013f192262590
MD5 1d4c9ba5d428b9e91a75f54f05937be8
BLAKE2b-256 107a6e9a7d5b8b2fccf21f2ae565b60e237cc4f1df8c7bff51712aa84d4d108b

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl.

File metadata

File hashes

Hashes for rp2040py-0.2.0rc1-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl
Algorithm Hash digest
SHA256 7cd2cbe7e957495d107907ec6e5bcc7b73864ed7ef12489d0dc98027d390c414
MD5 ed4135b0f048325204ad0838ae00df1a
BLAKE2b-256 771f7a927aaeafbe5712db594b73846347568f3160a3dc92c8e58a748b10d2da

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for rp2040py-0.2.0rc1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 311e9f0d96a8eafb36afe8e940a44a8662e2798c327e8480a5bad3763f05d5f2
MD5 c2c2331c6956b8ce2bdfe32d66318da5
BLAKE2b-256 a5b89b24df0267f341ec08eea1301f472b93620fb733c565f8b7d40bca900dd3

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl.

File metadata

File hashes

Hashes for rp2040py-0.2.0rc1-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 aef045d883038d39b0cf8c487bd062ff8d983c695aac9748bab7303692378a68
MD5 8499af7a2fc4b14f0ee776a6101dc902
BLAKE2b-256 c70e915bbd84902adbd1a4824e20e601011bdcab9d54d7814ebf5b50fd0dba47

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rp2040py-0.2.0rc1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fc4563ce03effba5caad55292d008adc4ba27d04330e4b91d5f345e65bb6d437
MD5 dccff6984c51defbc72a444c7ac7490b
BLAKE2b-256 4c7e8b04c995797c64592f172ab136bf7d3ff31420928b3914f2a5172520b44c

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for rp2040py-0.2.0rc1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7c9ac5c7a24e00a3f3ed1fa5bf75fe54ccf4e1b33292f2d6cc1a7e44822f6e74
MD5 e40c6ba62a4d22c8828b2037584045a0
BLAKE2b-256 95ae39ab779ff373e3c6497d11e0620afd537696d2477367678c6e2108b2b59f

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp310-cp310-macosx_10_9_x86_64.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rp2040py-0.2.0rc1-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for rp2040py-0.2.0rc1-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 a6597138d7b84bf268f0d9319513a150b9c0b88128ec6214806a5c38755b0da8
MD5 7b07e1688b66f64a9b2ff862feb76198
BLAKE2b-256 a6648df04ed8d8d4b74f5b4112a36de79f11111d6840ed1fe888fc8c9481d32f

See more details on using hashes here.

Provenance

The following attestation bundles were made for rp2040py-0.2.0rc1-cp310-cp310-macosx_10_9_universal2.whl:

Publisher: publish.yml on o-murphy/rp2040py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page