Black Magic Debug vs OpenOCD
Black Magic Debug
black-magic.orgOpenOCD
openocd.orgSide by side
| Figure | Black Magic Debug | OpenOCD |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | Yes | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| Self-hosted | — | Yes |
| Plans published | 1 | 1 |
| Spec score · Debuggers | 8.7 (#1) | 7.8 (#12) |
| Purpose | Black Magic Debug is a mostly plug-and-play JTAG/SWD debugger for embedded microcontrollers. | OpenOCD provides debugging, in-system programming, and boundary-scan testing for embedded target devices using a debug adapter. |
Plans
In their own words
Black Magic Debug
Black Magic Debug is a free JTAG/SWD debugger for embedded microcontrollers, aimed at professional developers who want control over build systems and testing environments. Its firmware includes a GDB server that detects targets automatically, without target-specific configuration scripts. Debugging tools include watchpoints, flash memory breakpoints, memory and register examination, and flash programming. The project describes support for ARM Cortex-M and Cortex-A microcontrollers; its listed target platforms also include RISC-V, and remote debugging is supported. The probe connects as a standard USB CDC ACM virtual serial device, with no special driver needed for this interface on Linux or macOS. The debugger works with Linux, macOS, and Windows. The GDB server also supports semihosting and host I/O, Serial Wire Output, and USB DFU firmware upgrades. Documentation includes guides for PlatformIO and STM32CubeIDE. It can also be compiled as a desktop application and used with BMP, ST-Link, FTDI-MPSSE, SEGGER J-Link, or CMSIS-DAP adapters. Desktop-app programming is a little slower, though BMP development may be faster because firmware upload is unnecessary. Getting started requires a Black Magic Probe and a suitable target toolchain.
OpenOCD
OpenOCD provides debugging, in-system programming, and boundary-scan testing for embedded target devices through a debug adapter. It communicates with targets over JTAG or Serial Wire Debug (SWD), and can run as a server for GDB clients. Users can also interact through Telnet or GDB; its Tcl interface is intended for machine interaction, and configuration files can contain commands using the documented Tcl scripting API. The target list includes ARM, MIPS, RISC-V, Xtensa, ARC, AVR32, and other architectures. Release 0.12.0 notes support for Espressif ESP32, ESP32-S2, ESP32-S3 cores, and Raspberry Pi Pico RP2040, along with Zephyr and a no-RTOS option. OpenOCD supports remote debugging and exception breakpoints. It is free and listed for Linux, macOS, Windows, and self-hosted setups. The project says it is packaged in popular operating-system repositories and provides access to source code; community binaries are marked unofficial. Host configuration may take extra steps: Linux usually needs a udev rule for adapter access, and Windows requires driver configuration for each peripheral.