0x02 - Configuration Report
ο»Ώ
The first byte after the Report ID of these commands represents a sub-command to tell the gamepad which configuration data it would like to retrieve or what command to apply. Additional bytes represent parameters related to the command. See the table and information below.
Sub-Command ID (Byte 1) | Meaning |
0x00 | Reset or save settings |
0x01 | Retrieve all settings |
0x02 | Initiate or finalize analog calibration process |
0x03 | Retrieve trigger sensitivity data |
0x04 | Retrieve trigger mode data |
0x05 | Retrieve button remap data |
0x06 | Initiate or cancel digital button remap |
Parameter byte (Byte 2) | Meaning | Notes |
0x00 | Reset all configuration options to default | Should not save at this point. |
0x01 | Save all configuration options to storage. | Save all settings |
The device (Gamepad) will reply with a number of 0x02 ID Input reports. Each will have its own sub-command ID that will contain the relevant configuration data.
This command requests that the controller either initiate or finalize an analog stick calibration process.
This allows for each axis to be calibrated individually.
Parameter byte (Byte 2) | Meaning | Notes |
0x00 | Initiate calibration mode. | This should toggle an internal calibration process in the joypad itself. |
0x01 | Finalize calibration mode. | This will tell the joypad to take the current data in its calibration cycle and save it. |
0x02 | Cancel calibration mode. | This will tell the joypad to cancel the calibration mode. Analog calibration reverts to original data. |
Parameter byte (Byte 3) | Meaning | Notes |
0x00 | Left stick, X and Y axis | Joypad should handle min, max, center values. |
0x01 | Right stick, X and Y axis | ο»Ώ |
0x02 | Analog triggers, Left and Right trigger | ο»Ώ |
This command requests the sensitivity values for the triggers. No additional parameter is needed. See the input description for the response format.
This command requests the sensitivity values for the triggers. The parameter byte is a mode bank symbol. There are several pre-defined modes which would help to define trigger modes for a few use-case scenarios that are common with USB Gamepads. See this link for more information.
This allows for trigger modes to be customized for different USB Gamepad modes.
Parameter byte (Byte 2) | Meaning | Notes |
0x00 - 0xFF | Mode bank | Implementation of different mode banks can be customized. |
No parameter data required.
Parameter byte (Byte 1) | Meaning | Notes |
0x00 | Initiate remap | ο»Ώ |
0x01 | Cancel remap | ο»Ώ |
Send a byte value of 0 through 15 to map one of the following buttons.
Value | Button to remap | Notes |
0 | D-Pad Up | ο»Ώ |
1 | D-Pad Down | ο»Ώ |
2 | D-Pad Left | ο»Ώ |
3 | D-Pad Right | ο»Ώ |
4 | Button Up | Nintendo "X" |
5 | Button Down | Nintendo "B" |
6 | Button Left | Nintendo "Y" |
7 | Button Right | Nintendo "A" |
8 | Trigger L | ο»Ώ |
9 | Trigger ZL | ο»Ώ |
10 | Trigger R | ο»Ώ |
11 | Trigger ZR | ο»Ώ |
12 | Button Start | ο»Ώ |
13 | Button Select | ο»Ώ |
14 | Button Stick Left | ο»Ώ |
15 | Button Stick Right | ο»Ώ |
ο»Ώ
