Tooling

Debug Probes (JTAG / SWD / SWO)

J-Link, Black Magic Probe, Picoprobe, ST-Link, DAPLink, JTAGulator — the wires between gdb and your MCU.

The hardware bridge between a host PC's debugger (GDB, OpenOCD, probe-rs, vendor IDE) and an MCU's JTAG / SWD / SWO pins. The 2024–26 era is dominated by probe-rs as the rust-driven host stack and CMSIS-DAP as the open protocol, with J-Link still the "I want it to just work" pro pick. Pair with Logic Analyzers for bus-side debug, Oscilloscopes for hardware sanity, and MCU Platforms and MCU Dev Kits for the firmware that's running. For Arduino-flavored development see Arduino & PlatformIO.

"Free if you have the parts" probes

  • Raspberry Pi Pico as Picoprobe / debugprobe — flash a $4 Pico with the official debugprobe firmware (formerly picoprobe) and it's a CMSIS-DAP-compatible SWD probe that talks to OpenOCD, probe-rs, and pyOCD. Picoprobe is the entry-level debug probe in 2026 — open firmware, free if you have a spare Pico.
  • DAPLink boards (any of dozens of mbed / Nordic / NXP eval boards) — many dev kits ship with onboard DAPLink that exposes both an SWD probe and a UART. Reflashable as a generic CMSIS-DAP probe.
  • WCH-LinkE — $4 USB stick that flashes CH32V (RISC-V) and STM32; semi-open, increasingly popular.

Open-source debug probes

  • Black Magic Probe v2.x — purpose-built open-source GDB-server-on-the-probe (no OpenOCD layer needed). Connect with gdb, type target extended-remote /dev/ttyACM0, and you're debugging. Supports SWD/JTAG, SWO trace. Kit ~$60 from 1bitsquared, or roll your own from STM32 BluePill. The hacker's favorite.
  • Black Pill / BluePill + BMP firmware — flash any STM32F103/F401 board with Black Magic firmware for a DIY probe.
  • Glasgow Interface Explorer — see Logic Analyzers; also functions as JTAG/SWD probe.
  • Cynthion — primarily USB protocol work but supports SWD on some applets.
  • esp-prog (Espressif) — open-hardware FT2232H-based JTAG probe for ESP32; OpenOCD / probe-rs friendly.
  • FT2232H breakout boards (FTDI generic, Tigard, esp-prog) — the FT2232H IC is the canonical "make any USB-JTAG probe" chip, supported by OpenOCD universally. Tigard is the Stargirl-Flowers-designed pen-test variant with isolation and selectable IO voltage.

Vendor / commercial probes

  • Segger J-Link EDU / EDU Mini — Segger's massively-supported probe at education prices. EDU Mini ~$20 / EDU ~$60. Non-commercial-only license — you cannot legally use them for paid work, but for hobby / learning they're unbeatable. Works with Segger's GDB server, Ozone debugger, RTT (Real-Time Transfer) for printf-style trace, and is supported by every MCU IDE.
  • Segger J-Link BASE / PLUS / PRO / Ultra+ — commercial J-Link variants ($400 → $1500+). Same chip family but with commercial-use license, more targets, faster speeds. The right answer if you're a contractor.
  • ST-Link V2 / V2-1 / V3 — STMicro's official probe; bundled with every Nucleo / Discovery board. V2 clones are $3 on Amazon. Works with OpenOCD, ST-LINK GDB Server, and STM32CubeProgrammer. STM32-only officially; OpenOCD lets it speak generic SWD.
  • Lauterbach TRACE32 — pro-tier ($3k+); the right answer for trace debugging on Cortex-A.
  • PEmicro Multilink — old NXP / Freescale workhorse; alive in industrial.
  • Cypress / Infineon MiniProg — for PSoC.
  • NXP MCU-Link / MCU-Link Pro — NXP's modern CMSIS-DAP probe, ~$15.
  • Atmel-ICE (Microchip) — for AVR / SAM debugging; expensive (~$200) but the only sane AVR debugger in 2026.

Discovery / pen-test probes

  • JTAGulator (Joe Grand) — finds unknown JTAG and UART pinouts on mystery PCBs by brute-force. The reverse-engineering classic. Open hardware.
  • Tigard — isolation-aware UART/JTAG/SPI probe; FT2232H-based; great for security work.
  • Bus Pirate v3 / v4 / v5 / Ultra — multi-protocol bridge (SPI, I2C, UART, 1-Wire, JTAG-via-OpenOCD); the eternal "small black SOIC8 thing" on every hardware hacker's bench. v5 / Ultra is the actively-developed 2025–26 line, fully open-source.
  • HydraBus — STM32-based open-hardware multi-protocol probe; similar to Bus Pirate.

Host software

  • probe-rs — modern Rust-driven debug stack; replaces OpenOCD for most workflows. Built-in flashing, RTT, defmt log decoding, and target support for STM32 / nRF / RP2040 / ESP32 / ESP32-C / RISC-V Microsemi etc. Apache-2/MIT. The 2026 default for embedded Rust and increasingly for C if your target is supported.
  • OpenOCD — the venerable C-language debug server; supports basically every probe ever made. GPL. Slower-moving than probe-rs but the universal fallback.
  • pyOCD — Python-based, ARM Cortex-M focused; CMSIS-DAP / DAPLink native. Apache-2.
  • Segger J-Link GDB Server / Ozone — closed but excellent; bundled with J-Link.
  • STM32CubeProgrammer / STM32CubeIDE — STMicro's IDE; closed but free.
  • Renode — full-system MCU emulator (not strictly a debug probe but it speaks GDB and replaces a probe in CI). FOSS.

License / pricing notes

  • J-Link EDU / EDU Mini are explicitly non-commercial only — using them at a paying job is a license violation. The hobby loophole is real and Segger is non-aggressive about hobbyists, but plan around it for any commercial project.
  • probe-rs / OpenOCD / pyOCD / Black Magic are FOSS end-to-end.
  • CMSIS-DAP is an open ARM-defined standard; any CMSIS-DAP probe works with any CMSIS-DAP host (probe-rs, OpenOCD, pyOCD, vendor IDEs).
  • ST-Link V2 clones are gray-market — they violate STMicro firmware licensing, but they work and STMicro tolerates them.
  • Atmel-ICE is closed and Microchip controls AVR debugging tightly; for new AVR designs, consider migrating to ARM/RISC-V where the debug ecosystem is open.

Pick this if…

  • First debug probe, free: Raspberry Pi Pico flashed as debugprobe.
  • Cheap commercial probe for STM32: ST-Link V2 clone or genuine V3.
  • Fully open-source GDB-server-on-the-probe: Black Magic Probe v2.
  • Pro tier, hobby-priced, non-commercial: J-Link EDU / EDU Mini.
  • Pro tier, commercial license: J-Link BASE / PLUS.
  • Reverse-engineering an unknown board: JTAGulator + Bus Pirate.
  • Default modern host stack: probe-rs (with OpenOCD as fallback).
  • Debugging an AVR: Atmel-ICE; there's no good FOSS alternative.
  • Debugging an ESP32: built-in USB-JTAG (ESP32-S3 / C3 / C6) or esp-prog with OpenOCD/probe-rs.

On this page