Skip to content

RP2350 (Raspberry Pi Pico 2 W) ​

Board type: rp2350

A real Raspberry Pi Pico 2 W, flashed via picotool and reachable from your browser, CLI, or CI pipeline.

MCURP2350 (dual Arm Cortex-M33 @ 150 MHz, optional RISC-V Hazard3 cores)
Flash / SRAM4 MB (onboard) / 520 KB
WirelessWi-Fi + Bluetooth LE (CYW43439)
BoardRaspberry Pi Pico 2 W
Flash toolpicotool
SerialUSB CDC, 115200 baud

Firmware format ​

.uf2, loaded with picotool. The pico-sdk build emits .uf2 files directly; no conversion needed. Maximum upload size is 16 MB.

Accepted formats: .uf2 only.

Quickstart ​

bash
# A prebuilt image, so this needs no toolchain
curl -LO https://github.com/raws-labs/srig-examples/releases/latest/download/demo-shell-rp2350.uf2
srig run demo-shell-rp2350.uf2 --board rp2350 --expect "0 failed"

# Your own build: the exit code is 0 when the pattern shows up
srig run build/app.uf2 --board rp2350 --expect "Ready"
python
import siliconrig

client = siliconrig.Client()
with client.session(board="rp2350") as session:
    session.flash("build/app.uf2")
    session.serial.expect("Ready", timeout=30)

Firmware requirements ​

The serial console reads the RP2350's own USB CDC (it shows up as /dev/ttyACM*) — not UART pins. The Pico provides the serial port itself, so build your firmware with USB serial stdio enabled or you'll get no output:

cmake
# pico-sdk CMakeLists.txt
pico_enable_stdio_usb(your_target 1)   # serial over the RP2350's native USB
pico_enable_stdio_uart(your_target 0)  # UART pins aren't wired to anything

Because the platform flashes and wipes over that same USB with picotool (picotool load -x -f, then an erase when your session ends), your firmware must also keep USB alive:

Firmware that drops USB can strand the board

picotool -f can only take over a board whose currently-running firmware keeps USB up and honours a reset. Firmware that brings up no USB — or a custom USB stack that ignores the reset — can't be re-flashed or wiped remotely, and needs a physical recovery there's no remote path for. Always ship USB CDC serial.

After a flash the device re-enumerates and reboots; the platform reconnects the serial console automatically once it's back (usually within a few seconds). Give it that moment — wait for the host to open the port before your firmware prints, or the first lines can be lost.

Clean state ​

The board's flash is erased when your session ends. The next session starts from a blank chip, and nothing you flashed is visible to other users.

Use it in CI ​