Overview
The Raspberry Pi Debug Probe is an all-in-one USB-to-debug kit that provides all the necessary hardware and cables for easy, solderless, plug-and-play debugging. It features both a processor serial debug interface (by default the Arm Serial Wire Debug interface, but other interfaces can be supported) and an industry-standard UART interface. Both interfaces use the Raspberry Pi 3-pin debug connector, as detailed in the Raspberry Pi 3-pin Debug Connector Specification (see rptl.io/debug-spec). The Raspberry Pi Debug Probe is presented as a kit, packaged in a reusable box, comprising the Debug Probe hardware in its own plastic case together with a USB cable and three types of debug cable, covering the vast majority of debug use cases. It is designed to make it easy to debug and program Raspberry Pi Pico and RP2040 with a range of host platforms including Windows, Mac, and typical Linux computers. While designed for use with Raspberry Pi products, the Debug Probe provides standard UART and CMSIS-DAP interfaces over USB, so it can also be used with other processors, or even just as a USB-to-UART cable. It works with OpenOCD and other tools that support CMSIS-DAP. The Debug Probe is based on Raspberry Pi Pico hardware and runs the open source Raspberry Pi Picoprobe software (https://github.com/raspberrypi/picoprobe).
The firmware is updated in the same way as Raspberry Pi Pico firmware, so it is easy to keep the unit up to date with the latest firmware, or to use custom firmware.
- 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.
A debug probe provides a bridge between USB and the SWD protocol, allowing a host to access the target’s debug port
- 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.
Serial communication
- We often want to establish a serial console connection between a microcontroller target and a host computer. This provides a simple way to interact with software running on the target, and to retrieve logging and other diagnostic data. If the host computer is a Raspberry Pi, then you can use one of the UART peripherals exposed via the GPIO header. But if you’re using a PC or Mac, it’s very unlikely that you have access to a built-in serial port.
- The Raspberry Pi Debug Probe functions as a USB serial adapter, over the same USB connection as the SWD bridge. It exposes the UART signals on a second three-pin JST connector, again conforming to the Raspberry Pi Debug Connector Specification.
- For users who do not require debug functionality, the Raspberry Pi Debug Probe’s low price makes it a cost-effective alternative to other USB serial adapters. It has largely replaced the once-ubiquitous FTDI cable as our adapter of choice here at Pi Towers.
Video
Raspberry Pi Debug Probe x1