@@ -75,7 +75,7 @@ const u8 USB_ConfigDescriptor[] = {
7575 0x00 , // bCountryCode
7676 0x01 , // bNumDescriptors
7777 0x22 , // bDescriptorType
78- 0xD3 , 0x01 , // DescriptorLength
78+ 0xE1 , 0x01 , // DescriptorLength
7979
8080 // Endpoint 1: Control Surface Send
8181 0x07 , // bLength
@@ -113,6 +113,7 @@ const u8 hidDescriptor[] = {
113113 0x75 , 0x08 , // Report Size (8)
114114 0x95 , 0x04 , // Report Count (4)
115115 0x81 , 0x02 , // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
116+
116117 0x09 , 0x39 , // Usage (Hat switch)
117118 0x15 , 0x00 , // Logical Minimum (0)
118119 0x25 , 0x07 , // Logical Maximum (7)
@@ -122,6 +123,7 @@ const u8 hidDescriptor[] = {
122123 0x75 , 0x04 , // Report Size (4)
123124 0x95 , 0x01 , // Report Count (1)
124125 0x81 , 0x42 , // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,Null State)
126+
125127 0x65 , 0x00 , // Unit (None)
126128 0x05 , 0x09 , // Usage Page (Button)
127129 0x19 , 0x01 , // Usage Minimum (0x01)
@@ -131,13 +133,13 @@ const u8 hidDescriptor[] = {
131133 0x75 , 0x01 , // Report Size (1)
132134 0x95 , 0x0E , // Report Count (14)
133135 0x81 , 0x02 , // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
136+
134137 0x06 , 0x00 , 0xFF , // Usage Page (Vendor Defined 0xFF00)
135138 0x09 , 0x20 , // Usage (0x20)
136139 0x75 , 0x06 , // Report Size (6)
137140 0x95 , 0x01 , // Report Count (1)
138- 0x15 , 0x00 , // Logical Minimum (0)
139- 0x25 , 0x7F , // Logical Maximum (127)
140141 0x81 , 0x02 , // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
142+
141143 0x05 , 0x01 , // Usage Page (Generic Desktop Ctrls)
142144 0x09 , 0x33 , // Usage (Rx)
143145 0x09 , 0x34 , // Usage (Ry)
@@ -146,18 +148,22 @@ const u8 hidDescriptor[] = {
146148 0x75 , 0x08 , // Report Size (8)
147149 0x95 , 0x02 , // Report Count (2)
148150 0x81 , 0x02 , // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
151+
149152 0x06 , 0x00 , 0xFF , // Usage Page (Vendor Defined 0xFF00)
150153 0x09 , 0x21 , // Usage (0x21)
151154 0x95 , 0x36 , // Report Count (54)
152155 0x81 , 0x02 , // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
156+
153157 0x85 , 0x05 , // Report ID (5)
154158 0x09 , 0x22 , // Usage (0x22)
155159 0x95 , 0x1F , // Report Count (31)
156160 0x91 , 0x02 , // Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
157- 0x85 , 0x04 , // Report ID (4)
158- 0x09 , 0x23 , // Usage (0x23)
159- 0x95 , 0x24 , // Report Count (36)
161+
162+ 0x85 , 0x03 , // Report ID (3)
163+ 0x0A , 0x21 , 0x27 , // Usage (0x2721)
164+ 0x95 , 0x2F , // Report Count (47)
160165 0xB1 , 0x02 , // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
166+
161167 0x85 , 0x02 , // Report ID (2)
162168 0x09 , 0x24 , // Usage (0x24)
163169 0x95 , 0x24 , // Report Count (36)
@@ -277,47 +283,35 @@ const u8 hidDescriptor[] = {
277283 0x09 , 0x46 , // Usage (0x46)
278284 0x95 , 0x15 , // Report Count (21)
279285 0xB1 , 0x02 , // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
280- 0x85 , 0xF0 , // Report ID (240)
281- 0x09 , 0x47 , // Usage (0x47)
282- 0x95 , 0x3F , // Report Count (63)
283- 0xB1 , 0x02 , // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
284- 0x85 , 0xF1 , // Report ID (241)
285- 0x09 , 0x48 , // Usage (0x48)
286- 0x95 , 0x3F , // Report Count (63)
287- 0xB1 , 0x02 , // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
288- 0x85 , 0xF2 , // Report ID (242)
289- 0x09 , 0x49 , // Usage (0x49)
290- 0x95 , 0x0F , // Report Count (15)
291- 0xB1 , 0x02 , // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
292- 0x85 , 0xA7 , // Report ID (167)
286+ 0x85 , 0xA7 , // Report ID (247)
293287 0x09 , 0x4A , // Usage (0x4A)
294288 0x95 , 0x01 , // Report Count (1)
295289 0xB1 , 0x02 , // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
296- 0x85 , 0xA8 , // Report ID (168 )
290+ 0x85 , 0xA8 , // Report ID (250 )
297291 0x09 , 0x4B , // Usage (0x4B)
298292 0x95 , 0x01 , // Report Count (1)
299293 0xB1 , 0x02 , // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
300- 0x85 , 0xA9 , // Report ID (169 )
294+ 0x85 , 0xA9 , // Report ID (251 )
301295 0x09 , 0x4C , // Usage (0x4C)
302296 0x95 , 0x08 , // Report Count (8)
303297 0xB1 , 0x02 , // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
304- 0x85 , 0xAA , // Report ID (170 )
298+ 0x85 , 0xAA , // Report ID (252 )
305299 0x09 , 0x4E , // Usage (0x4E)
306300 0x95 , 0x01 , // Report Count (1)
307301 0xB1 , 0x02 , // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
308- 0x85 , 0xAB , // Report ID (171 )
302+ 0x85 , 0xAB , // Report ID (253 )
309303 0x09 , 0x4F , // Usage (0x4F)
310304 0x95 , 0x39 , // Report Count (57)
311305 0xB1 , 0x02 , // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
312- 0x85 , 0xAC , // Report ID (172 )
306+ 0x85 , 0xAC , // Report ID (254 )
313307 0x09 , 0x50 , // Usage (0x50)
314308 0x95 , 0x39 , // Report Count (57)
315309 0xB1 , 0x02 , // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
316- 0x85 , 0xAD , // Report ID (173 )
310+ 0x85 , 0xAD , // Report ID (255 )
317311 0x09 , 0x51 , // Usage (0x51)
318312 0x95 , 0x0B , // Report Count (11)
319313 0xB1 , 0x02 , // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
320- 0x85 , 0xAE , // Report ID (174 )
314+ 0x85 , 0xAE , // Report ID (256 )
321315 0x09 , 0x52 , // Usage (0x52)
322316 0x95 , 0x01 , // Report Count (1)
323317 0xB1 , 0x02 , // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
@@ -330,6 +324,27 @@ const u8 hidDescriptor[] = {
330324 0x95 , 0x3F , // Report Count (63)
331325 0xB1 , 0x02 , // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
332326 0xC0 , // End Collection
327+
328+ 0x06 , 0xF0 , 0xFF , // Usage Page (Vendor Defined 0xFFF0)
329+ 0x09 , 0x40 , // Usage (0x40)
330+ 0xA1 , 0x01 , // Collection (Application)
331+ 0x85 , 0xF0 , // Report ID (-16) AUTH F0
332+ 0x09 , 0x47 , // Usage (0x47)
333+ 0x95 , 0x3F , // Report Count (63)
334+ 0xB1 , 0x02 , // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
335+ 0x85 , 0xF1 , // Report ID (-15) AUTH F1
336+ 0x09 , 0x48 , // Usage (0x48)
337+ 0x95 , 0x3F , // Report Count (63)
338+ 0xB1 , 0x02 , // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
339+ 0x85 , 0xF2 , // Report ID (-14) AUTH F2
340+ 0x09 , 0x49 , // Usage (0x49)
341+ 0x95 , 0x0F , // Report Count (15)
342+ 0xB1 , 0x02 , // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
343+ 0x85 , 0xF3 , // Report ID (-13) Auth F3 (Reset)
344+ 0x0A , 0x01 , 0x47 , // Usage (0x4701)
345+ 0x95 , 0x07 , // Report Count (7)
346+ 0xB1 , 0x02 , // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
347+ 0xC0 , // End Collection
333348};
334349
335350const u16 hidDescriptorSize = sizeof (hidDescriptor);
0 commit comments