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.
| MCU | RP2350 (dual Arm Cortex-M33 @ 150 MHz, optional RISC-V Hazard3 cores) |
| Flash / SRAM | 4 MB (onboard) / 520 KB |
| Wireless | Wi-Fi + Bluetooth LE (CYW43439) |
| Board | Raspberry Pi Pico 2 W |
| Flash tool | picotool |
| Serial | USB 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
srig session create --board rp2350
srig flash build/app.uf2
srig serial --timeout 30s --log output.txt
srig session endimport 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:
# 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 anythingBecause 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
- GitHub Actions with
board: rp2350 - GitLab CI with
SRIG_BOARD: rp2350