How to debug an NRF52840 with an Arduino project and GDB?

Nordic NRF52 based boards (such as the Arduino Nano 33 BLE) are now available out of the box for debugging in vMicro, through an external debugger.

External Debug Interface: SWD

 

A Demo can be seen on  Youtube, and a full walkthrough is on the Arduino Nano33 BLE DebuggingArduino project Hub, where we also create our own Black Magic Debugger from an STM32 Blue Pill.

 

External Debugger Connections

If you don't have a debugger built-in then you can use an External Debugger which supports SWD to attach to your board, as seen in the examples below.

General NOTE - SWD Interface Connections

On Boards - often just specific pins on your board, or may be presented in a 2x5 interface (its small at [0.05"/1.27mm pitch]), shown in the first image on the "Black Magic Pro" debugger

On Debuggers - may be presented in the small 2x5 interface, or in the JTAG layout.

Bear this in mind when finding a debugger, you may need more leads / breakouts to connect them to your targets.....

 

Specific Example Note

Arduino Nano 33 BLE SWD Pads will need to be connected for the debugger as shown below, and in this case the debugger needs a modification to fully support SWD reliably.

Wiring the Arduino Nano33 BLE to Debugger

 

Software Setup

Ensure you have Visual Studio and the vMicro Extension Installed

Open your Sketch and select the Debug > Hardware, and the relevant Debugger you have available, whether it's built in, or External:

SAM Debug Toolbar Settings

Start Debugger

  1. Ensure you have the Debug Configuration selected from the Configuration Manager Window
  2. If you know where you want the first breakpoint in your code, add it now
  3. To start the debugging process, you can either:
    • "Debug > Attach to Process" button if your code has already been uploaded to the SAMD board
    • "Debug > Start Debugging" if your code has not been uploaded
Upload Note  - You will need to set the COM port to the Nano port to Upload, as programming is not available at present for this debugger.

NRF52 Debugging Arduino Nano 33 BLE in vMicro and Visual Studio

Congratulations - you should have the debugger running, and further windows can be opened from the "Debug > Windows" menu once you have started debugging

 

See our GDB Debugging in Brief guide, or our detailed GDB Debugging Tutorial for Arduino to learn more about using the debugging interface.