NodeLoop

Interactive JTAG & SWD Wiring Guide

Select your target connector and debugger for an instant, error-free wiring diagram.

Common Use Cases & Examples

This tool is designed to save you time and prevent hardware damage by providing clear, correct wiring diagrams for microcontroller debugging. Here are a few ways you can use it:

How to connect an ST-Link to an STM32 board

This is a classic scenario. If your STM32 board has a 10-pin Cortex Debug connector and you have a Nucleo board acting as an ST-Link/V2 programmer, simply select "ARM 10-pin Cortex Debug" as the target and "ST-Link/V2" as the debugger. The tool will generate the exact wiring table. Use the "Minimal SWD" filter to see the 4 essential wires you need to connect: SWDIO, SWCLK, GND, and VTref.

Finding a JTAG pinout for a generic ARM board

Have a board with a 20-pin connector and a Segger J-Link debugger? Select "ARM 20-pin Standard JTAG" as the target and "Segger J-Link (20-pin)" as the debugger. The tool will show you the full JTAG pinout and wiring, including signals like TDI, TDO, TMS, TCK, and nRESET.

Using a Raspberry Pi Pico as a debugger

The Raspberry Pi Pico has become a popular, low-cost SWD probe thanks to the Picoprobe firmware. To find out how to connect it, select your target connector (e.g., "MIPI-10") and choose "Raspberry Pi Pico (Picoprobe)" as the debugger. The table will map the target pins to the correct GPIO pins on the Pico (like GP2 for SWCLK and GP3 for SWDIO).

Signal Descriptions

JTAG vs. SWD

JTAG (Joint Test Action Group) is an older, more complex standard using 4-5 signal lines (TMS, TCK, TDI, TDO, nTRST). SWD (Serial Wire Debug) is a newer, 2-pin alternative from ARM (SWDIO, SWCLK) that is often multiplexed on the same pins. Most modern debug probes support both.

⚠️ Voltage Level Warning (VTref)

The VTref (Voltage Target Reference) pin is critical. It connects to the target's VDD (e.g., 3.3V). The debugger measures this voltage and adjusts its internal logic levels to match. Failing to connect VTref can lead to unreliable communication or, in the worst case, damage to the target or the debugger.