Testpads: Difference between revisions

From Nintendo Switch Brew
Jump to navigation Jump to search
 
(50 intermediate revisions by 12 users not shown)
Line 17: Line 17:
! Pad # || Name || Type || Levels || Continuity || Frequency || Comment
! Pad # || Name || Type || Levels || Continuity || Frequency || Comment
|-
|-
| 1 || Batt GND? || || || ||
| 1 || Batt GND? || || || || ||
|-
|-
| 2 || Battery pulse? || Pulse train || 0-3.3V || L-5? || ||
| 2 || Battery pulse? || Pulse train || 0-3.3V || L-5? || ||
|-
|-
| 3 || Battery Vdd || || || ||
| 3 || Battery Vdd || || || || ||
|-
|-
| 4 || ?? || Square wave || 0-3.3V || || 329kHz? (undersampled?) || Square wave when screen on, but looks like vias to Speaker R
| 4 || Speaker R + || Square wave || 0-3.3V || || || Speaker Right +
|-
|-
| 5 || ?? || Square wave || 0-3.3V || || 329kHz? (undersampled?) || Square wave when screen on, but looks like vias to Speaker R
| 5 || Speaker R - || Square wave || 0-3.3V || || || Speaker Right -
|-
|-
| 6 || Weak GND? || || || || ||
| 6 || Weak GND? || || || || ||
|-
|-
| 7 || SDA || I2C || 0-1.8V || || ||
| 7 || SDA || I2C || 0-1.8V || || || I2C Port 0
|-
|-
| 8 || SCL || I2C || 0-1.8V  || || ||  
| 8 || SCL || I2C || 0-1.8V  || || || I2C Port 0
|-
|-
| 9 || USB-PWR-WAVE? || Square wave || 0-3.3V || K-4, K-5? || ~11 Hz ||  
| 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, K-5? || ~11 Hz ||  
| 10 || USB-PWR-WAVE? || Square wave || 0-3.3V || K-4 || ~11 Hz || USB CC1
|}
 
=== Cluster B ===
 
{| class=wikitable
! 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 ===
=== 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 [[Fuses#Cache|FUSE_ARM_JTAG_DIS]] on production devices.


{| class=wikitable
{| class=wikitable
! Pad # || Name || Type || Levels || Continuity || Frequency || Comment
! Pad # || Name || Type || Levels || Continuity || Frequency || Comment
|-
|-
| 1 || ?? || || 0-1.8V || || No clue. This is definitely important, we just have no idea how. May need to interface with dock for comms.
| 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 || || ||
|-
|-
| 2 || UART-A RX || || 0-1.8V || || ||
| 5 || JTAG_RTCK || || 0-1.8V || || || Unused for NV_JTAG
|-
|-
| 3 || UART-A TX || || 0-1.8V || || ||
| 6 || UART1_RTS || || 0-1.8V || || || UART-A RTS Flow control
|-
|-
| 4 || ?? || || 0-1.8V || || ||  
| 7 || JTAG_TDO || || 0-1.8V || || ||  
|-
|-
| 5 || ?? || || 0-1.8V || || ||  
| 8 || UART1_CTS || || 0-1.8V || || || UART-A CTS Flow control
|-
|-
| 6 || ?? || || 0-1.8V || || ||  
| 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 ===
 
{| class=wikitable
! Pad # || Name || Type || Levels || Continuity || Frequency || Comment
|-
|-
| 7 || ?? || || 0-1.8V || || ||  
| 1 || GND || || || || ||
|-
|-
| 8 || ?? || || 0-1.8V || || ||  
| 2 || Pwr Rail || || 0v8 || || || CPU Buck
|-
|-
| 9 || ?? || || 0-1.8V || || ||  
| 3 || Pwr Rail || || 1v15 || || || From PMIC
|-
|-
| 10 || ?? || || 0-1.8V || || ||  
| 4 || Speaker L + || || || || || Speaker Left +
|-
|-
| 11 || ?? || || 0-1.8V || || ||  
| 5 || Speaker L - || || || || || Speaker Left -
|}
|}


=== Cluster E ===
=== Cluster E ===


DON'T FUCK WITH CLUSTER E.
{| class=wikitable
! Pad # || Name || Type || Levels || Continuity || Frequency || Comment
|-
| 1 || Vol (+)  || || || || || Button Vol (+)
|-
| 2 || Rail  || || 1v1 || || || From PMIC
|-
| 10 || Reset || || || || ||
|-
| 11 || Power Button || Pushbutton || 4V-0V || || || Active low
|}


=== Cluster G ===


{| class=wikitable
{| class=wikitable
! Pad # || Name || Type || Levels || Continuity || Frequency || Comment
! Pad # || Name || Type || Levels || Continuity || Frequency || Comment
|-
|-
| 10 || Reset || || || ||  
| 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 ===
 
{| class=wikitable
! 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
|}
|}


Line 82: Line 175:
! Pad # || Name || Type || Levels || Continuity || Frequency || Comment
! Pad # || Name || Type || Levels || Continuity || Frequency || Comment
|-
|-
| 1 || GND || || || ||
| 1 || GND || || || || ||
|-
|-
| 2 || Screen_on || On/Off || 0-1.8V || || || Screen power state, active high
| 2 || Screen_on || On/Off || 0-1.8V || || || Screen power state, active high
|-
|-
| 3 || || UART || 0-1.8V || || 1.5MBaud? || needs testing with screen plugged in. Sends string ‘Nintendo Switch’ + some stuff. long string of 00
| 3 || || UART || 0-1.8V || || 1.5MBaud? || Communication CPU -> Bluetooth using HCI
|-
|-
| 4 || || UART || 0-1.8V || || 1.5MBaud? || needs testing with screen plugged in. some kind of call/response for pad I-3
| 4 || || UART || 0-1.8V || || 1.5MBaud? || Communication Bluetooth -> CPU using HCI
|-
|-
| 5 || || Flow control || 0-1.8V || || || Flow control for pad I-4?
| 5 || || Flow control || 0-1.8V || || || Flow control for pad I-4?
Line 102: Line 195:
| 1 || ? || Edge || 0-1.8V || || || Turns on around same time as pad J-3
| 1 || ? || Edge || 0-1.8V || || || Turns on around same time as pad J-3
|-
|-
| 2 || GND || || || ||
| 2 || GND || || || || ||
|-
|-
| 3 || ? || Edge || 0-1.8V || || || Turns on around same time as pad J-1, slightly after
| 3 || ? || Edge || 0-1.8V || || || Turns on around same time as pad J-1, slightly after
Line 122: Line 215:
! Pad # || Name || Type || Levels || Continuity || Frequency || Comment
! Pad # || Name || Type || Levels || Continuity || Frequency || Comment
|-
|-
| 1 || GND || || || ||
| 1 || GND || || || || ||
|-
|-
| 2 || Unknown || ?? || 3.3V-0V || None known || N/A? || Falls around same time pad K-7 falls, but immediately. No data observed as of yet.
| 2 || D- || USB-C || || || || Cluster B - 3
|-
|-
| 3 || Unknown || || || || ||
| 3 || D+ || USB-C || || || || Cluster B - 2
|-
|-
| 4 || USB-PWR-WAVE? || Square wave || 0V-3.3V || A-9, A-10? || ~11 Hz ||
| 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, A-10? || ~11 Hz || Appears to mirror K4. Duty cycle 66.67%. Low on screen lock. Off until first interaction.
| 5 || USB-PWR-WAVE? || Square wave || 0V-3.3V || A-9 || ~11 Hz || USB CC1
|-
|-
| 6 || USB-C V+ || Supply power || || || ||
| 6 || USB-C V+ || Supply power || || || || support fast charger : "normal mode = 5V+"  "Fast changer = 12V+"
|-
|-
| 7 || Unknown || 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?
| 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?
|}
|}


Line 153: Line 246:
|-
|-
| 5 || Battery pulse? ||  || || || <1 Hz || Duty cycle ~0%
| 5 || Battery pulse? ||  || || || <1 Hz || Duty cycle ~0%
|-
| 6 || GND || || || || ||
|}
|}

Latest revision as of 11:04, 23 January 2024

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 (+)
2 Rail 1v1 From PMIC
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