Raspberry Pi Debug Probe
| Primary Attribute | |||||
|---|---|---|---|---|---|
| Category: | |||||
| {{{userDefinedInfo}}}: | {{{userdefinedvalue}}} | ||||
| Brand: Waveshare | |||||
| Website | |||||
|---|---|---|---|---|---|
| International: Website | |||||
| Chinese: 官网 | |||||
| Onboard Interfaces | |
|---|---|
| Related Products | |
|---|---|
Overview
Introduction
Raspberry Pi Debug Probe is an official USB hardware debugger designed for Pico, an all-in-one design, with the features of solderless and plug-and-play, and can be connected to the debug interface of the target board via SWD interface.
Features
- RP2040 microcontroller chip designed by Raspberry Pi in the United Kingdom.
- Onboard Micro-USB port for connecting to PC or other boards.
- Onboard 3PIN SWD interface for connecting to the target board.
- Onboard 3PIN USB to UART bridge.
- Standard CMSIS-DAP interface, compatible with most ARM-based microcontrollers.
- Works with OpenOCD and other tools supporting CMSIS-DAP.
- Follows the Raspberry Pi 3PIN Debug Connector Specification.
- Comes with a high-quality transparent plastic case and connection cables.
- Open-source programs, are more convenient to upgrade the firmware.
Onboard Resource
Dimensions
Raspberry Pi Debug Probe02.jpg
User Guide
Install OpenOCD
Linux (and Raspberry Pi)
Download the Dependency Library
sudo apt install automake autoconf build-essential texinfo libtool libftdi-dev libusb-1.0-0-dev
Get and Compile
git clone https://github.com/raspberrypi/openocd.git --branch rp2040 --depth=1 --no-single-branch cd openocd ./bootstrap ./configure make -j4 sudo make install
Windows
- 1. As OpenOCD self-compilation is complicated in the windows environment, it is recommended to use the already compiled version.
- 2. Unzip and store in a relatively short directory, e.g. directly in the C drive.
Add Environment Variables
- 1. Click the menu, and search "environment variables".
Raspberry Pi Debug Probe05.jpg
- 2. Click "Edit the system environment variables":
Raspberry Pi Debug Probe06.jpg
- 3. Double-click the "Path" variable, and then enter the edit interface.
Raspberry Pi Debug Probe07.jpg
- 4. Add a new path.
Raspberry Pi Debug Probe08.jpg
- Create a new variable address.
- Enter the OpenOCD storage address.
- Click OK to save.
- 5. Click "OK" and save the change.
Raspberry Pi Debug Probe09.jpg
- 6. Reboot the computer.
Install GDB
Linux (and Raspberry Pi)
- 1. Install gdb-multiarch.
sudo apt install gdb-multiarch
Windows
- 1. If you have installed the related pico-sdk environment, you can skip this step as the GDB is included in Arm GNU Toolchain.
- 2. If you have not installed the related pico-sdk environment, it is recommended to install it with the official pico demo.
Program the Demo with Raspberry Pi Debug Probe
- With Pico Debug Probe, you can load the binaries via the SWD port and OpenOCD.
- You do not need to unplug and hold the BOOTSEL button every time you push a new binary to Pico.
- 1. Take RP2040 usage as an example, the commands for programming the demo:
sudo openocd -f interface/cmsis-dap.cfg -f target/rp2040.cfg -c "adapter speed 5000" -c "program {your elf file name}.elf verify reset exit"
- 2. If there is a blink.elf file in your current file folder.
sudo openocd -f interface/cmsis-dap.cfg -f target/rp2040.cfg -c "adapter speed 5000" -c "program blink.elf verify reset exit"
Debug the Demo with Raspberry Pi Debug Probe
Open OpenOCD Server
- You can let openocd be used in server mode and connect to GDB, thus providing you with breakpoints and "correct" debugging.
- 1. Here is also an example of debugging the rp2040 by entering the following command:
sudo openocd -f interface/cmsis-dap.cfg -f target/rp2040.cfg -c "adapter speed 5000"
- Take using PowerShell in windows as an example:
Raspberry Pi Debug Probe010.jpg
- 2. *If you start listening on the local 3333 port at this point, the OpenOCD server has been successfully turned on.
Use GDB Command Line
- This demo is set up based on pico-sdk, and pico-example was compiled.
- 1. Open PowerShell and enter the corresponding "build" file folder, take the blink demo as an example.
Raspberry Pi Debug Probe011.jpg
- 2. Open GBD and enter the following commands:
- If it is windows, you can input the following commands:
arm-none-eabi-gdb blink.elf
- If it is Linux, you can input the following commands:
gdb blink.elf
Raspberry Pi Debug Probe012.jpg
- 3. Input the following commands in order:
target remote localhost:3333 load monitor reset init continue
Raspberry Pi Debug Probe013.jpg
- You can see Pico executes blink, and LED blinks.
Use VSCode to Debug (Advanced)
- Please make sure that the #Open OpenOCD Server and the #Use GDB Command Line are running properly.
- Please make sure the Pico compilation environment is set up normally.
- Please make sure your VSCode can install the following plug-in.
- 1. Cortex-Debug ()
- 2. Cmake-tools
- 3. C/C++
1. First, open the OpenOCD server:
Raspberry Pi Debug Probe010.jpg
2. Use VSC to open the pico-example file folder and open the blink demo.
3. Use F1 to input the following commands:
open 'launch.json'
4. Put the following content in after opening. Raspberry Pi Debug Probe014.jpg
- If it is Windows, please input:
{
"version": "0.2.0",
"configurations": [
{
"name": "Pico Debug",
"type":"cortex-debug",
"cwd": "${workspaceRoot}",
"executable": "${command:cmake.launchTargetPath}",
"request": "launch",
"servertype": "external",
// This may need to be arm-none-eabi-gdb depending on your system
"gdbPath" : "gdb",
// Connect to an already running OpenOCD instance
"gdbTarget": "localhost:3333",
"svdFile": "${env:PICO_SDK_PATH}/src/rp2040/hardware_regs/rp2040.svd",
"runToMain": true,
// Work around for stopping at main on restart
"postRestartCommands": [
"break main",
"continue"
]
}
]
}
- If it is a Linux system, please input:
{
"version": "0.2.0",
"configurations": [
{
"name": "Pico Debug",
"type":"cortex-debug",
"cwd": "${workspaceRoot}",
"executable": "${command:cmake.launchTargetPath}",
"request": "launch",
"servertype": "external",
// This may need to be arm-none-eabi-gdb depending on your system
"gdbPath" : "arm-none-eabi-gdb",
// Connect to an already running OpenOCD instance
"gdbTarget": "localhost:3333",
"svdFile": "${env:PICO_SDK_PATH}/src/rp2040/hardware_regs/rp2040.svd",
"runToMain": true,
// Work around for stopping at main on restart
"postRestartCommands": [
"break main",
"continue"
]
}
]
}
- The difference between them is the gdb calls are different.
5. Enter the run and debug interface shortcut key Ctrl + Shift + D.
Raspberry Pico Debug Probe07.jpg
- 1Select Pico Debug as the debugger.
- 2Select CMake as the debug mode.
- 3Start to debug the key, the shortcut key F5.
- 4Choose the debug object as blink.
6. Click debug key to enter the debug mode, the shortcut key is F5.
Raspberry Pi Debug probe90.jpg
7. The Debug Tools show:
Raspberry Pi Debug Probe91.jpg
- 1Restart the device.
- 2Continue to run the demo.
- 3Execute.
- 4Enter the function to run.
- 5Jumping out of function runs.
- 6Stop debugging.
8. Continue to run the demo, press F5 and you can see Pico runs the blink demo.
Resource
Firmware
Datasheet
- Raspberry Pi Debug Probe Mechanical Drawing
- Raspberry Pi Debug Probe Schematic Drawing
- Debug Connector Specification
Software
OpenOCD
Pico-SDK Package (Windows)
Support
Technical Support
If you need technical support or have any feedback/review, please click the Submit Now button to submit a ticket, Our support team will check and reply to you within 1 to 2 working days. Please be patient as we make every effort to help you to resolve the issue.
Working Time: 9 AM - 6 PM GMT+8 (Monday to Friday)