ARM 20-Pin JTAG (legacy, 2×10, 2.54 mm)
The original ARM Multi-ICE header. Bulky, still common on older devkits and industrial gear.
| Pin | Name | Pin | Name |
| 1 | VTref | 2 | VSupply (or nc) |
| 3 | nTRST | 4 | GND |
| 5 | TDI | 6 | GND |
| 7 | TMS / SWDIO | 8 | GND |
| 9 | TCK / SWCLK | 10 | GND |
| 11 | RTCK | 12 | GND |
| 13 | TDO / SWO | 14 | GND |
| 15 | nRESET | 16 | GND |
| 17 | nc / DBGRQ | 18 | GND |
| 19 | nc / DBGACK | 20 | GND |
ARM Cortex 10-Pin (2×5, 1.27 mm)
The modern default on Cortex-M boards. Half the pins are GND for return-path quality at high SWD/JTAG speeds. Pin 7 is keyed.
ARM Cortex 20-Pin with Trace (MIPI-20, 2×10, 1.27 mm)
Adds the 4-bit parallel trace bus (TRACECLK + TRACEDATA[0:3]) plus reserved signals for ETM streaming. The first ten pins are identical to the Cortex 10-pin, so a 10-pin probe plugs into the same header without trace.
| Pin | Name | Pin | Name |
| 1 | VTref | 2 | SWDIO / TMS |
| 3 | GND | 4 | SWCLK / TCK |
| 5 | GND | 6 | SWO / TDO |
| 7 | KEY (no pin) | 8 | TDI |
| 9 | GND | 10 | nRESET |
| 11 | GND | 12 | TRACECLK |
| 13 | GND | 14 | TRACEDATA[0] |
| 15 | GND | 16 | TRACEDATA[1] |
| 17 | GND | 18 | TRACEDATA[2] |
| 19 | GND | 20 | TRACEDATA[3] |
MIPS EJTAG 14-Pin (2×7, 2.54 mm)
Lives on consumer routers, set-top boxes, and older MIPS-based embedded gear. Pulling EJTAG from an Atheros or Broadcom WiSoC is a standard router-hacking move.
| Pin | Name | Pin | Name |
| 1 | nTRST | 2 | GND |
| 3 | TDI | 4 | GND |
| 5 | TDO | 6 | GND |
| 7 | TMS | 8 | GND |
| 9 | TCK | 10 | GND |
| 11 | nSRST | 12 | nc / KEY |
| 13 | DINT | 14 | VIO |
Xilinx 14-Pin JTAG (2×7, 2.0 mm)
Platform Cable / Platform USB. The same physical connector appears on most pre-Vivado FPGA devboards.
| Pin | Name | Pin | Name |
| 1 | VREF | 2 | TMS |
| 3 | GND | 4 | TCK |
| 5 | GND | 6 | TDO |
| 7 | nc | 8 | TDI |
| 9 | GND | 10 | nc |
| 11 | GND | 12 | nc |
| 13 | GND | 14 | nc |
Altera USB Blaster 10-Pin (2×5, 2.54 mm)
Now Intel FPGA. Different from ARM 10-pin (this is at 2.54 mm pitch, ARM is 1.27 mm; not interchangeable).
| Pin | Name | Pin | Name |
| 1 | TCK | 2 | GND |
| 3 | TDO | 4 | VCC |
| 5 | TMS | 6 | nc |
| 7 | nc | 8 | nc |
| 9 | TDI | 10 | GND |
TI 14-Pin (2×7, 2.54 mm), XDS / MSP-FET
Texas Instruments' debug header. Used on MSP430, C2000, and many TI devkits. Includes both JTAG and SBW (Spy-Bi-Wire) modes on MSP430.
| Pin | Name | Pin | Name |
| 1 | TMS / SBWTDIO | 2 | VCC |
| 3 | TCK / SBWTCK | 4 | nc |
| 5 | TDI / TCLK | 6 | nc |
| 7 | TDO | 8 | TEST |
| 9 | GND | 10 | nc |
| 11 | nRST | 12 | nc |
| 13 | nc | 14 | nc |
Tag-Connect TC2030 / TC2050 (PCB footprint, no header)
A footprint, not a connector. Three larger holes accept retention legs that grip the PCB; six (TC2030) or ten (TC2050) smaller pads contact pogo pins. Saves the cost and board space of a physical header on production boards.
TC2030-IDC-NL (6-pin, no legs variant)
| Pin | Default Use (NL = no-leg, IDC = 6-pin SOIC-cable) |
| 1 | VCC (Vref) |
| 2 | TMS / SWDIO |
| 3 | nRESET |
| 4 | TCK / SWCLK |
| 5 | GND |
| 6 | TDO / SWO |
TC2050-IDC-NL adds TDI, TRST, and two more GND/aux pins for full ARM 10-pin compatibility via the TC2050-ARM2010 adapter.
FTDI 6-Pin Serial (1×6, 2.54 mm)
SparkFun and Adafruit popularized this as the "TTL serial header." Watch the order; clones and variants exist.
| Pin | Standard FTDI | Common variant |
| 1 | GND | DTR |
| 2 | CTS | RX |
| 3 | VCC | TX |
| 4 | TX | VCC |
| 5 | RX | CTS |
| 6 | RTS / DTR | GND |
Always check the silkscreen. The pinout convention is not universal. A multimeter on the GND pad to the can shield is the fastest verification.
What VTref Is For
The Vref / VTref pin is the I/O voltage reference. The probe samples this pin and sets its output drivers to the same level. This is how a single SWD probe works on 1.8 V, 2.5 V, 3.0 V, 3.3 V, or 5 V targets. Wiring VTref to a regulated rail is correct; wiring it to ground or leaving it open will produce mysterious "target not found" errors.
The keying convention
ARM 10-pin and 20-pin Cortex both omit pin 7 from the cable side, and the corresponding socket has a key (a plastic bump in the shroud) where pin 7 would be. The keying makes it physically impossible to plug the cable in backwards. Older 2×10 headers usually have no keying; the red stripe on a ribbon cable marks pin 1, which is your only guarantee.