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, typetarget 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.