1 -------------------------------------------------------------------------------
2 USB HID (full-speed signalling)
3 -------------------------------------------------------------------------------
5 This is a set of example captures of USB/HID communication on the
6 keyboard/mouse combo device Logitech MK220 (the keyboard is named "K220",
7 the mouse is named "M150").
10 http://www.logitech.com/en-za/keyboards/keyboard-mice-combos/8411
17 http://lists.en.qi-hardware.com/pipermail/discussion/2011-November/009206.html
19 Usage Page (Desktop), ; Generic desktop controls (01h)
20 Usage (Mouse), ; Mouse (02h, application collection)
21 Collection (Application),
23 Usage (Pointer), ; Pointer (01h, physical collection)
24 Collection (Physical),
25 Usage Page (Button), ; Button (09h)
33 Usage Page (Desktop), ; Generic desktop controls (01h)
34 Logical Minimum (-2047),
35 Logical Maximum (2047),
38 Usage (X), ; X (30h, dynamic value)
39 Usage (Y), ; Y (31h, dynamic value)
40 Input (Variable, Relative),
41 Logical Minimum (-127),
42 Logical Maximum (127),
45 Usage (Wheel), ; Wheel (38h, dynamic value)
46 Input (Variable, Relative),
47 Usage Page (Consumer), ; Consumer (0Ch)
48 Usage (AC Pan), ; AC pan (0238h, linear control)
50 Input (Variable, Relative),
53 Usage Page (Consumer), ; Consumer (0Ch)
54 Usage (Consumer Control), ; Consumer control (01h, application collection)
55 Collection (Application),
60 Logical Maximum (652),
61 Usage Minimum (Consumer Control), ; Consumer control (01h, application collection)
62 Usage Maximum (AC Send), ; AC send (028Ch, selector)
65 Usage Page (Desktop), ; Generic desktop controls (01h)
66 Usage (Sys Control), ; System control (80h, application collection)
67 Collection (Application),
73 Usage (Sys Sleep), ; System sleep (82h, one-shot control)
74 Usage (Sys Power Down), ; System power down (81h, one-shot control)
75 Usage (Sys Wake Up), ; System wake up (83h, one-shot control)
76 Input (No Preferred, Null State),
78 Input (Constant, Variable),
80 Usage Page (FF00h), ; FF00h, vendor-defined
82 Collection (Application),
87 Logical Maximum (255),
93 Usage Page (FF00h), ; FF00h, vendor-defined
95 Collection (Application),
100 Logical Maximum (255),
106 Usage Page (Desktop), ; Generic desktop controls (01h)
107 Usage (Keyboard), ; Keyboard (06h, application collection)
108 Collection (Application),
109 Usage Page (Keyboard), ; Keyboard/keypad (07h)
110 Usage Minimum (KB Leftcontrol), ; Keyboard left control (E0h, dynamic value)
111 Usage Maximum (KB Right GUI), ; Keyboard right GUI (E7h, dynamic value)
117 Input (Constant, Variable),
119 Usage Page (LED), ; LEDs (08h)
129 Logical Maximum (164),
130 Usage Page (Keyboard), ; Keyboard/keypad (07h)
131 Usage Minimum (None), ; No event (00h, selector)
132 Usage Maximum (KB ExSel), ; Keyboard ExSel (A4h, selector)
137 lsusb -v -d 046d:c52e
138 ---------------------
140 Bus 002 Device 019: ID 046d:c52e Logitech, Inc.
145 bDeviceClass 0 (Defined at Interface level)
149 idVendor 0x046d Logitech, Inc.
152 iManufacturer 1 Logitech
153 iProduct 2 USB Receiver
156 Configuration Descriptor:
161 bConfigurationValue 1
162 iConfiguration 4 RQR23.00_B0005
167 Interface Descriptor:
173 bInterfaceClass 3 Human Interface Device
174 bInterfaceSubClass 1 Boot Interface Subclass
175 bInterfaceProtocol 1 Keyboard
177 HID Device Descriptor:
181 bCountryCode 0 Not supported
183 bDescriptorType 34 Report
190 bEndpointAddress 0x81 EP 1 IN
192 Transfer Type Interrupt
195 wMaxPacketSize 0x0008 1x 8 bytes
197 Interface Descriptor:
203 bInterfaceClass 3 Human Interface Device
204 bInterfaceSubClass 1 Boot Interface Subclass
205 bInterfaceProtocol 2 Mouse
207 HID Device Descriptor:
211 bCountryCode 0 Not supported
213 bDescriptorType 34 Report
214 wDescriptorLength 177
220 bEndpointAddress 0x82 EP 2 IN
222 Transfer Type Interrupt
225 wMaxPacketSize 0x0014 1x 20 bytes
227 Device Status: 0x0000
234 The logic analyzer used was an ARMFLY Mini-Logic (at 24MHz):
245 The sigrok command line used was:
247 sigrok-cli -d 0:samplerate=24mhz --time 1s -o mk220.sr --probes 1,2
249 (the mouse was moved while running this command)