Usage Guide

Once your Debug Probe is flashed with the firmware, it becomes a versatile tool for debugging and communicating with a target microcontroller.

Connecting to a Target

The Debug Probe connects to your target device using the Serial Wire Debug (SWD) interface and, optionally, a UART interface.

Pinout

For the specific GPIO pins used by your hardware (Official Debug Probe vs. a Pico), please refer to the Hardware Configuration page.

The standard connections are:

Signal Direction Description
GND --- Common ground. This must always be connected.
SWCLK Probe -> Target Serial Wire Clock.
SWDIO Probe <-> Target Serial Wire Data Input/Output.
TX Probe -> Target UART Transmit from the probe's perspective.
RX Probe <- Target UART Receive from the probe's perspective.
nRESET Probe -> Target (Optional) Target reset pin, active low.

Connection Instructions:

  1. Connect the GND pin on the Debug Probe to a GND pin on your target board.
  2. Connect the SWCLK pin to the target's SWCLK pin.
  3. Connect the SWDIO pin to the target's SWDIO pin.
  4. For serial communication, cross-connect the UART pins: Probe TX -> Target RX and Probe RX -> Target TX.

Debugging with OpenOCD

The Debug Probe uses the standard CMSIS-DAP protocol, making it compatible with OpenOCD. To use it, you'll need a configuration file that specifies the cmsis-dap interface and your target microcontroller.

  1. Create an OpenOCD configuration file (e.g., my_target.cfg):

    # Example for debugging a Raspberry Pi Pico (RP2040)
    
    # Specify the debug interface
    source [find interface/cmsis-dap.cfg]
    
    # Specify the transport protocol
    transport select swd
    
    # Specify the target microcontroller
    source [find target/rp2040.cfg]
    
    # Reset the target on connect
    reset_config srst_only
  2. Run OpenOCD:

    Connect both the Debug Probe and your target device to your computer (the target needs power). Then, run OpenOCD with your configuration file.

    openocd -f my_target.cfg

    OpenOCD will connect to the probe and establish a debug connection with the target. It will open a GDB server on port 3333 and a Tcl server on port 6666 by default.

  3. Connect with GDB:

    You can now connect to the target with arm-none-eabi-gdb:

    arm-none-eabi-gdb your_program.elf
    
    (gdb) target extended-remote localhost:3333
    (gdb) monitor reset init
    (gdb) load
    (gdb) continue

Using the USB-to-UART Bridge

When plugged in, the Debug Probe also appears as a standard USB CDC serial port.

  • Linux: It will typically appear as /dev/ttyACM0 or similar.
  • macOS: It will appear as /dev/cu.usbmodem....
  • Windows: It will appear as a COM port (e.g., COM3) in the Device Manager.

You can connect to this serial port using any terminal emulator program like minicom, screen, PuTTY, or the Arduino IDE's serial monitor.

The default baud rate is 115200, but this can be changed by the terminal software you connect with. The firmware will automatically adjust the UART settings to match what the host requests.

# Example using minicom on Linux
minicom -b 115200 -D /dev/ttyACM0