Nintendo Switch Pro Controller & Joy-Con Tester
In-page browser diagnostics for the Nintendo Switch Pro Controller and Left/Right Joy-Cons. Test Joy-Con and Pro thumbstick drift, Nintendo’s inverted B/A/Y/X physical button layout, digital ZL/ZR switches, and raw HID mappings.
Plug in your controller & press any button, or test using keyboard emulation / auto demo.
Connect Your Switch Pro & Joy-Con to Begin Live Testing
Plug in via USB or pair over Bluetooth, then press any button (such as B / A or Home) to wake the browser Gamepad API and launch the full diagnostic suite on this page.
B0–B3 do not map to the same physical Nintendo buttons across every browser and connection mode. When the browser applies W3C positional mapping, B0 = B (Bottom), B1 = A (Right), B2 = Y (Left), and B3 = X (Top); when an OS HID driver, Bluetooth stack, or XInput wrapper maps by button glyph, B0 = A, B1 = B, B2 = X, and B3 = Y. Standard mode also supports L/R (B4/B5), binary digital ZL/ZR (B6/B7), Minus/Plus (B8/B9), stick clicks, Home (B16), Capture (B17) (when exposed), and Left/Right stick coordinates.mapping: "" (raw HID), where buttons report as raw B0–B17 slots, B6/B7 do not represent ZL/ZR, and D-Pad inputs may be encoded on an axis hat switch. Alps Alpine HD Rumble LRA waveforms, 6-axis gyro/accelerometer motion sensors, NFC amiibo reader, and the Right Joy-Con IR Motion Camera are not exposed by the standard W3C Gamepad API.Switch Pro & Joy-Con Hardware Architecture & Subsystems
Physical sensor technology, switch types, and mechanical engineering details
The Switch Pro Controller uses full-sized ALPS dual-axis potentiometers (USB VID 057e, PID 2009), whereas Joy-Con (L) (PID 2006) and Joy-Con (R) (PID 2007) use low-profile slide potentiometers whose compact wiper tracks are prone to contact wear and dust intrusion.
Unlike PlayStation L2/R2 and Xbox LT/RT, Nintendo Switch ZL (B6) and ZR (B7) are digital switches with no analog travel sensor. In the browser, they step directly from 0.000 (released) to 1.000 (pressed).
Conductive silicone rubber pads over carbon PCB contacts for A, B, X, Y, Minus (-), Plus (+), Home, Capture, and the Pro Controller D-Pad. Tactile metal dome switches are used for L, R, ZL, ZR, and the Joy-Con rail buttons (SL and SR). The Switch Pro Controller uses a single-piece 4-way cross rocker on a central pivot post, while Joy-Con (L) uses four separate circular directional buttons so it can double as a sideways two-player controller.
Nintendo Switch controllers contain Alps Alpine HD Rumble Linear Resonant Actuators (LRAs). Standard web browsers do not expose HD Rumble frequency synthesis, 6-axis gyro/accelerometer sensors, the NFC amiibo reader, or the Right Joy-Con IR Motion Camera through the W3C Gamepad API.
Recommended Switch Pro & Joy-Con Diagnostic Procedure
Step-by-step verification order to detect intermittent or subtle hardware defects
Flick both thumbsticks in all four cardinal directions and let them snap back to rest on their own. Watch the Axis 0/1 and Axis 2/3 coordinates: if a Joy-Con stick fails to settle near 0.000 and stays above 0.070–0.080, internal slider track wear or dust beneath the rubber skirt is preventing a clean return to center.
Press physical B (bottom), A (right), Y (left), and X (top) while watching B0–B3 in the Button Matrix. Verify whether your browser and connection mode map B0–B3 by physical position (B0=B, B1=A, B2=Y, B3=X) or by printed glyph (B0=A, B1=B, B2=X, B3=Y), then test Minus (B8), Plus (B9), Home (B16), and Capture (B17).
Press and hold ZL (B6) and ZR (B7) while applying light side-to-side finger pressure. Both gauges should snap immediately from 0.000 to 1.000 and hold steady at 100% without rapid drop-outs.
Rock your thumb gently across Left and Right on the Switch Pro Controller D-Pad while watching the D-Pad diagnostic panel and Step 4 Event Monitor to check whether rocking the cross pivot triggers unintended Up (B12) or Down (B13) inputs.
Switch Pro & Joy-Con Button Mapping & Standard Pinout
Standard W3C Gamepad API index assignments for Switch Pro & Joy-Con
| API Index | Switch Pro & Joy-Con Physical Label | Sensor Type |
|---|---|---|
| B0 (South / Index 0) | B (W3C Positional) or A (Glyph / XInput Driver) | Browser / Mode Dependent |
| B1 (East / Index 1) | A (W3C Positional) or B (Glyph / XInput Driver) | Browser / Mode Dependent |
| B2 (West / Index 2) | Y (W3C Positional) or X (Glyph / XInput Driver) | Browser / Mode Dependent |
| B3 (North / Index 3) | X (W3C Positional) or Y (Glyph / XInput Driver) | Browser / Mode Dependent |
| B4 / B5 | L / R Shoulder Bumpers (Standard Mode) | Digital Tactile |
| B6 / B7 | ZL / ZR Digital Triggers (Standard Mode) | Binary Switch (0 or 1) |
| B8 / B9 | Minus (-) / Plus (+) | System Menu |
| B10 / B11 | Left / Right Stick Click | Stick Depress |
| B12 - B15 | D-Pad (Standard) or Hat Axis (Raw HID) | Driver Dependent |
| B16 / B17 | Home / Capture (when exposed) | System Controls |
Common Switch Pro & Joy-Con Hardware Issues & Diagnostics
Symptom analysis and verified testing procedures
How to Connect Switch Pro & Joy-Con to PC or Mac
- 1Switch Pro Controller via USB-C: Plug your Pro Controller into a PC or Mac with a USB-C data cable. If Steam is running in the background, close it or disable Steam Input so the browser receives direct controller telemetry.
- 2Switch Pro Controller via Bluetooth: Unplug the USB-C cable, then press and hold the small round Sync button on the top edge next to the USB-C port until the four green player LEDs on the bottom sweep back and forth.
- 3Joy-Con (L) or Joy-Con (R) via Bluetooth: Detach the Joy-Con from the Switch console or grip, then hold the recessed black Sync button on the inner rail between the SL and SR buttons until the rail LEDs flash in sequence.
- 4Pair & Activate in Browser: Select "Pro Controller", "Joy-Con (L)", or "Joy-Con (R)" in your computer’s Bluetooth menu, then click inside this page and press B or Home to start testing.
On Windows and macOS, when a Nintendo Switch Pro Controller (057e:2009) or Joy-Con (057e:2006 / 2007) enumerates with W3C standard mapping, browsers assign B0–B3 by physical position (Bottom/Right/Left/Top) and report digital ZL/ZR triggers as 0.000 or 1.000; if exposed as raw HID (mapping: ""), raw button indices are shown. The Linux hid-nintendo documentation details USB/Bluetooth HID IDs and packet layouts, while kernel-level IMU and LED controls are not exposed in browser navigator.getGamepads().
Explains positional Bottom/Right/Left/Top button assignment for B0–B3 in web browsers.
Hardware reference for Switch Pro Controller and Joy-Con HID packets (kernel driver capabilities differ from browser Gamepad API on Windows/macOS).
Frequently Asked Questions
Why do B0–B3 map to B/A/Y/X in some browsers or modes, and A/B/X/Y in others?
The W3C Gamepad specification defines B0=Bottom, B1=Right, B2=Left, and B3=Top by physical location (which corresponds to B, A, Y, and X on Nintendo hardware). However, some OS Bluetooth/USB drivers, third-party adapters, and XInput wrappers map buttons by printed glyph (A=B0, B=B1, X=B2, Y=B3) or expose a raw HID report (mapping: ""). Because of this, our button matrix displays both positional (B / A / Y / X) and glyph-mapped (A / B / X / Y) references on B0–B3 and switches to raw index labels whenever a non-standard HID mapping is detected.
Why do ZL and ZR jump straight from 0% to 100% instead of showing gradual pressure?
Nintendo Switch Pro Controllers and Joy-Cons use digital microswitches for ZL and ZR rather than analog potentiometers or Hall Effect sensors. Seeing 0.000 when released and 1.000 when clicked is normal hardware behavior.
Can I test Left and Right Joy-Cons at the same time on PC?
Yes. Pair both Joy-Con (L) and Joy-Con (R) in your computer’s Bluetooth settings. On Windows, they appear as two separate controller slots in the Multi-Controller Bar at the top of the tester so you can inspect each Joy-Con individually; on macOS Ventura (13+) and iPadOS/iOS (16+), the operating system automatically merges a paired Left and Right Joy-Con into a single combined Standard Gamepad.
Why is the Vibration button disabled or not rumbling on my Switch controller?
Switch controllers use Alps Alpine HD Rumble Linear Resonant Actuators (LRAs), which require Nintendo’s proprietary subcommand packet format over HID. Most desktop browser and OS drivers do not translate standard W3C dual-rumble calls into Switch HD Rumble packets unless the controller is routed through an XInput wrapper driver.