Standard USB Descriptors
The following are the descriptors of the game pad used for this implementation.
(HID class REPORT descriptor, returned by Get_Report_Request, is not shown.)
Device Descriptor
Byte |
Field |
Value(HEX) |
0 |
bLength |
12 |
1 |
bDescriptor |
1 |
2 |
bcdUSB0 |
10 |
3 |
bcdUSB1 |
1 |
4 |
bDeviceClass |
0 |
5 |
bDeviceSubClass |
0 |
6 |
bDeviceProtocol |
0 |
7 |
bMaxPacketSize0 |
8 |
8 |
idVendor0 |
95 |
9 |
idVendor1 |
9 |
10 |
idProduct0 |
13 |
11 |
idProduct1 |
0 |
12 |
bcdDevice0 |
88 |
13 |
bcdDevice1 |
2 |
14 |
iManufacturer |
1 |
15 |
iProduct |
2 |
16 |
iSerialNumber |
0 |
17 |
bNumConfigurations |
1 |
Configuration Descriptor
Byte |
Field |
Value(HEX) |
0 |
bLength |
9 |
1 |
bDescriptor |
2 |
2 |
wTotalLength0 |
22 |
3 |
wTotalLength1 |
0 |
4 |
bNumInterface |
1 |
5 |
bConfigurationValue |
1 |
6 |
iConfiguration |
0 |
7 |
bmAttributes |
80 |
8 |
bMaxPower |
32 |
Interface Descriptor
Byte |
Field |
Value(HEX) |
0 |
bLength |
9 |
1 |
bDescriptorType |
4 |
2 |
bInterfaceNumber |
0 |
3 |
bAttributeSetting |
0 |
4 |
bNumEndpoints |
1 |
5 |
bInterfaceClass |
3 |
6 |
bInterfaceSubClass |
0 |
7 |
bInterfaceProtocol |
0 |
8 |
iInterface |
0 |
HID Descriptor
Byte |
Field |
Value(HEX) |
0 |
bLength |
9 |
1 |
bDescriptorType |
21 |
2 |
bcdHID[0] |
10 |
3 |
bcdHID[1] |
1 |
4 |
bCountryCode |
0 |
5 |
bNumDescriptors |
1 |
6 |
bDescriptorType |
22 |
7 |
wDescriptorLength[0] |
40 |
8 |
wDescriptorLength[1] |
0 |
Endpoint Descriptor
Byte |
Field |
Value(HEX) |
0 |
bLength |
7 |
1 |
bDescriptorType |
5 |
2 |
bEndpointAddress |
81 |
3 |
bmAttributes |
3 |
4 |
wMaxPacketSize0 |
4 |
5 |
wMaxPacketSize1 |
0 |
6 |
bInterval |
a |