The Raspberry Pi Debug Probe can be used to debug any Arm-based microcontroller that provides an SWD port with 3V3 I/O
All modern Arm-based microcontrollers, including RP2040, implement Arm’s CoreSight debug architecture. Each processor core, like the Cortex-M0+ used in RP2040, provides an Access Port (AP) which can be used to single step, set breakpoints, observe the values of processor registers, and access memory and peripherals via the processor’s bus interface.
The microcontroller itself provides a Debug Port (DP), which is connected externally to pins on the package, and internally to each AP in the system. RP2040 exposes its DP via a low-pin-count Serial Wire Debug (SWD) port: by talking the SWD protocol over this port, a host computer can control each core’s AP, in order to debug a program running on the core.
A debug probe provides a bridge between USB and the SWD protocol. While not strictly required if the host computer is a Raspberry Pi (you can wire up the target’s SWD port directly to the GPIO header on a Raspberry Pi), it’s much more convenient to connect via USB. And if you’re using a PC or Mac, USB is your only option.
The Raspberry Pi Debug Probe exposes the SWD signals on a three-pin JST connector, conforming to the Raspberry Pi Debug Connector Specification. We provide adapter cables to connect without soldering to breadboard, and to the debug connector on Raspberry Pi Pico H and WH.
Arm has helpfully standardised the protocol used to communicate over USB between a host computer and a debug probe. The Raspberry Pi Debug Probe conforms to this CMSIS-DAP standard, and so will work out of the box with many existing debug software platforms, including our favourite, OpenOCD.
More details on the Debug Probe at the Raspberry Pi news page