.gitignore
.pre-commit-config.yaml
.python-version
CHANGELOG.md
CLAUDE.md
LICENSE
README.md
package.json
pyproject.toml
setup.py
uv.lock
.claude/skills/external-devices-and-boards/SKILL.md
.github/dependabot.yml
.github/actions/setup-rp2040py/action.yml
.github/workflows/ci-circuitpython.yml
.github/workflows/ci-kaluma.yml
.github/workflows/ci-micropython.yml
.github/workflows/ci-pico-sdk.yml
.github/workflows/coverage.yml
.github/workflows/pre-commit.yml
.github/workflows/publish.yml
.yarn/install-state.gz
boards/0xcb_gemini.py
boards/0xcb_helios.py
boards/__init__.py
boards/adafruit_feather_rp2040.py
boards/adafruit_itsybitsy_rp2040.py
boards/adafruit_qtpy_rp2040.py
boards/garatronic_pybstick26_rp2040.py
boards/machdyne_werkzeug.py
boards/nullbits_bit_c_pro.py
boards/pimoroni_picolipo.py
boards/pimoroni_tiny2040.py
boards/seeed_xiao_rp2040.py
boards/sparkfun_promicro.py
boards/waveshare_rp2040_one.py
boards/waveshare_rp2040_plus.py
boards/waveshare_rp2040_tiny.py
boards/waveshare_rp2040_zero.py
boards/vcc_gnd_yd_rp2040/__init__.py
boards/waveshare_rp2040_lcd_0_96/__init__.py
boards/weactstudio/__init__.py
demo/README.md
demo/benchmark.py
demo/cp_lcd_demo.py
demo/eink_run.py
demo/emulator_run.py
demo/kaluma_run.py
demo/lcd_run.py
demo/micropython_run.py
demo/mklittlefs_dump.py
demo/mp_eink_demo.py
demo/mp_lcd_demo.py
demo/wifi_lcd_run.py
demo/screenshots/eink-sunrise-frame0.png
demo/screenshots/eink-sunrise-frame5.png
demo/screenshots/lcd-circuitpython-boot-banner.png
demo/screenshots/lcd-circuitpython-code-py.png
demo/screenshots/lcd-circuitpython-console.png
demo/screenshots/lcd-micropython-frame1.png
demo/screenshots/lcd-micropython-frame2.png
demo/screenshots/wifi-lcd-circuitpython-connected.png
docs/0000-TRACKER.md
docs/ASYNCIO_MIGRATION_BACKLOG.md
docs/BACKLOG.md
docs/CYW43_WIFI_BACKLOG.md
docs/JIT_BACKLOG.md
docs/MAIN_THREAD_ASYNCIO_BACKLOG.md
docs/PORTING.md
docs/mpremote.md
docs/records/0001-cli-device-api.md
docs/records/0002-mklittlefs-image.md
docs/records/0003-littlefs-image-format.md
docs/records/0004-buffer-overflow-races.md
docs/records/0005-kaluma-firmware.md
docs/records/0006-gpio-pull-floating.md
docs/records/0007-bootrom-revisions.md
docs/records/0008-ssi-flash-write.md
docs/records/0009-simulator-fix.md
docs/records/0010-littlefs-dump-fs.md
docs/records/0011-mp-1.21-vs-1.28-gap.md
docs/records/0012-cdc-performance.md
docs/records/0013-cython-core.md
docs/records/0014-threading-model.md
docs/records/0015-memcpy-hle.md
docs/records/0016-jit-fusion.md
docs/records/0017-perf-python-vs-v8.md
docs/records/0018-raw-repl-txfifo.md
docs/records/0019-asyncio-idle-yield.md
docs/records/0020-pty-serial-passthrough.md
docs/records/0021-shutdown-coordinator.md
docs/records/0022-mpremote-socket-repl.md
docs/records/0023-termux-mpremote.md
docs/records/0024-cyw43-protocol.md
docs/records/0025-full-asyncio-migration.md
docs/records/0026-main-thread-asyncio.md
docs/records/0027-cyw43-wifi.md
docs/records/0028-cyw43-module-layout.md
docs/records/0029-cyw43-board-composition.md
docs/records/0030-external-device-concurrency.md
docs/records/0031-pio-cython-tick-batching.md
docs/records/0032-docs-restructure.md
docs/records/0033-completions-and-validation.md
docs/records/0034-execute-batch-native-port.md
docs/records/0035-board-aware-fs-flash-offset.md
docs/records/0036-littlefs-fat12-exclusivity.md
docs/records/0037-pio-clock-coupled-stepping.md
docs/records/0038-cyw43-ioctl-response-zero-fill.md
docs/records/0039-simulation-clock-native-port.md
docs/records/0040-time-monotonic-vs-cimport.md
docs/records/0041-cyw43-post-data-header-freeze-fix.md
docs/records/0042-cyw43-interrupt-register-w1c-fix.md
docs/records/0043-pio-dma-first-batch-race.md
docs/records/0044-spi-dma-tx-rx-starvation-fix.md
docs/records/0045-cyw43-nat-libslirp-cython.md
docs/records/0046-epd2in9g-external-device.md
docs/records/0047-cyw43-pio-gpio-hotpath.md
docs/records/0048-cyw43-nat-reflector.md
docs/records/0049-external-device-authoring-docs.md
docs/records/0050-qspi-pad-reset-values.md
docs/records/0051-bootsel-button.md
docs/records/0052-xip-ctrl-registers.md
docs/records/0053-core1-and-inter-core-fifo.md
docs/records/0054-cyw43-disassoc.md
docs/records/0055-rp2040-factory-throttle-test-hang-fix.md
docs/records/0056-st7735s-waveshare-lcd-board.md
docs/records/0057-run-pin-reset-hook.md
docs/records/0059-boardspec-firmware-resolution.md
docs/records/0060-external-io-bridges.md
docs/records/0061-cli-family-flag.md
docs/records/0062-yd-rp2040-board-and-ws2812.md
docs/records/0063-pio-clkdiv-and-delay-cycles.md
docs/records/0064-state-server-and-web-visualizer.md
docs/records/0065-queued-exec-erroring-flaky-test.md
docs/records/0066-board-support-expansion.md
docs/records/0067-external-devices-and-boards-skill.md
docs/records/0068-waveshare-rp2040-zero-board.md
docs/records/0069-adafruit-feather-rp2040-board.md
docs/records/0070-adafruit-itsybitsy-rp2040-board.md
docs/records/0071-adafruit-qtpy-rp2040-board.md
docs/records/0072-w5500-ethernet-and-board.md
docs/records/0073-garatronic-pybstick26-rp2040-board.md
docs/records/0074-machdyne-werkzeug-board.md
docs/records/0075-nullbits-bit-c-pro-board.md
docs/records/0076-pimoroni-picolipo-board.md
docs/records/0077-pimoroni-tiny2040-board.md
docs/records/0078-waveshare-rp2040-plus-board.md
docs/records/0079-seeed-xiao-rp2040-board.md
docs/records/0080-sparkfun-promicro-board.md
docs/records/0081-waveshare-rp2040-one-board.md
docs/records/0082-waveshare-rp2040-tiny-board.md
docs/records/0083-0xcb-gemini-board.md
docs/records/0084-0xcb-helios-board.md
docs/records/0085-circuitpython-code-py-and-wifi-on-screen.md
docs/records/0086-fat12-library-and-a-mkfat12-subcommand.md
docs/records/0087-circuitpython-writable-circuitpy-over-the-raw-repl.md
docs/records/0088-usb-host-side-msc-control-lines-and-reset.md
docs/records/0089-one-reset-for-every-trigger.md
docs/records/0090-post-boot-nudge-is-a-newline.md
docs/records/0091-esp32-c3-port-feasibility.md
docs/records/0092-power-button-and-power-cycle.md
docs/records/0093-circuitpython-802-warm-boot-hang.md
docs/reference/external-devices-and-boards.md
docs/reference/mpremote.md
docs/reference/os-compatibility.md
docs/reference/porting-checklist.md
scripts/ci-common.sh
scripts/fetch_firmware.py
scripts/pytest_mem_usage.py
src/rp2040py/__init__.py
src/rp2040py/__main__.py
src/rp2040py/_clock_batch_gate.py
src/rp2040py/_cortex_m0_core.py
src/rp2040py/_execute_batch.py
src/rp2040py/_gpio_pin.py
src/rp2040py/_native_gate.py
src/rp2040py/_rp2040.py
src/rp2040py/boards.py
src/rp2040py/cortex_m0_core.py
src/rp2040py/execute_batch.py
src/rp2040py/gpio_pin.py
src/rp2040py/interpolator.py
src/rp2040py/irq.py
src/rp2040py/memory_map.py
src/rp2040py/py.typed
src/rp2040py/qspi_pads.py
src/rp2040py/rp2040.py
src/rp2040py/simulator.py
src/rp2040py/sio.py
src/rp2040py.egg-info/PKG-INFO
src/rp2040py.egg-info/SOURCES.txt
src/rp2040py.egg-info/dependency_links.txt
src/rp2040py.egg-info/entry_points.txt
src/rp2040py.egg-info/requires.txt
src/rp2040py.egg-info/scm_file_list.json
src/rp2040py.egg-info/scm_version.json
src/rp2040py.egg-info/top_level.txt
src/rp2040py/cli/__init__.py
src/rp2040py/cli/intelhex.py
src/rp2040py/cli/mklittlefs.py
src/rp2040py/cli/process_repl.py
src/rp2040py/cli/pty_repl.py
src/rp2040py/cli/socket_repl.py
src/rp2040py/cli/stdio_repl.py
src/rp2040py/clock/__init__.py
src/rp2040py/clock/_simulation_clock.py
src/rp2040py/clock/clock.py
src/rp2040py/clock/mock_clock.py
src/rp2040py/clock/simulation_clock.py
src/rp2040py/device/__init__.py
src/rp2040py/device/base_device.py
src/rp2040py/device/bootrom.py
src/rp2040py/device/kaluma_device.py
src/rp2040py/device/load_flash.py
src/rp2040py/device/mp_device.py
src/rp2040py/device/raw_repl.py
src/rp2040py/device/repl_runner.py
src/rp2040py/external/__init__.py
src/rp2040py/external/bootsel_button.py
src/rp2040py/external/device.py
src/rp2040py/external/epd2in9g.py
src/rp2040py/external/key_mock.py
src/rp2040py/external/led_mock.py
src/rp2040py/external/reset_button.py
src/rp2040py/external/st7735s.py
src/rp2040py/external/ws2812.py
src/rp2040py/external/cyw43/__init__.py
src/rp2040py/external/cyw43/bus.py
src/rp2040py/external/cyw43/chip.py
src/rp2040py/external/cyw43/nat.py
src/rp2040py/external/cyw43/net.py
src/rp2040py/gdb/__init__.py
src/rp2040py/gdb/gdb_connection.py
src/rp2040py/gdb/gdb_server.py
src/rp2040py/gdb/gdb_target.py
src/rp2040py/gdb/gdb_tcp_server.py
src/rp2040py/gdb/gdb_utils.py
src/rp2040py/native/__init__.py
src/rp2040py/native/_bit.pxd
src/rp2040py/native/_bit.pyi
src/rp2040py/native/_bit.pyx
src/rp2040py/native/_cortex_m0_core.pxd
src/rp2040py/native/_cortex_m0_core.pyi
src/rp2040py/native/_cortex_m0_core.pyx
src/rp2040py/native/_gpio_pin.pxd
src/rp2040py/native/_gpio_pin.pyi
src/rp2040py/native/_gpio_pin.pyx
src/rp2040py/native/_pio.pxd
src/rp2040py/native/_pio.pyi
src/rp2040py/native/_pio.pyx
src/rp2040py/native/_rp2040.pxd
src/rp2040py/native/_rp2040.pyi
src/rp2040py/native/_rp2040.pyx
src/rp2040py/native/_simulation_clock.pxd
src/rp2040py/native/_simulation_clock.pyi
src/rp2040py/native/_simulation_clock.pyx
src/rp2040py/native/_simulator.pyi
src/rp2040py/native/_simulator.pyx
src/rp2040py/native/_state_machine.pxd
src/rp2040py/native/_state_machine.pyi
src/rp2040py/native/_state_machine.pyx
src/rp2040py/peripherals/__init__.py
src/rp2040py/peripherals/_pio.py
src/rp2040py/peripherals/_state_machine.py
src/rp2040py/peripherals/adc.py
src/rp2040py/peripherals/busctrl.py
src/rp2040py/peripherals/clocks.py
src/rp2040py/peripherals/dma.py
src/rp2040py/peripherals/i2c.py
src/rp2040py/peripherals/io.py
src/rp2040py/peripherals/pads.py
src/rp2040py/peripherals/peripheral.py
src/rp2040py/peripherals/pio.py
src/rp2040py/peripherals/pio_registers.py
src/rp2040py/peripherals/ppb.py
src/rp2040py/peripherals/psm.py
src/rp2040py/peripherals/pwm.py
src/rp2040py/peripherals/reset.py
src/rp2040py/peripherals/rtc.py
src/rp2040py/peripherals/spi.py
src/rp2040py/peripherals/ssi.py
src/rp2040py/peripherals/state_machine.py
src/rp2040py/peripherals/syscfg.py
src/rp2040py/peripherals/sysinfo.py
src/rp2040py/peripherals/tbman.py
src/rp2040py/peripherals/timer.py
src/rp2040py/peripherals/uart.py
src/rp2040py/peripherals/usb.py
src/rp2040py/peripherals/vreg_and_chip_reset.py
src/rp2040py/peripherals/watchdog.py
src/rp2040py/peripherals/xip_ctrl.py
src/rp2040py/peripherals/xosc.py
src/rp2040py/usb/__init__.py
src/rp2040py/usb/cdc.py
src/rp2040py/usb/interfaces.py
src/rp2040py/usb/setup.py
src/rp2040py/usb/usb_device.py
src/rp2040py/utils/__init__.py
src/rp2040py/utils/_bit.py
src/rp2040py/utils/assembler.py
src/rp2040py/utils/asyncio_loop_thread.py
src/rp2040py/utils/bit.py
src/rp2040py/utils/fifo.py
src/rp2040py/utils/firmware_retrieve.py
src/rp2040py/utils/firmware_specs.json
src/rp2040py/utils/logging.py
src/rp2040py/utils/pio_assembler.py
src/rp2040py/utils/time.py
src/rp2040py/utils/timer32.py
tests/chip_reset_run.py
tests/conftest.py
tests/control_lines_run.py
tests/hard_reset_run.py
tests/micropython_spi_run.py
tests/pico_spec.py
tests/reset_button_run.py
tests/test_assembler.py
tests/test_bare_chip_reset.py
tests/test_boards.py
tests/test_bootsel_button.py
tests/test_cdc.py
tests/test_chip_reset.py
tests/test_cli.py
tests/test_cli_board_spec.py
tests/test_cli_bootrom.py
tests/test_cli_intelhex.py
tests/test_cli_mklittlefs.py
tests/test_cyw43_bus.py
tests/test_cyw43_nat.py
tests/test_cyw43_net.py
tests/test_demo_mklittlefs_dump.py
tests/test_device.py
tests/test_dispatch_table.py
tests/test_dma.py
tests/test_external_device.py
tests/test_fifo.py
tests/test_firmware_retrieve.py
tests/test_gdb_tcp_server.py
tests/test_gpio_pin.py
tests/test_instructions.py
tests/test_kaluma_device.py
tests/test_led_mock.py
tests/test_mpremote_integration.py
tests/test_mpremote_missing_list_ports_backend.py
tests/test_pio.py
tests/test_pio_assembler.py
tests/test_pio_clkdiv.py
tests/test_pty_repl.py
tests/test_qspi_pads.py
tests/test_raw_repl.py
tests/test_repl_runner.py
tests/test_reset_button.py
tests/test_rp2040.py
tests/test_schedule_threadsafe.py
tests/test_simulator.py
tests/test_simulator_engine_room_crash.py
tests/test_simulator_shutdown.py
tests/test_sio.py
tests/test_socket_repl.py
tests/test_ssi.py
tests/test_st7735s.py
tests/test_stdio_repl.py
tests/test_time.py
tests/test_timer.py
tests/test_uart.py
tests/test_usb_connected_level.py
tests/test_usb_double_buffer.py
tests/test_watchdog_reset.py
tests/test_ws2812.py
tests/test_xip_ctrl.py
tests/ws2812_boot_decode.py
tests/circuitpython/main-cyw43.py
tests/circuitpython/main-reset-cause.py
tests/kaluma/index-flash-rw.js
tests/kaluma/index.js
tests/kaluma/main-cyw43.js
tests/micropython/main-cyw43.py
tests/micropython/main-flash-rw.py
tests/micropython/main-reset-cause.py
tests/micropython/main-spi.py
tests/micropython/main.py
tests/utils/__init__.py
tests/utils/cortex_test_driver.py
tests/utils/create_test_driver.py
tests/utils/is32bit.py
tests/utils/rp2040_test_driver.py