Need a Programmer?

Why would you need one?

Here are a few reasons why you would need a SWD programmer:

  • you have built/assembled a nRF52 board using a bare nRF52 chip or a module containing a nRF52 chip which were not previously programmed.
  • you have completed the build of a partially assembled nRF52 board and need to flash the bootloader
  • you have somehow bricked your nRF52 board and need to re-flash the bootloader
  • you want to experiment with new bootloaders

Available Options

NameConnectorSoftwareLicenseComments
Segger J-Link Plus2.54mm 2x10Segger J-LinkSeggerExpensive
Segger J-Link Edu2.54mm 2x10Segger J-LinkSeggerEducational Use Only
Segger J-Link Edu Mini1.27mm 2x5Segger J-LinkSeggerEducational Use Only, only supports 3.3V targets. You will need a cable adapter.
Chinese J-Link CloneVaries depending on versionSegger J-LinkSeggermay generate odd error messages (which can be dismissed), only supports 3.3V targets
Chinese ST-Link V2 Clonenon-standard 2.54 2x5OpenOCDOpen SourceComplex to setup, only supports 3.3V targets
Raspberry Pi40 Pin headerOpenOCDOpen SourceComplex to setup, only supports 3.3V targets
CMSIS-DAPVaries but generally 1.27mm 2x5OpenOCDOpen SourceComplex to setup, only supports 3.3V targets
Blackmagic Probe1.27mm 2x5GDBOpen SourceNo additional software to setup. You will need a cable adapter. Supports 1.7-5V targets.
BluePillnon-standard 2.54GDBOpen SourceCheap but complex to setup, only supports 3.3V targets
nRF52 SWD Programmer and Debugger2.54mm 2x5 and 2.54mm 1x4GDBOpen SourceNo additional software to setup. Supports 1.8-3.3V targets.

Notes on Nordic Semiconductor and Segger

Segger and Nordic have worked together for years and Segger Embedded Studio is used internally by Nordic engineers. This is why Nordic usually recommends Segger's J-Link as the tool of choice for programming the nRF52 chips.

Notes on Adafruit nRF52 Arduino support

The Adafruit nRF52 Arduino board support package uses Segger's J-Link to program the bootloader. If you don't have a j-link, you won't be able to use the integration within the Arduino IDE to flash the bootloader.