Switch - Hori Pad
The Switch Hori pad functions similarly to a PS3 controller, with some notable differences.
HID report
The pressure and accelerometer bytes are not included in the report, though the implementation used here disregards that and uses the same report as the PS3 controller.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| buttons | hat | left_joy_x |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| left_joy_y | right_joy_x | right_joy_y | vendor-defined|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Buttons
Some buttons appear swapped around relative to their PS3 counterparts, but the bits used are exactly the same in terms of physical position. The Capture button is also added to these bits.
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| y | b | a | x |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| l | r | zl | zr |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| minus | plus | left_stick_in | right_stick_in|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| home | capture |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
VIDs and PIDs
Note that it is a requirement to use the following VID and PID for the Switch to detect your controller:
VID | PID |
---|---|
0x0F0D | 0x0092 |