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
srig session create --board rp2350
srig flash build/app.uf2
srig serial --timeout 30s --log output.txt
srig session end
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