Skip to content
Piotr Esden-Tempski edited this page Dec 16, 2021 · 31 revisions

Build Status Discord Donate Kickstarter

The Black Magic Probe is a modern, in-application debugging tool for embedded microprocessors. It allows you see what is going on 'inside' an application running on an embedded microprocessor while it executes. It is able to control and examine the state of the target microprocessor using a JTAG or Serial Wire Debugging (SWD) port and on-chip debug logic provided by the microprocessor. The probe connects to a host computer using a standard USB interface. The user is able to control exactly what happens using the GNU source level debugging software, GDB.


  • Targets ARM Cortex-M and Cortex-A based microcontrollers.
  • Connects to the target processor using the JTAG or Serial Wire Debug (SWD) interface.
  • Provides full debugging functionality, including: watchpoints, flash memory breakpoints, memory and register examination, flash memory programming, etc.
  • Semihosting / Host IO support as well as Serial Wire Debug TRACESWO support.
  • Interface to the host computer is a standard USB CDC ACM device (virtual serial port), which does not require special drivers on Linux or OS X.
  • Implements the GDB extended remote debugging protocol for seamless integration with the GNU debugger and other GNU development tools.
  • Implements USB DFU class for easy firmware upgrade as updates become available.
  • Works with Windows, Linux and Mac environments.

The Black Magic Probe allows you to:

  • Load your application into the target Flash memory or RAM.
  • Single step through your program.
  • Run your program in real-time and halt on demand.
  • Examine and modify CPU registers and memory.
  • Obtain a call stack backtrace.
  • Set up to 6 hardware assisted breakpoints.
  • Set up to 4 hardware assisted read, write or access watchpoints.
  • Set unlimited software breakpoints when executing your application from RAM.

Supported Targets:

Getting Hardware:

The Black Magic Probe firmware supports a large selection of host hardware. You can find an in depth description of supported Debugger-Hardware on its own wiki page. There is also "native" hardware which you can buy from a few vendors, and it was specifically designed with Black Magic Probe in mind.

The official Black Magic Probe hardware is available from these distributors in alphabetical order:

By buying the official hardware you are supporting the continued development of the Black Magic Probe software. Thank you! :)

Other Hardware to run the BMP debugger:

  • Stlinkv21 and V3 based boards with a PC-hosted variant of the BMP (PROBE_HOST=pc-stlinkv2)

  • Libftdi based based boards boards with a PC-Hosted variant of the BMP (PROBE_HOST=libftdi)

  • StlinkV2 based boards with BMP stlink firmware (PROBE_HOST=stlink ST_BOOTLOADER=1) flashed with stlink-tool to unmodfied board, see

  • StlinkV2 based boards with BMP stlink firmware (PROBE_HOST=stlink) with BMP own bootloader flashed to the board.

  • STM8S Discovery (StlinkV1) and Bluepill board with BMP swlink firmware (PROBE_HOST=swlink)

  • F4 Discovery (STM32F407) with BMP f4discovery firmware (PROBE_HOST=f4discovery)

  • launchpad-icdi with BMP launchpad-icdi firmware (PROBE_HOST=launchpad-icdi)

  • Hydrabus(?) (PROBE_HOST=hydrabus)

  • TM4C(?) (PROBE_HOST=tm4c)

  • BMP firmware dongles, FTDI adapters, CMSIS-DAP, Jlink(slow) and StlinkV2/3 (only STM devices) with blackmagic_hosted (make PROBE_HOST=hosted). Run and develop anything beside the basic JTAG/SWD communication on the PC with debug output and debugging BMP itself on the PC. Command line interaction e.g for flashing ("blackmagic <file.bin>") is provided beside starting the gdb server on the PC ("blackmagic"). For windows you can also compile hosted w/o the need for libusb by restricting it to firmware probes only (make PROBE_HOST=hosted HOSTED_BMP_ONLY=1)


  • If you have questions or suggestions feel free to join us in our chat Discord
  • There is also a mailinglist