Skip to content
SPECIFICTION
Get listed

Black Magic Debug vs pyOCD

Black Magic Debug

black-magic.org

pyOCD

pyocd.io

Side by side

FigureBlack Magic DebugpyOCD
Price fromFreeFree
Free planYesYes
Free trial——
Open source——
WindowsYesYes
macOSYesYes
LinuxYesYes
API—Yes
Self-hosted—Yes
Plans published11
Spec score · Debuggers8.7 (#1)8.6 (#3)
GDB serverBlack Magic Debug firmware implements a GDB server that supports automatic target detection and does not require target-specific configuration scripts.Its GDB server supports debugging from the command line or an IDE.
PurposeBlack Magic Debug is a mostly plug-and-play JTAG/SWD debugger for embedded microcontrollers.pyOCD is a Python based tool and API for debugging, programming, and exploring Arm Cortex microcontrollers.
SupportThe project documentation points users to a Discord channel and mailing list, and the home page invites users to contact the project with questions or suggestions.The project directs users to GitHub issues and discussions, a public Slack workspace, and a Google Groups mailing list.

Plans

Black Magic Debug

  • Black Magic Debug softwareFree

Black Magic Debug pricing →

pyOCD

  • pyOCDFree

pyOCD pricing →

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.

Visit black-magic.org

pyOCD

pyOCD is a Python tool and API for debugging, programming, and exploring Arm Cortex microcontrollers. Its GDB server supports command-line debugging and IDE workflows, including Arm CMSIS Debugger, Cortex-Debug, and Eclipse Embedded CDT. It can program firmware and data images into internal or external flash, or load images into RAM. The Python API controls target devices and can support CI setups and custom test or debug tools. More than 70 common Arm Cortex-M devices have built-in support, with CMSIS Device Family Packs available for additional devices. Features include semihosting, SWV, and CMSIS-Pack support. Built-in probe plug-ins include CMSIS-DAP, Raspberry Pi Picoprobe, SEGGER J-Link, STLink, and pyOCD remote; PE Micro Cyclone and Multilink require a separate plug-in. A server and client can share probes over TCP/IP. pyOCD requires Python 3.9 or later and runs on macOS, Linux, FreeBSD, and Windows. It is free, with code licensed under Apache 2.0. Unlocking a supported locked device can require a mass erase, which erases its data.

Visit pyocd.io