The Spark Gap Podcast - Episode 17

Direct Download Link

Show Synopsis

Karl and Corey talk about the fascinating topic of In-Circuit Programmers and Debuggers.

OpenOCD Debuggers:

OpenOCD is a fantastic Open Source project. It is a free on-chip debug solution for Arm based targets. It was “was created as part of a Diploma Thesis written at the University of Applied Sciences Augsburg (FH Augsburg).”

Freescale Debuggers:


Freescale uses the OpenSDA protocol which is an “Open Standard Serial and Debug Adapter”. As far as I know, nobody else uses it. I’ve only encountered it on their Arm Cortex parts, but they might use it on others.


Freescale also uses OSBDM. I’ve only seen it used on the older Motorola parts.


There is Partly Open-Source Implementation of OSBDM and a Hardware Implementation of a debugger USBDM. The licensing issues is not their fault, they have to respect the original OSBDM licenses, etc.. Their USBDM implementation works with Arm Cortex parts too.

MSP430 Spy-Bi-Wire Jtag Debuggers:

TI has an MSP430 JTAG debugger but it isn’t a standard debugger.
It is a 2-Wire Spy-Bi-Wire JTAG debugger.

NXP Debuggers:

A popular NXP debugger is the LPC-Link 2. It is a Arm Cortex-
M debugger that can act like various types of debuggers.

Arduino and AVR Debuggers:

There are a whole bunch of different debuggers and programmers for AVR microcontrollers.
My guess is the popularity of Arduino had something to do with it…

ST Micro JTAG/SWD Debuggers:

ST Micro Debuggers are well supported by the community.
Their official ST-Link V2 is pretty good and relatively inexpensive.
Also, their discovery boards come with a builtin ST-Link debugger too.
They can be used with OpenOCD and texanes’s st-link software.

Microchip Debuggers:

Pickit 3

Pretty popular low cost debugger is the PicKit 3. I have both a PicKit 2 and PicKit 3. The only annoying thing was that they stopped supporting PicKit 2’s use with newer Microchip microcontrollers.


The ICD3 is a more advanced debugger than the PicKit 3.

Excellent Documentation from Microchip regarding Programming

ARM “Standardized” CMSIS-DAP Debuggers:

Thankfully Arm is trying to standardize things. The Arm CMSIS-DAP interface is pretty nice.

Other Debuggers:

Regular JTAG Debugger:

Olimex has a bunch of inexpensive JTAG Debuggers.


Segger sells a ton of J-Link Debuggers.

PE Micro

Another big name in commercial debuggers is PE Micro.

Perils of Bootloaders:

Combining 2 files in order to combine bootloader and main program

Linker Files:

Discovering Debugging Interfaces: