The Nintendo Switch mainboard has a series of testpads on the front and back, presumably used in factory test, diagnostics, and early board bringup procedures.
Raw Logic captures
These are reference materials, taken from poking at I/O on various testpads. https://github.com/hedgeberg/Switch-Logic-Captures
Photos
Pinouts
Cluster A
Pad # |
Name |
Type |
Levels |
Continuity |
Frequency |
Comment
|
1 |
Batt GND? |
|
|
|
|
|
2 |
Battery pulse? |
Pulse train |
0-3.3V |
L-5? |
|
|
3 |
Battery Vdd |
|
|
|
|
|
4 |
Speaker R + |
Square wave |
0-3.3V |
|
|
Speaker Right +
|
5 |
Speaker R - |
Square wave |
0-3.3V |
|
|
Speaker Right -
|
6 |
Weak GND? |
|
|
|
|
|
7 |
SDA |
I2C |
0-1.8V |
|
|
I2C Port 0
|
8 |
SCL |
I2C |
0-1.8V |
|
|
I2C Port 0
|
9 |
USB-PWR-WAVE? |
Square wave |
0-3.3V |
K-5 |
~11 Hz |
USB CC2
|
10 |
USB-PWR-WAVE? |
Square wave |
0-3.3V |
K-4 |
~11 Hz |
USB CC1
|
Cluster B
Pad # |
Name |
Type |
Levels |
Continuity |
Frequency |
Comment
|
1 |
|
DBVDD |
|
|
|
from ALC5639 pin 43
|
2 |
D+ |
USB-C |
|
|
|
Cluster B - 3
|
3 |
D- |
USB-C |
|
|
|
Cluster B - 2
|
4 |
+3.3V |
XRST |
|
|
|
from M92T36 pin 4
|
5 |
+3.3V |
VSVR |
|
|
|
to M92T36 pin 6, P13USB, CPU, Light sensor, EMMC (Generated by EN IC)
|
5(b) |
VUSB |
VB |
|
|
|
from USB to M92T36 pin 9
|
6 |
GND |
|
|
|
|
|
Cluster C
The JTAG pins are multiplexed between NV_JTAG and ARM_JTAG by the TRST pin:
- NV_JTAG contains a single TAP (ID 0x221173D7) for boundary scan board verification.
- ARM_JTAG contains two debugging TAPs for CoreSight (ID 0x5BA00477) and BPMP (ID 0x4F1F0F0F).
Note: NV_JTAG and ARM_JTAG are locked out by FUSE_ARM_JTAG_DIS on production devices.
Pad # |
Name |
Type |
Levels |
Continuity |
Frequency |
Comment
|
1 |
JTAG_TDI |
|
0-1.8V |
|
|
|
2 |
UART1_RX |
|
0-1.8V |
|
|
UART-A RX
|
3 |
UART1_TX |
|
0-1.8V |
|
|
UART-A TX
|
4 |
JTAG_TCK |
|
0-1.8V |
|
|
|
5 |
JTAG_RTCK |
|
0-1.8V |
|
|
Unused for NV_JTAG
|
6 |
UART1_RTS |
|
0-1.8V |
|
|
UART-A RTS Flow control
|
7 |
JTAG_TDO |
|
0-1.8V |
|
|
|
8 |
UART1_CTS |
|
0-1.8V |
|
|
UART-A CTS Flow control
|
9 |
JTAG_TMS |
|
0-1.8V |
|
|
|
10 |
JTAG_TRST_N |
|
0-1.8V |
|
|
Not a TAP reset; Multiplexes between NV_JTAG (HI) and ARM_JTAG (LO)
|
11 |
+1.8V |
|
0-1.8V |
|
|
|
Cluster D
Pad # |
Name |
Type |
Levels |
Continuity |
Frequency |
Comment
|
1 |
GND |
|
|
|
|
|
2 |
Pwr Rail |
|
0v8 |
|
|
CPU Buck
|
3 |
Pwr Rail |
|
1v15 |
|
|
From PMIC
|
4 |
Speaker L + |
|
|
|
|
Speaker Left +
|
5 |
Speaker L - |
|
|
|
|
Speaker Left -
|
Cluster E
Pad # |
Name |
Type |
Levels |
Continuity |
Frequency |
Comment
|
1 |
Vol (-) |
|
|
|
|
Button Vol (-)
|
10 |
Reset |
|
|
|
|
|
11 |
Power Button |
Pushbutton |
4V-0V |
|
|
Active low
|
Cluster G
Pad # |
Name |
Type |
Levels |
Continuity |
Frequency |
Comment
|
1 |
SD card detect |
|
|
|
|
|
2 |
GND |
|
|
|
|
|
3 |
Rail |
DC |
0v8 |
|
|
GPU Buck
|
4 |
Vol(+) |
|
|
|
|
Button Vol (+)
|
5 |
Li-Ion Batt Vdd Mirror |
|
|
|
|
Power Supply
|
9 |
BUTTON_HOME |
|
|
|
|
RCM strap
|
Cluster H
Pad # |
Name |
Type |
Levels |
Continuity |
Frequency |
Comment
|
1 |
|
|
|
|
|
|
2 |
|
|
|
|
|
|
3 |
|
|
|
|
|
|
4 |
Screen_on |
On/Off |
0-1.8v |
I-2 |
|
Screen power state, active high
|
5 |
|
Flow control |
0-1.8V |
I-5 |
Flow control for pad I-4? |
|
6 |
|
|
|
|
|
|
7 |
|
UART |
0-1.8V |
I-4 |
1.5MBaud? |
|
8 |
|
UART |
0-1.8V |
I-3 |
1.5MBaud? |
|
9 |
|
|
|
|
|
|
10 |
|
|
5V |
H-12 |
|
Power for JoyCon charge circuit and fan
|
11 |
|
|
|
|
|
Goes to a small ceramic cap near WiFi/BT IC?
|
12 |
|
|
|
H-10 |
|
On the same trace
|
Cluster I
Pad # |
Name |
Type |
Levels |
Continuity |
Frequency |
Comment
|
1 |
GND |
|
|
|
|
|
2 |
Screen_on |
On/Off |
0-1.8V |
|
|
Screen power state, active high
|
3 |
|
UART |
0-1.8V |
|
1.5MBaud? |
Communication CPU -> Bluetooth using HCI
|
4 |
|
UART |
0-1.8V |
|
1.5MBaud? |
Communication Bluetooth -> CPU using HCI
|
5 |
|
Flow control |
0-1.8V |
|
|
Flow control for pad I-4?
|
6 |
|
|
0-1.8V |
|
|
Needs testing with chip/touch screen interface board plugged in
|
Cluster J
Pad # |
Name |
Type |
Levels |
Continuity |
Frequency |
Comment
|
1 |
? |
Edge |
0-1.8V |
|
|
Turns on around same time as pad J-3
|
2 |
GND |
|
|
|
|
|
3 |
? |
Edge |
0-1.8V |
|
|
Turns on around same time as pad J-1, slightly after
|
4 |
Power button |
Pushbutton |
4V-0V |
|
|
Active low
|
5 |
? |
Constant? |
0V |
Ground?-NT |
|
|
6 |
? |
Edge |
0-1.8V |
|
|
Turns on with pad J-6, ~1s after J-1/J-3
|
7 |
? |
Edge |
0-1.8V |
|
|
Turns on with pad J-5, ~1s after J-1/J-3
|
8 |
? |
Edge? |
0-1.8V |
|
|
Turns on ~1s after J-6/J-7, turns off at unknown point
|
Cluster K
Pad # |
Name |
Type |
Levels |
Continuity |
Frequency |
Comment
|
1 |
GND |
|
|
|
|
|
2 |
D- |
USB-C |
|
|
|
Cluster B - 3
|
3 |
D+ |
USB-C |
|
|
|
Cluster B - 2
|
4 |
USB-PWR-WAVE? |
Square wave |
0V-3.3V |
A-10 |
~11 Hz |
USB CC2
|
5 |
USB-PWR-WAVE? |
Square wave |
0V-3.3V |
A-9 |
~11 Hz |
USB CC1
|
6 |
USB-C V+ |
Supply power |
|
|
|
support fast charger : "normal mode = 5V+" "Fast changer = 12V+"
|
7 |
BQ24193 VBUS + M92T36 VEX |
Power supply? |
~3V-0V |
None known |
N/A |
0 when usb-c not plugged in, falls slowly on first interaction if USB-C plugged in. Power draw related?
|
Cluster L
TODO: Update diagram
Pad # |
Name |
Type |
Levels |
Continuity |
Frequency |
Comment
|
1 |
Li-Ion Batt Vdd Mirror |
Power Supply |
Std. Li-Ion |
|
|
|
2 |
GND |
|
|
|
|
|
3 |
Li-Ion Batt Vdd |
Battery Input |
Std. Li-Ion |
|
|
|
4 |
Mirrored Ground? |
|
|
|
|
Holds steady @ 0, looks like a decoupled isolated ground
|
5 |
Battery pulse? |
|
|
|
<1 Hz |
Duty cycle ~0%
|
6 |
GND |
|
|
|
|
|