{"product_id":"raspberry-pi-debug-probe","title":"Raspberry Pi Debug Probe","description":"\u003cp\u003eThe Raspberry Pi Debug Probe is an inexpensive, all-in-one USB to serial debug and UART bridge.\u003c\/p\u003e\n\u003cp\u003eIt provides the necessary hardware and cabling to support “plug and play” debugging of Raspberry Pi Pico and other microcontroller- and microprocessor-based platforms.\u003c\/p\u003e\n\u003cp\u003eThe Raspberry Pi Debug Probe provides both a processor serial debug interface (by default this is the ARM Serial Wire Debug interface) and an industry-standard UART interface. Both interfaces use a 3-pin debug connector, as specified in the \u003ca href=\"https:\/\/datasheets.raspberrypi.com\/debug\/debug-connector-specification.pdf\"\u003eRaspberry Pi 3-pin debug connector specification\u003c\/a\u003e.\u003c\/p\u003e\n\u003cp\u003eThe Raspberry Pi Debug Probe is provided as a kit, containing the probe hardware in a plastic case, and a set of cables: a USB cable, and three different types of debug cable to cover the vast majority of use cases.\u003c\/p\u003e\n\u003cp\u003eIt provides:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eA USB to Serial Wire Debug (SWD) bridge\u003c\/li\u003e\n\u003cli\u003eA generic USB serial adapter\u003c\/li\u003e\n\u003cli\u003eCables to connect to a host computer, and to the debug target\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eWhile it has been designed primarily for Raspberry Pi Pico, and other RP2040-based targets, the Debug Probe provides standard CMSIS-DAP debug and UART interfaces over USB; it can therefore be used to debug other targets (that have an SWD port with 3V3 I\/O), or simply as a cost-effective USB-to-UART cable.\u003cbr\u003e\u003c\/p\u003e\n\u003cp\u003eThe Raspberry Pi Debug Probe is based on the Raspberry Pi Pico hardware design and runs the \u003ca href=\"https:\/\/github.com\/raspberrypi\/picoprobe\"\u003eopen-source Raspberry Pi Picoprobe software\u003c\/a\u003e. Updating the firmware is accomplished in the same way as on a Raspberry Pi Pico, so it is straightforward to keep the unit up to date with the latest Picoprobe firmware, or to use a custom firmware.\u003c\/p\u003e\n\u003ch2\u003eWhat is a debug probe?\u003c\/h2\u003e\n\u003cp\u003eAll modern Arm-based microcontrollers, including RP2040, implement Arm’s\u003cspan\u003e \u003c\/span\u003e\u003ca href=\"https:\/\/developer.arm.com\/Architectures\/CoreSight%20Architecture\"\u003eCoreSight\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003edebug 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.\u003c\/p\u003e\n\u003cp\u003eThe 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.\u003c\/p\u003e\n\u003cp\u003eA 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.\u003c\/p\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0174\/1800\/files\/Coresight-Debug-Probe-1536x513_480x480.png?v=1676975332\"\u003e\u003c\/p\u003e\n\u003cp\u003eThe Raspberry Pi Debug Probe exposes the SWD signals on a three-pin JST connector, conforming to the\u003cspan\u003e \u003c\/span\u003e\u003ca href=\"https:\/\/datasheets.raspberrypi.com\/debug\/debug-connector-specification.pdf\"\u003eRaspberry Pi Debug Connector Specification\u003c\/a\u003e. We provide adapter cables to connect without soldering to breadboard, and to the debug connector on Raspberry Pi Pico H and WH.\u003c\/p\u003e\n\u003cp\u003eArm 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,\u003cspan\u003e \u003c\/span\u003e\u003ca href=\"https:\/\/openocd.org\/\"\u003eOpenOCD\u003c\/a\u003e.\u003c\/p\u003e\n\u003ch2\u003eSerial communication\u003c\/h2\u003e\n\u003cp\u003eWe 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.\u003c\/p\u003e\n\u003cp\u003eThe 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.\u003c\/p\u003e\n\u003cp\u003eFor 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.\u003c\/p\u003e\n\u003ch2\u003eResources\u003c\/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https:\/\/www.raspberrypi.com\/documentation\/microcontrollers\/debug-probe.html\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eRaspberry Pi Debug Probe documentation\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca href=\"https:\/\/macoy.me\/blog\/programming\/RaspberryPi5Debugging\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eDebugging on Raspberry Pi 4 and 5\u003c\/a\u003e\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Raspberry Pi","offers":[{"title":"Default Title","offer_id":40511574999123,"sku":"SC0889","price":12.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0174\/1800\/products\/DEBUG_HERO_CASE.jpg?v=1676880388","url":"https:\/\/shop.pimoroni.com\/en-eu\/products\/raspberry-pi-debug-probe","provider":"Pimoroni Ltd","version":"1.0","type":"link"}