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/reference/porting-checklist.md for the file-by-file port status against upstream rp2040js.

[!IMPORTANT] Single-core only. rp2040py emulates core0; there is no core1, and SIO's inter-core FIFO registers (FIFO_ST/FIFO_WR/FIFO_RD) are unimplemented — reads log a warning and return all-ones, writes are dropped, and CPUID always reads 0. Firmware that starts the second core (multicore_launch_core1(), MicroPython's _thread) will not work. This is deliberate rather than pending: adding the FIFO registers without a second core to answer them would turn today's loud failure into a silent infinite hang inside multicore_fifo_pop_blocking(), which is strictly worse — see docs/records/0053 for what building it properly involves. Single-core firmware — the default for MicroPython, CircuitPython, Kaluma and the pico-examples — is unaffected.

Quick start

pip install rp2040py
rp2040py micropython          # boots real MicroPython firmware, drops you into its REPL (Ctrl+X to quit)
rp2040py micropython -c "print(1 + 1)"   # or run one command non-interactively and exit

That's it — no manual firmware download, no board wiring. Everything below is depth: more firmware families (CircuitPython, Kaluma), WiFi, filesystems, a programmatic API, and how to add your own boards/devices. See Run the demo project for the full CLI, or jump straight to External devices & custom boards if you're here to extend it.

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.

[!NOTE] A handful of fully-sandboxed environments (iOS app runtimes - Pythonista, PythonIDE) can't load rp2040py's compiled extension; plain pip install rp2040py resolves to a wheel that won't load there. Force the pure-Python one instead: pip download rp2040py --only-binary=:all: --platform any --abi none && pip install rp2040py-*.whl --upgrade (the same artifact the release pipeline itself publishes, not a degraded build). Full platform × feature matrix - including Android, which works fine with the compiled extension - in docs/reference/os-compatibility.md.

Shell completions

rp2040py install-completion sets up tab completion for every subcommand and flag (--board, --log-level, --littlefs, ...) in Bash or Zsh, via argcomplete:

rp2040py install-completion
# then open a new shell, or:
source ~/.bashrc   # or ~/.zshrc

This appends the shell's register-python-argcomplete hook to ~/.bashrc/~/.zshrc (detected from $SHELL) - a one-time setup step, not something run on every invocation.

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 ...

Two demos have no CLI equivalent because they emulate hardware rather than run firmware: the Waveshare 2.9″ e-Paper panel (demo/eink_run.py) and the RP2040-LCD-0.96's onboard ST7735S (demo/lcd_run.py). demo/README.md shows what both actually draw.

--board {pico,pico_w} (default pico) is available on all four and picks which board's fixed extras get attached alongside the RP2040 itself - the onboard LED and the BOOTSEL button on both, plus an emulated CYW43439 WiFi/Bluetooth chip on pico_w; see WiFi (Pico W / CYW43439) below.

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 - dramatically slower than V8 JIT-compiling the equivalent JS in rp2040js, though the compiled rp2040py.native backend (on by default, see Performance below) closes most of that gap:

Interpreter Time to a resident script's first output (MicroPython 1.28 boot)
CPython 3.10 133.3s
CPython 3.10 + rp2040py.native (on by default) 11.3s (~11.8x)
PyPy 3.10 8.9s (~15x)

This is also why 1.21 is the recommended default version: both 1.21 and 1.28 reach the bare REPL prompt in well under a second, but running a typical resident script afterward is ~45x more expensive under 1.28 than 1.21 - real work MicroPython 1.28's own firmware does per loop iteration, not an emulator bug. See docs/records/0013-cython-core.md for the full measured breakdown (methodology, PyPy/CPython-JIT comparisons, the 1.21-vs-1.28 instruction-count numbers) and docs/reference/porting-checklist.md for a synthetic instructions/sec benchmark across all three runtimes.

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, so mpremote can connect directly via pySerial's built-in socket:// support - no client-side patching needed:

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, which additionally supports mpremote's own bare interactive REPL (rp2040py mpremote, a thin proxy subcommand, gets that working over --tcp-port too, patching around an upstream mpremote bug).

See docs/reference/mpremote.md for the full picture: connection details for both flags, the proxy and the bug it patches around, how to quit the emulator when mpremote owns the console, and exactly which mpremote commands are verified working where.

Filesystem support and WiFi both work here too, and cover MicroPython/CircuitPython/Kaluma in one place below - see Filesystem support and WiFi (Pico W / CYW43439).

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 (a FAT12 image, not littlefs) and WiFi both work here too - see Filesystem support and WiFi (Pico W / CYW43439) below, which cover all three firmware families in one place.

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

--board pico_w works here too - Kaluma's own require('wifi') scans, joins, gets a DHCP lease, and opens real net.Socket connections to the internet through the same bridge described under WiFi (Pico W / CYW43439) below (tests/kaluma/main-cyw43.js is a runnable example), and filesystem support is covered under Filesystem support below too, alongside MicroPython/CircuitPython's.

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.

--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).

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).

Filesystem support

mklittlefs builds a writeable LittleFS-formatted image on the host (needs the optional fs extra: pip install rp2040py[fs] / uv sync --extra fs) - shared by MicroPython and Kaluma, which both boot from real littlefs flash:

rp2040py mklittlefs -o littlefs.img your_main.py your.py files.py here.py --main your_main.py

Every file keeps its own basename; --main marks one as auto-run on boot (omit it for a filesystem with no auto-run script, or omit files entirely for an empty formatted image). Always builds fresh - pass -f/--force to overwrite an existing --output. --target {micropython,circuitpython,kaluma} presets --block-size/--block-count to a known firmware's own layout instead of spelling them out by hand (mutually exclusive with passing them explicitly - the three differ, see the per-firmware notes below). --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, 1.28's reads both - see docs/records/0003).

  • MicroPython: --littlefs path/to/littlefs.img mounts it and auto-runs main.py if present (silently skipped, not an error, if it isn't - but never loaded at all unless --littlefs is given explicitly). The filesystem is writeable at runtime - os/rp2.Flash calls go through a real JEDEC SPI-NOR command emulation in the SSI peripheral (RPSSI), the same one real flash hardware uses.

  • Kaluma: its own pluggable littlefs-backed filesystem (see its docs) lives in a different, fixed 512K flash region (4096-byte blocks) than the <script.js> user-program staging area above, with no auto-run semantics of its own - plain storage, accessed from JS via require('fs'). Pass it via --littlefs explicitly (never picked up implicitly, even from a kaluma_littlefs.img in the current directory):

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

    Without a valid image, board.js's unconditional mount-at-startup logs cosmetic Bad block/ Superblock ... unwritable/No space left on device errors against unformatted flash - Kaluma catches and prints them without aborting, so boot and <script.js> auto-run continue normally.

  • CircuitPython: a FAT12 image instead of littlefs - build one with truncate/mkfs.vfat (not mklittlefs) and pass it via --fat12 (no default, never picked up implicitly):

    truncate fat12.img -s 1M && mkfs.vfat -F12 -S512 fat12.img
    mkdir fat12 && sudo mount -o loop fat12.img fat12/ && sudo cp code.py fat12/ && sudo umount fat12/
    rp2040py micropython --circuitpython --fat12 fat12.img
    

    CircuitPython doesn't typically write to its own filesystem at runtime the way MicroPython does, so this path hasn't been separately exercised - the underlying flash-write mechanism is the same SSI peripheral either way.

--dump-fs <path> dumps a device's littlefs flash region back out to a local file on exit (Ctrl+X, --expect-text, or the end of a run) - the same layout --littlefs reads back in, so it round-trips for persistence across runs. Works for both MicroPython and Kaluma; MicroPython additionally supports scripting it non-interactively via -c/-m/<filename> (see demo/mklittlefs_dump.py, which builds such a script from local files) - Kaluma has no non-interactive exec mode, so use require('fs') at its REPL instead. This makes --dump-fs a littlefs-python-free alternative to mklittlefs on either firmware: boot against blank flash, write files the normal way, dump the result - built by that firmware's own bundled littlefs, not a separately-installed library.

WiFi (Pico W / CYW43439)

--board pico_w (default: pico, any firmware) attaches an emulated CYW43439 - the WiFi/Bluetooth chip on a real Pico W - over the same gSPI bus real firmware drives it through. network.WLAN (MicroPython), wifi/socketpool (CircuitPython), and require('wifi')/net (Kaluma) all work against it - three independent network stacks over one bus, none of them needing anything CYW43-specific from the emulator:

rp2040py micropython --board pico_w

nic.active(True), nic.scan(), and nic.connect(ssid, key) all complete, answered by a fixed fake "RP2040PY-GUEST" access point built into the emulation. The association is fake, but the network behind it is real - a NAT bridge gives the guest a DHCP lease, answers its ARP, and splices its TCP connections and UDP datagrams onto real sockets on your machine, so code running on the emulated Pico W reaches the actual internet. Live-boot verified against real, unmodified MicroPython firmware on both 1.23.0 and 1.28.0:

import network, socket, mip, ntptime

nic = network.WLAN(network.WLAN.IF_STA)
nic.active(True)
print(nic.scan())  # [(b'RP2040PY-GUEST', ...)]
nic.connect("RP2040PY-GUEST", "key")  # any password is accepted
print(nic.isconnected(), nic.ipconfig("addr4"))  # True ('10.0.0.2', '255.255.255.0')

s = socket.socket()  # real TCP, out through your host's network
s.connect(("1.1.1.1", 80))
s.send(b"GET / HTTP/1.0\r\n\r\n")
print(s.recv(64))  # b'HTTP/1.1 301 Moved Permanently\r\n...'

mip.install("os-path")  # real DNS + a real HTTPS download
ntptime.settime()  # real NTP, sets the emulated RTC
nic.disconnect()  # link really goes down: isconnected() -> False, status() -> 0

TLS works through the same path (the reflector relays bytes without inspecting them), and so do WebSockets over both ws:// and wss://. CircuitPython (tests/circuitpython/main-cyw43.py) and Kaluma (tests/kaluma/main-cyw43.js) have their own runnable examples; CircuitPython additionally enforces WPA2's 8-64 character passphrase rule client-side, so the password you pass must be at least 8 characters even though the emulated AP accepts anything.

What is not emulated, so you don't discover it the hard way:

  • The AP is a fixture. scan() always returns the one fake "RP2040PY-GUEST" network, any password "succeeds," and there's no hidden-SSID or auth-failure path to test against.
  • No AP mode (network.WLAN.IF_AP), no IPv6, and one guest only (the guest/gateway IP and MAC are fixed constants, with no config surface yet).
  • No flow-control backpressure from the real destination onto the guest: the emulator always advertises a fixed TCP receive window, so a guest that outran a slow destination would grow the host process's socket buffer rather than being told to slow down. An emulated Cortex-M0 can't realistically outrun a real socket, which is why this hasn't mattered in practice.

See docs/records/0027-cyw43-wifi.md for what's emulated at the gSPI/SDPCM protocol level and docs/records/0048-cyw43-nat-reflector.md for the network bridge (how the reflector works, and the full list of what's still open).

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 (optionally for a specific board, e.g. board="pico_w") 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).

[!NOTE] Async-native only, no blocking API. MicroPythonDevice/KalumaDevice/BaseDevice boot and run as coroutines on an asyncio event loop (the same "engine room" the CLI itself runs on) - there is no blocking start()/exec()/exec_file() and no synchronous with device: form. Calling a blocking wrapper's Future.result() from the same loop it would need to run on deadlocks (the loop can't process the coroutine that resolves the Future while its own thread is stuck waiting on it), so this project stopped offering one rather than ship that footgun - wrap a call in asyncio.run(...) yourself if you want blocking behavior from a plain script.

asyncio, via astart()/aexec()/aexec_file(), entered as an async with context manager:

import asyncio
from rp2040py.device import MicroPythonDevice


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

        stdout, stderr = await device.aexec_file("my_script.py")


asyncio.run(main())

Callback style, via exec_async()'s concurrent.futures.Future - no separate API needed, Future.add_done_callback() does this out of the box. Requires the device already started (astart()/start_async() first, or already inside async with):

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


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

Both share one asyncio.Lock 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_async()/astart()/stop() are available directly if you want more control over the lifecycle than the context manager gives you - stop() itself stays a plain synchronous call.

External devices & custom boards

Beyond the built-in --board {pico,pico_w} presets, the emulator has a real extension point for hardware it doesn't model out of the box:

  • ExternalDevice (rp2040py.external.device) - a device implements attach(rp2040) and gets wired up via attach_external_devices(). Devices already shipping in-tree this way: the onboard LED, the BOOTSEL button, a generic button/key, the CYW43439 WiFi chip behind pico_w, a Waveshare 2.9″ e-Paper panel, an ST7735S TFT controller, and a WS2812/WS2812B "NeoPixel" RGB LED.
  • boards.BoardSpec (what --board itself resolves to internally) - a public dataclass you build your own instance of: your own device mix on an existing firmware family, or a fully custom board with its own firmware and flash layout. Hand it to any Device class (board=...) or the CLI (--board-spec target:attr / RP2040PY_BOARD_SPEC, on run/micropython/kaluma/ mklittlefs). A board declares its firmware as data - a firmware dict keyed by family (micropython/circuitpython/kaluma), each entry a tag→URL-or-local-path map plus that family's flash layout - so one file covers one board for every firmware that runs on it, downloads nothing when imported, and works with --image/--fetch-fw-only exactly as --board does.

Adding your own

docs/reference/external-devices-and-boards.md is the full how-to: worked examples for both a new device and a new board, the attach-timing rule, and the caveats worth knowing before you start. If you're working in Claude Code, the external-devices-and-boards skill turns that into a step-by-step execution checklist (which template to copy, which test proves what, and the "3g rule" - every electrical fact cited to a real upstream source, never guessed).

Ready-made example boards

Worked --board-spec targets living in boards/ - real third-party hardware, every number sourced from that board's own upstream firmware config (never guessed), live-boot-verified against real firmware:

Board Firmware Highlight
weactstudio MicroPython (4 flash variants) + CircuitPython Plain LED/button - the baseline example, no new device needed
vcc_gnd_yd_rp2040 CircuitPython only WS2812 RGB LED, driven as CircuitPython's own status indicator - decodes real pixel frames with no guest code at all
waveshare_rp2040_lcd_0_96 MicroPython + CircuitPython Onboard 160×80 ST7735S TFT panel, painted from boot under CircuitPython
waveshare_rp2040_zero MicroPython + CircuitPython The smallest example - a single WS2812, nothing else
adafruit_feather_rp2040 MicroPython + CircuitPython LED + WS2812 - and a worked example of a marketing claim (switchable NeoPixel power) contradicted by firmware source
adafruit_itsybitsy_rp2040 MicroPython + CircuitPython LED + WS2812 (real switchable power pin) + a second BOOT button sourced from the vendor's own schematic
adafruit_qtpy_rp2040 MicroPython + CircuitPython WS2812 + BOOT button - the same vendor schematic pattern as ItsyBitsy, no plain LED
garatronic_pybstick26_rp2040 MicroPython only Plain LED, smallest board with no CircuitPython twin

Screenshots of what the two emulated display panels actually draw are in demo/README.md. See docs/records/0049/ 0059 for the design history behind the extension points themselves.

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/records/0013-cython-core.md for the full measured breakdown).

That extension has since grown past the core itself: the PIO block and its state machines (0031, 0047), the per-batch execution loop (0034), the simulation clock (0039) and GPIO pins (0047) are all native too. Those are wins on top of the 7x above, on the paths each one covers rather than across the board - the most recent, measured end to end, is ~2.6x on a Pico W CYW43 boot through to scan() (0047), a PIO/GPIO-heavy workload the original core port barely touched.

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/reference/porting-checklist.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/records/0008-ssi-flash-write.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 Installation).
  • Pico W / CYW43439 WiFi emulation (--board pico_w) - real network.WLAN calls (active()/scan()/connect()) against a real, unmodified MicroPython firmware's CYW43439 driver are answered at the actual gSPI/SDPCM protocol level, not stubbed out, and a NAT bridge carries the guest's TCP/UDP traffic onto your host's real network (socket, mip.install() and ntptime all reach the actual internet) - something rp2040js has no equivalent of at all (no --board concept, no WiFi chip emulation). See WiFi (Pico W / CYW43439) above.
  • A real extension point for third-party hardware (ExternalDevice/boards.BoardSpec) - rp2040js has no board or device abstraction at all, only whatever's hardcoded into its own demo scripts. rp2040py ships 8 worked --board-spec examples for real vendor boards (WeAct Studio, Waveshare, VCC-GND Studio, three Adafruit boards, McHobby's PYBStick26), every electrical fact cited to that board's own upstream firmware source and live-boot-verified, plus a documented how-to for writing your own. See External devices & custom boards above.

See docs/reference/porting-checklist.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

License

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

Metadata

Release files for rp2040py 0.3.0rc1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rp2040py 0.3.0rc1
File Size Uploaded
rp2040py-0.3.0rc1.tar.gz 1.0 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for rp2040py 0.3.0rc1
File
rp2040py-0.3.0rc1-py3-none-any.whl Python 3 none any Details
rp2040py-0.3.0rc1-cp314-cp314t-win_arm64.whl CPython 3.14 CPython 3.14 free-threading Windows ARM64 Details
rp2040py-0.3.0rc1-cp314-cp314t-win_amd64.whl CPython 3.14 CPython 3.14 free-threading Windows x86-64 Details
rp2040py-0.3.0rc1-cp314-cp314t-win32.whl CPython 3.14 CPython 3.14 free-threading Windows x86-32 Details
rp2040py-0.3.0rc1-cp314-cp314t-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64 Details
rp2040py-0.3.0rc1-cp314-cp314t-musllinux_1_2_i686.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-32 Details
rp2040py-0.3.0rc1-cp314-cp314t-musllinux_1_2_armv7l.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARMv7l Details
rp2040py-0.3.0rc1-cp314-cp314t-musllinux_1_2_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64 Details
rp2040py-0.3.0rc1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
rp2040py-0.3.0rc1-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARMv7l, Linux glibc 2.31+ ARMv7l Details
rp2040py-0.3.0rc1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ ARM64, Linux glibc 2.17+ ARM64 Details
rp2040py-0.3.0rc1-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.5+ x86-32, Linux glibc 2.28+ x86-32 Details
rp2040py-0.3.0rc1-cp314-cp314t-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 Details
rp2040py-0.3.0rc1-cp314-cp314t-macosx_10_15_x86_64.whl CPython 3.14 CPython 3.14 free-threading macOS 10.15+ x86-64 Details
rp2040py-0.3.0rc1-cp314-cp314t-macosx_10_15_universal2.whl CPython 3.14 CPython 3.14 free-threading macOS 10.15+ universal2 (ARM64, x86-64) Details
rp2040py-0.3.0rc1-cp314-cp314-android_24_x86_64.whl CPython 3.14 CPython 3.14 Android API level 24+ x86-64 Details
rp2040py-0.3.0rc1-cp314-cp314-android_24_arm64_v8a.whl CPython 3.14 CPython 3.14 Android API level 24+ ARM64 v8a Details
rp2040py-0.3.0rc1-cp313-cp313-android_24_x86_64.whl CPython 3.13 CPython 3.13 Android API level 24+ x86-64 Details
rp2040py-0.3.0rc1-cp313-cp313-android_24_arm64_v8a.whl CPython 3.13 CPython 3.13 Android API level 24+ ARM64 v8a Details
rp2040py-0.3.0rc1-cp311-abi3-win_arm64.whl CPython 3.11 abi3 Windows ARM64 Details
rp2040py-0.3.0rc1-cp311-abi3-win_amd64.whl CPython 3.11 abi3 Windows x86-64 Details
rp2040py-0.3.0rc1-cp311-abi3-win32.whl CPython 3.11 abi3 Windows x86-32 Details
rp2040py-0.3.0rc1-cp311-abi3-musllinux_1_2_x86_64.whl CPython 3.11 abi3 Linux musl 1.2+ x86-64 Details
rp2040py-0.3.0rc1-cp311-abi3-musllinux_1_2_i686.whl CPython 3.11 abi3 Linux musl 1.2+ x86-32 Details
rp2040py-0.3.0rc1-cp311-abi3-musllinux_1_2_armv7l.whl CPython 3.11 abi3 Linux musl 1.2+ ARMv7l Details
rp2040py-0.3.0rc1-cp311-abi3-musllinux_1_2_aarch64.whl CPython 3.11 abi3 Linux musl 1.2+ ARM64 Details
rp2040py-0.3.0rc1-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 abi3 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
rp2040py-0.3.0rc1-cp311-abi3-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl CPython 3.11 abi3 Linux glibc 2.31+ ARMv7l, Linux glibc 2.17+ ARMv7l Details
rp2040py-0.3.0rc1-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.11 abi3 Linux glibc 2.28+ ARM64, Linux glibc 2.17+ ARM64 Details
rp2040py-0.3.0rc1-cp311-abi3-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl CPython 3.11 abi3 Linux glibc 2.5+ x86-32, Linux glibc 2.28+ x86-32 Details
rp2040py-0.3.0rc1-cp311-abi3-macosx_11_0_arm64.whl CPython 3.11 abi3 macOS 11.0+ ARM64 Details
rp2040py-0.3.0rc1-cp311-abi3-macosx_10_9_x86_64.whl CPython 3.11 abi3 macOS 10.9+ x86-64 Details
rp2040py-0.3.0rc1-cp311-abi3-macosx_10_9_universal2.whl CPython 3.11 abi3 macOS 10.9+ universal2 (ARM64, x86-64) Details
rp2040py-0.3.0rc1-cp310-cp310-win_arm64.whl CPython 3.10 CPython 3.10 Windows ARM64 Details
rp2040py-0.3.0rc1-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
rp2040py-0.3.0rc1-cp310-cp310-win32.whl CPython 3.10 CPython 3.10 Windows x86-32 Details
rp2040py-0.3.0rc1-cp310-cp310-musllinux_1_2_x86_64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ x86-64 Details
rp2040py-0.3.0rc1-cp310-cp310-musllinux_1_2_i686.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ x86-32 Details
rp2040py-0.3.0rc1-cp310-cp310-musllinux_1_2_armv7l.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ ARMv7l Details
rp2040py-0.3.0rc1-cp310-cp310-musllinux_1_2_aarch64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ ARM64 Details
rp2040py-0.3.0rc1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details
rp2040py-0.3.0rc1-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl CPython 3.10 CPython 3.10 Linux glibc 2.31+ ARMv7l, Linux glibc 2.17+ ARMv7l Details
rp2040py-0.3.0rc1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ ARM64, Linux glibc 2.17+ ARM64 Details
rp2040py-0.3.0rc1-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl CPython 3.10 CPython 3.10 Linux glibc 2.5+ x86-32, Linux glibc 2.28+ x86-32 Details
rp2040py-0.3.0rc1-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
rp2040py-0.3.0rc1-cp310-cp310-macosx_10_9_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.9+ x86-64 Details
rp2040py-0.3.0rc1-cp310-cp310-macosx_10_9_universal2.whl CPython 3.10 CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64) Details

Total release size: 102.6 MB

Release files / rp2040py-0.3.0rc1.tar.gz

Download URL rp2040py-0.3.0rc1.tar.gz
Size 1.0 MB
Tags Source
SHA-256 checksum
How to use checksums
0087f7e264d995fffdaa04b29057fb8187986db7310f6bb0b22e599fb1454399
BLAKE2b-256 checksum
How to use checksums
f23d159bc04b6462012250c6ace5d32eea6b72989e80203cf596bf1c3882b4b5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-py3-none-any.whl

Download URL rp2040py-0.3.0rc1-py3-none-any.whl
Size 349.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0e27199c415eba7d6fb31512aefd19a50c60d2f4d60d4405a9fac2632f189b01
BLAKE2b-256 checksum
How to use checksums
0e67fb9896eb8b2da91490840d02ef39a39d7ae79908f8e6f668d46288ab9e29
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp314-cp314t-win_arm64.whl

Download URL rp2040py-0.3.0rc1-cp314-cp314t-win_arm64.whl
Size 2.0 MB
Tags CPython 3.14 CPython 3.14 free-threading Windows ARM64
SHA-256 checksum
How to use checksums
79c0dc581129193d239bd35ca01b8750d935b527b1136fe9d1f339e5a9a19bb7
BLAKE2b-256 checksum
How to use checksums
e5669020777d0501123cc4759a201095f941f2e03d09ca4e6f71abe5d494f7bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp314-cp314t-win_amd64.whl

Download URL rp2040py-0.3.0rc1-cp314-cp314t-win_amd64.whl
Size 2.1 MB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
ad61aa9804ddd33b53c2a0582e0905dc3dada0cca59a13093995a34f74311be8
BLAKE2b-256 checksum
How to use checksums
8a268738189ab468a03b170f77ed204ee61f8dcf6a10a50dc98999b4af36dcd2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp314-cp314t-win32.whl

Download URL rp2040py-0.3.0rc1-cp314-cp314t-win32.whl
Size 2.0 MB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-32
SHA-256 checksum
How to use checksums
c399d43b4c2f58dc896137f4a7dd773b12cc968711ebef61af58cc0ae927b195
BLAKE2b-256 checksum
How to use checksums
3ed0854a27b3e99d37bd0df17a3042ba9c0ab88280f3198ced8fbd2d44ff6b0f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp314-cp314t-musllinux_1_2_x86_64.whl

Download URL rp2040py-0.3.0rc1-cp314-cp314t-musllinux_1_2_x86_64.whl
Size 2.2 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
4587e55b1b0c45332aea3d1356f0eb5b878f77aeaca0ed673a0bed30d80c36e2
BLAKE2b-256 checksum
How to use checksums
0e4d2e37e4cd3b314858419f31a522aed4182b6b042e7614565faf2346a50873
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp314-cp314t-musllinux_1_2_i686.whl

Download URL rp2040py-0.3.0rc1-cp314-cp314t-musllinux_1_2_i686.whl
Size 2.3 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-32
SHA-256 checksum
How to use checksums
30fb4e71ed193c0122fe1f83e1b853264f2564e491ef7e16041e37e9e57d9183
BLAKE2b-256 checksum
How to use checksums
f609dcdaf1d9336e25de6cfdafb642ff4b7ed84f06d4fced17213de0636b9fae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp314-cp314t-musllinux_1_2_armv7l.whl

Download URL rp2040py-0.3.0rc1-cp314-cp314t-musllinux_1_2_armv7l.whl
Size 2.1 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARMv7l
SHA-256 checksum
How to use checksums
1db3eb60385aeb17ffaca8c54b535e511b8c079d4e82466fca31c71a6b867c9e
BLAKE2b-256 checksum
How to use checksums
44d0be2bf7e23341b7fbf65c8b1ebef926c008b96cebabddc1061fafe9a9f6ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp314-cp314t-musllinux_1_2_aarch64.whl

Download URL rp2040py-0.3.0rc1-cp314-cp314t-musllinux_1_2_aarch64.whl
Size 2.2 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
5e9de2a1faf81c4986f467265976fc2fdcdbec3ef0638bc67cdf0cb4711f1e7c
BLAKE2b-256 checksum
How to use checksums
f3f458e84d55d9cdd797f107950051f73694388c8a50428c2a099f18298ba3f5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL rp2040py-0.3.0rc1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 2.2 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
b8b80c3fa7bb7a9c5a49d04949bdaaeb5a01e8d7f1107401259f41d064ac09a1
BLAKE2b-256 checksum
How to use checksums
cc7afd717285237e7ec97af3725edd2cdd76d7c25577f19b27ba4707f784ae99
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl

Download URL rp2040py-0.3.0rc1-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl
Size 2.1 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARMv7l Linux glibc 2.31+ ARMv7l
SHA-256 checksum
How to use checksums
79a5ed35d93dd89ce11d8ca5308da4db9f25a817beb467edf32b96134df17e74
BLAKE2b-256 checksum
How to use checksums
152a29228f1e302852d9b0e4232d23535beae36d12dbdff0a9ef0c39fb7eda73
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL rp2040py-0.3.0rc1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 2.2 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
fe8429da134590dbb8c01e9c61c06c3cbb0cc58a9da30414b51cc7a4126e6cf7
BLAKE2b-256 checksum
How to use checksums
2fde1f50d0518ba37f908304ebb7e695683dd8a45914af5a82f8b8d638972563
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl

Download URL rp2040py-0.3.0rc1-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Size 2.2 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ x86-32 Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
fa55b971f07368134212037c284dd5d7e30665042b8681fc981b18a5dad1bb9c
BLAKE2b-256 checksum
How to use checksums
5268c4e1a967d397da6eaa99e50579b6396544858afbc5a944d53cdd53e2c793
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp314-cp314t-macosx_11_0_arm64.whl

Download URL rp2040py-0.3.0rc1-cp314-cp314t-macosx_11_0_arm64.whl
Size 2.2 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c6318657f09ba9ddd7f2d903fbbabe90c36d2a61ba658fe6db63641e5b1b22af
BLAKE2b-256 checksum
How to use checksums
a8e1b2369f173eb9ac0c0cb9dfd5c0a67c6a897902efd5a694a962f8a244a532
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp314-cp314t-macosx_10_15_x86_64.whl

Download URL rp2040py-0.3.0rc1-cp314-cp314t-macosx_10_15_x86_64.whl
Size 2.2 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
5b92e0749b04bf462eb8034d31b50698eb20f8fde26837dadd7b17065e20266a
BLAKE2b-256 checksum
How to use checksums
0cb42e66fd71ad71ed74968af97f62b9797c1a1f15a3d87eb90ea10f7ee98338
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp314-cp314t-macosx_10_15_universal2.whl

Download URL rp2040py-0.3.0rc1-cp314-cp314t-macosx_10_15_universal2.whl
Size 2.9 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 10.15+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
0d4e4942d5746a8f0d4d7c0c93439ff6b0ce3852f4acb4575b5d24816a2f6c7f
BLAKE2b-256 checksum
How to use checksums
83891730c4fef481e7283227c90ddbce29e6f645dd978d3504eb506a0ee8bfde
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp314-cp314-android_24_x86_64.whl

Download URL rp2040py-0.3.0rc1-cp314-cp314-android_24_x86_64.whl
Size 2.1 MB
Tags Android API level 24+ x86-64 CPython 3.14
SHA-256 checksum
How to use checksums
990e72cd63136b92d1726cd7e2e754f26c07f5410986a9ca4331488effe2594a
BLAKE2b-256 checksum
How to use checksums
9e556cde4c83831418dce2cb083edd3b18ce81ac8ce929b366dfbb2c1349e125
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp314-cp314-android_24_arm64_v8a.whl

Download URL rp2040py-0.3.0rc1-cp314-cp314-android_24_arm64_v8a.whl
Size 2.1 MB
Tags Android API level 24+ ARM64 v8a CPython 3.14
SHA-256 checksum
How to use checksums
337f071e3cc83bee19190c7fdf568cb060843da7bc2c5baa22370d9ed36bc941
BLAKE2b-256 checksum
How to use checksums
d0866fcb270a14592caf38655347ae6133739d7086dbf963280813811b5c2008
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp313-cp313-android_24_x86_64.whl

Download URL rp2040py-0.3.0rc1-cp313-cp313-android_24_x86_64.whl
Size 2.1 MB
Tags Android API level 24+ x86-64 CPython 3.13
SHA-256 checksum
How to use checksums
7cecc0eb7e35aa42ef6db747ce0801480a06f4b44c40277def0910fed3a5f3dc
BLAKE2b-256 checksum
How to use checksums
d1b2afdb76e72a97768e8456307cdcb8a41e33057cb61cf42994af64611c8f0c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp313-cp313-android_24_arm64_v8a.whl

Download URL rp2040py-0.3.0rc1-cp313-cp313-android_24_arm64_v8a.whl
Size 2.1 MB
Tags Android API level 24+ ARM64 v8a CPython 3.13
SHA-256 checksum
How to use checksums
5515eb8ea7b1ecd714d7689d9f689d9e6c5f6c3aba120a1455cb67dcedde2936
BLAKE2b-256 checksum
How to use checksums
f01ba765731370821ae89b316277308a3f49f6da0a4a7bc4034e1aeede11fb6b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp311-abi3-win_arm64.whl

Download URL rp2040py-0.3.0rc1-cp311-abi3-win_arm64.whl
Size 2.0 MB
Tags CPython 3.11 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
b71e2299d083f8066573706df306863792f3b7d95b77ec5a76d52526199a3243
BLAKE2b-256 checksum
How to use checksums
6bd7b38a9afd18fc9cb0ed1d2c27644029d3ff9eb31265a4d598cb06a77a0ad2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp311-abi3-win_amd64.whl

Download URL rp2040py-0.3.0rc1-cp311-abi3-win_amd64.whl
Size 2.1 MB
Tags CPython 3.11 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
9a09cf6897fffd15a21301f383ca606a2194a1178b9efde9b89be3e964a47b94
BLAKE2b-256 checksum
How to use checksums
56a4b4335235536d2dc4d87b62030590d176c93e094d427272d65d95a87884e1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp311-abi3-win32.whl

Download URL rp2040py-0.3.0rc1-cp311-abi3-win32.whl
Size 2.0 MB
Tags CPython 3.11 Windows x86-32 abi3
SHA-256 checksum
How to use checksums
ee412a70366577ecdbad526f9f03039610625d4558a234f70fb8a4687c3d5d72
BLAKE2b-256 checksum
How to use checksums
e028833a3a7a6183d57f5f8f6d47a1df16e67f1381805548632105a920dee642
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp311-abi3-musllinux_1_2_x86_64.whl

Download URL rp2040py-0.3.0rc1-cp311-abi3-musllinux_1_2_x86_64.whl
Size 2.2 MB
Tags CPython 3.11 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
1e1d8d0353fb3b57772c8ac27d83610cb362d0ed3bca35323040267fd9ba0f18
BLAKE2b-256 checksum
How to use checksums
79bb411e97a9351e9fe7bc45133bfc6e52c88d6b8509743fbebc880b9b53f577
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp311-abi3-musllinux_1_2_i686.whl

Download URL rp2040py-0.3.0rc1-cp311-abi3-musllinux_1_2_i686.whl
Size 2.3 MB
Tags CPython 3.11 Linux musl 1.2+ x86-32 abi3
SHA-256 checksum
How to use checksums
ec7b26781f2113d716a84ac3b47782395d366c204212128ecb80937a8fb4d2eb
BLAKE2b-256 checksum
How to use checksums
58ec9b6df78512f31c722d9fa5ee6816ff607a923f9293b453282515e7f4b00b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp311-abi3-musllinux_1_2_armv7l.whl

Download URL rp2040py-0.3.0rc1-cp311-abi3-musllinux_1_2_armv7l.whl
Size 2.1 MB
Tags CPython 3.11 Linux musl 1.2+ ARMv7l abi3
SHA-256 checksum
How to use checksums
1e296bd5a9cd751487ef5f23a7c4edc32b270a9c7feda7b43526b3f65898f5ee
BLAKE2b-256 checksum
How to use checksums
755c53cbc37b32d8f8e638ec72e7f2f51dc2844f57288f25a2e72a43bff9a8d7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp311-abi3-musllinux_1_2_aarch64.whl

Download URL rp2040py-0.3.0rc1-cp311-abi3-musllinux_1_2_aarch64.whl
Size 2.2 MB
Tags CPython 3.11 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
d3261805c80e3227baf3a2b6f3f11cf6a59ee361ebe0da38660b352a5e859b5e
BLAKE2b-256 checksum
How to use checksums
92214d8eb79319f92cba087a97c90f3c73b0ecf44e791780b7a28d2ad53edf18
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL rp2040py-0.3.0rc1-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 2.2 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
e88b814313cdf85986b9de81207d55625a46b2d53f1792a390b9aa2bf12a2252
BLAKE2b-256 checksum
How to use checksums
7231b459edee7c6f35d8a4045ed332502767c3098a4550a872122fe66208afa8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp311-abi3-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl

Download URL rp2040py-0.3.0rc1-cp311-abi3-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl
Size 2.1 MB
Tags CPython 3.11 Linux glibc 2.17+ ARMv7l Linux glibc 2.31+ ARMv7l abi3
SHA-256 checksum
How to use checksums
60bf2c42a07a55f053aac15d58c3ae585106916eb4c21565279d68026528c982
BLAKE2b-256 checksum
How to use checksums
8cd88dcead5dee5f8f9067700360bb1ecc54a61e70ea3ce953ec6069676d3f1c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL rp2040py-0.3.0rc1-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 2.2 MB
Tags CPython 3.11 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
7b369bd30a13326417bfc5b3a57a491551c7bfb9fc74de55de56d0fef69279b4
BLAKE2b-256 checksum
How to use checksums
d285f28d8403c740c066b2313cf58f7a89c694d042ff843722527e49758601ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp311-abi3-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl

Download URL rp2040py-0.3.0rc1-cp311-abi3-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Size 2.3 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-32 Linux glibc 2.5+ x86-32 abi3
SHA-256 checksum
How to use checksums
7fb4063d2b734707b9e7324bf6fbad056293a5cf65069df22f330ce05b158817
BLAKE2b-256 checksum
How to use checksums
1a04ed0614c7073998ac8d5287835195fb7ce0f5032f4ce5d01f5780dc087908
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp311-abi3-macosx_11_0_arm64.whl

Download URL rp2040py-0.3.0rc1-cp311-abi3-macosx_11_0_arm64.whl
Size 2.1 MB
Tags CPython 3.11 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
9f7b99488bd19893d45344898e1acb51c70dc8661e6ea539f1546e1f9afe38fb
BLAKE2b-256 checksum
How to use checksums
f66a74066a478e958e068e5a056e105cef712c5e5f78e026f303473749b7f430
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp311-abi3-macosx_10_9_x86_64.whl

Download URL rp2040py-0.3.0rc1-cp311-abi3-macosx_10_9_x86_64.whl
Size 2.1 MB
Tags CPython 3.11 abi3 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
38ec0b81ef2ca220e4a1f3db055820014d5f0026e7a725ff20b1ebf2060cd6da
BLAKE2b-256 checksum
How to use checksums
e1e67f140a377bb4dde1119af60db8b5b82c4be559d2895f4fba157cb2d7072e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp311-abi3-macosx_10_9_universal2.whl

Download URL rp2040py-0.3.0rc1-cp311-abi3-macosx_10_9_universal2.whl
Size 2.7 MB
Tags CPython 3.11 abi3 macOS 10.9+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
32893d075e486bf11861fe3dc8aabfc5b6cec9121d55f5117da0b586ba070243
BLAKE2b-256 checksum
How to use checksums
15304d76d37eb3d1f2bc3a0544c057f57911387cb632330b159a4f49b0a52fde
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp310-cp310-win_arm64.whl

Download URL rp2040py-0.3.0rc1-cp310-cp310-win_arm64.whl
Size 2.0 MB
Tags CPython 3.10 Windows ARM64
SHA-256 checksum
How to use checksums
77f528c28929e5e63b3ca9f8b1581644162b8779c1fbc2a08ab0b2ac05fe0c6c
BLAKE2b-256 checksum
How to use checksums
a047f29692d1251c79ebcb350361abd82e2433c25a341410f7903df11800853d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp310-cp310-win_amd64.whl

Download URL rp2040py-0.3.0rc1-cp310-cp310-win_amd64.whl
Size 2.1 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
ad56af86cb27dbeaa3e9cf95ff7be8ce7af8d81c1bd365630237a074880f0333
BLAKE2b-256 checksum
How to use checksums
472b9b63b54179da935b231d97db0364c1f2de2b18321ca32f92fc4235470877
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp310-cp310-win32.whl

Download URL rp2040py-0.3.0rc1-cp310-cp310-win32.whl
Size 2.0 MB
Tags CPython 3.10 Windows x86-32
SHA-256 checksum
How to use checksums
09572ba49101036c5ca75aa5276f1c5461699ca4a3b2f9f0229139b836b993bc
BLAKE2b-256 checksum
How to use checksums
edbb9b7be3338223aae0b0ef07a35507a63a040c8b37012fc7ddd1337b6ad746
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL rp2040py-0.3.0rc1-cp310-cp310-musllinux_1_2_x86_64.whl
Size 2.3 MB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
20f8ac930335ca070fffbc0410dee0d06526d7af43180119083e6aa37e6120ea
BLAKE2b-256 checksum
How to use checksums
5251ec7f5d94157d8da2bb3f3715d6a05485dbffb8e08a95ae5091aff2ef5d01
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp310-cp310-musllinux_1_2_i686.whl

Download URL rp2040py-0.3.0rc1-cp310-cp310-musllinux_1_2_i686.whl
Size 2.3 MB
Tags CPython 3.10 Linux musl 1.2+ x86-32
SHA-256 checksum
How to use checksums
6c159b35d18b4e7a090800f56d9c0b15ef99f99c54c61cb828b7b4235a0ccbe7
BLAKE2b-256 checksum
How to use checksums
56331f260fba722cb48d659cac19845fde4be077fb8a6dfe98bb86dabf071757
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp310-cp310-musllinux_1_2_armv7l.whl

Download URL rp2040py-0.3.0rc1-cp310-cp310-musllinux_1_2_armv7l.whl
Size 2.2 MB
Tags CPython 3.10 Linux musl 1.2+ ARMv7l
SHA-256 checksum
How to use checksums
f35a5c8d93a7f1b08c727de2d9fa22191e64830808a3a787f0da061b97375a03
BLAKE2b-256 checksum
How to use checksums
357f025765d7e70def5d476a32975a896bdc0210704587481ba06e8cc8f967d8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp310-cp310-musllinux_1_2_aarch64.whl

Download URL rp2040py-0.3.0rc1-cp310-cp310-musllinux_1_2_aarch64.whl
Size 2.2 MB
Tags CPython 3.10 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
4dd84e8af3a763318c10c6a168e372b3c813b92583fe100c4821895298ad81ae
BLAKE2b-256 checksum
How to use checksums
87e47073ea9cab8735149a0fbbdf0295bbbdd700669470d94c907ca98393e607
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL rp2040py-0.3.0rc1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 2.3 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
b72e3c5d3d7a0a3b840751c48323e26d04cf6d34180e14afaafaf437507b89d6
BLAKE2b-256 checksum
How to use checksums
9af5d50a09b930cc8ab022e5a5d171239fbba9356009425ecb29b2a0114a04b7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl

Download URL rp2040py-0.3.0rc1-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl
Size 2.2 MB
Tags CPython 3.10 Linux glibc 2.17+ ARMv7l Linux glibc 2.31+ ARMv7l
SHA-256 checksum
How to use checksums
fcc5a82052bc3f40e5d9a3775ae840eb55b879a9ddfe770bd0c24b95e43e4e9a
BLAKE2b-256 checksum
How to use checksums
821201b1052bddf891eb18f546242ea5647c10479b4addf358db5ce19974b2ba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL rp2040py-0.3.0rc1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 2.2 MB
Tags CPython 3.10 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
ad90860b4b11eaedad2e8fb65a3b0cefbea9c3297624d2f3c27f003dcc23e83f
BLAKE2b-256 checksum
How to use checksums
4586f53d1b76f6e01084b14f8a1f013a9ea74c615a7903a66a211cde6a99008b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl

Download URL rp2040py-0.3.0rc1-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Size 2.3 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-32 Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
6cbe0124147bff7eb4599dd4f8e157628ee83442afb7e82634c8ff703c306477
BLAKE2b-256 checksum
How to use checksums
81f88d085ba421c34afae9fca2fe358d67ccb4f8200e65a377e54efa90ee7038
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp310-cp310-macosx_11_0_arm64.whl

Download URL rp2040py-0.3.0rc1-cp310-cp310-macosx_11_0_arm64.whl
Size 2.2 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e2b817c9688aa1234f81d15c947cdf93857888c2efaf8e8beb7476e7930e6903
BLAKE2b-256 checksum
How to use checksums
2ab94b0ebba4fc35352b21a2683d2533d908c226130a1f39cf2af909b0305002
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp310-cp310-macosx_10_9_x86_64.whl

Download URL rp2040py-0.3.0rc1-cp310-cp310-macosx_10_9_x86_64.whl
Size 2.2 MB
Tags CPython 3.10 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
c84b8a20ab24e125a9f3cb4b1d119f0a8c3c48311a3ea151952b7f56191372de
BLAKE2b-256 checksum
How to use checksums
201f321d6c432cc84fc7fb1c19a0207261df14cf3932ead77831a040cecaea63
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / rp2040py-0.3.0rc1-cp310-cp310-macosx_10_9_universal2.whl

Download URL rp2040py-0.3.0rc1-cp310-cp310-macosx_10_9_universal2.whl
Size 2.8 MB
Tags CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
05eb1cbe8fadb852561c180f072ba308bfb4496ea49a1fa54d767ab74c20957a
BLAKE2b-256 checksum
How to use checksums
997b48c42df06bf2de22cbb0cc3acc29244a7790716aa7546fea098035c99b97
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page