]>
Commit | Line | Data |
---|---|---|
68412e74 UH |
1 | ------------------------------------------------------------------------------- |
2 | USB HID (full-speed signalling) | |
3 | ------------------------------------------------------------------------------- | |
4 | ||
5 | This is a set of example captures of USB/HID communication of the | |
6 | Logitech RX250 optical USB mouse. | |
7 | ||
8 | Details: | |
9 | http://www.logitech.com/en-za/support/mice/3141 | |
10 | ||
11 | ||
12 | HID dump | |
13 | -------- | |
14 | ||
15 | For a HOWTO, see: | |
16 | http://lists.en.qi-hardware.com/pipermail/discussion/2011-November/009206.html | |
17 | ||
18 | Usage Page (Desktop), ; Generic desktop controls (01h) | |
19 | Usage (Mouse), ; Mouse (02h, application collection) | |
20 | Collection (Application), | |
21 | Usage (Pointer), ; Pointer (01h, physical collection) | |
22 | Collection (Physical), | |
23 | Usage Page (Button), ; Button (09h) | |
24 | Usage Minimum (01h), | |
25 | Usage Maximum (08h), | |
26 | Logical Minimum (0), | |
27 | Logical Maximum (1), | |
28 | Report Count (8), | |
29 | Report Size (1), | |
30 | Input (Variable), | |
31 | Report Count (0), | |
32 | Input (Constant, Variable), | |
33 | Usage Page (Desktop), ; Generic desktop controls (01h) | |
34 | Usage (X), ; X (30h, dynamic value) | |
35 | Usage (Y), ; Y (31h, dynamic value) | |
36 | Usage (Wheel), ; Wheel (38h, dynamic value) | |
37 | Logical Minimum (-127), | |
38 | Logical Maximum (127), | |
39 | Report Size (8), | |
40 | Report Count (3), | |
41 | Input (Variable, Relative), | |
42 | Usage Page (Consumer), ; Consumer (0Ch) | |
43 | Usage (AC Pan), ; AC pan (0238h, linear control) | |
44 | Report Count (1), | |
45 | Input (Variable, Relative), | |
46 | End Collection, | |
47 | End Collection | |
48 | ||
49 | ||
50 | lsusb -v | |
51 | -------- | |
52 | ||
53 | Bus 003 Device 092: ID 046d:c050 Logitech, Inc. RX 250 Optical Mouse | |
54 | Device Descriptor: | |
55 | bLength 18 | |
56 | bDescriptorType 1 | |
57 | bcdUSB 2.00 | |
58 | bDeviceClass 0 (Defined at Interface level) | |
59 | bDeviceSubClass 0 | |
60 | bDeviceProtocol 0 | |
61 | bMaxPacketSize0 8 | |
62 | idVendor 0x046d Logitech, Inc. | |
63 | idProduct 0xc050 RX 250 Optical Mouse | |
64 | bcdDevice 27.20 | |
65 | iManufacturer 1 Logitech | |
66 | iProduct 2 USB-PS/2 Optical Mouse | |
67 | iSerial 0 | |
68 | bNumConfigurations 1 | |
69 | Configuration Descriptor: | |
70 | bLength 9 | |
71 | bDescriptorType 2 | |
72 | wTotalLength 34 | |
73 | bNumInterfaces 1 | |
74 | bConfigurationValue 1 | |
75 | iConfiguration 0 | |
76 | bmAttributes 0xa0 | |
77 | (Bus Powered) | |
78 | Remote Wakeup | |
79 | MaxPower 98mA | |
80 | Interface Descriptor: | |
81 | bLength 9 | |
82 | bDescriptorType 4 | |
83 | bInterfaceNumber 0 | |
84 | bAlternateSetting 0 | |
85 | bNumEndpoints 1 | |
86 | bInterfaceClass 3 Human Interface Device | |
87 | bInterfaceSubClass 1 Boot Interface Subclass | |
88 | bInterfaceProtocol 2 Mouse | |
89 | iInterface 0 | |
90 | HID Device Descriptor: | |
91 | bLength 9 | |
92 | bDescriptorType 33 | |
93 | bcdHID 1.10 | |
94 | bCountryCode 0 Not supported | |
95 | bNumDescriptors 1 | |
96 | bDescriptorType 34 Report | |
97 | wDescriptorLength 59 | |
98 | Report Descriptor: (length is 59) | |
99 | Item(Global): Usage Page, data= [ 0x01 ] 1 | |
100 | Generic Desktop Controls | |
101 | Item(Local ): Usage, data= [ 0x02 ] 2 | |
102 | Mouse | |
103 | Item(Main ): Collection, data= [ 0x01 ] 1 | |
104 | Application | |
105 | Item(Local ): Usage, data= [ 0x01 ] 1 | |
106 | Pointer | |
107 | Item(Main ): Collection, data= [ 0x00 ] 0 | |
108 | Physical | |
109 | Item(Global): Usage Page, data= [ 0x09 ] 9 | |
110 | Buttons | |
111 | Item(Local ): Usage Minimum, data= [ 0x01 ] 1 | |
112 | Button 1 (Primary) | |
113 | Item(Local ): Usage Maximum, data= [ 0x08 ] 8 | |
114 | (null) | |
115 | Item(Global): Logical Minimum, data= [ 0x00 ] 0 | |
116 | Item(Global): Logical Maximum, data= [ 0x01 ] 1 | |
117 | Item(Global): Report Count, data= [ 0x08 ] 8 | |
118 | Item(Global): Report Size, data= [ 0x01 ] 1 | |
119 | Item(Main ): Input, data= [ 0x02 ] 2 | |
120 | Data Variable Absolute No_Wrap Linear | |
121 | Preferred_State No_Null_Position Non_Volatile Bitfield | |
122 | Item(Global): Report Count, data= [ 0x00 ] 0 | |
123 | Item(Main ): Input, data= [ 0x03 ] 3 | |
124 | Constant Variable Absolute No_Wrap Linear | |
125 | Preferred_State No_Null_Position Non_Volatile Bitfield | |
126 | Item(Global): Usage Page, data= [ 0x01 ] 1 | |
127 | Generic Desktop Controls | |
128 | Item(Local ): Usage, data= [ 0x30 ] 48 | |
129 | Direction-X | |
130 | Item(Local ): Usage, data= [ 0x31 ] 49 | |
131 | Direction-Y | |
132 | Item(Local ): Usage, data= [ 0x38 ] 56 | |
133 | Wheel | |
134 | Item(Global): Logical Minimum, data= [ 0x81 ] 129 | |
135 | Item(Global): Logical Maximum, data= [ 0x7f ] 127 | |
136 | Item(Global): Report Size, data= [ 0x08 ] 8 | |
137 | Item(Global): Report Count, data= [ 0x03 ] 3 | |
138 | Item(Main ): Input, data= [ 0x06 ] 6 | |
139 | Data Variable Relative No_Wrap Linear | |
140 | Preferred_State No_Null_Position Non_Volatile Bitfield | |
141 | Item(Global): Usage Page, data= [ 0x0c ] 12 | |
142 | Consumer | |
143 | Item(Local ): Usage, data= [ 0x38 0x02 ] 568 | |
144 | AC Pan | |
145 | Item(Global): Report Count, data= [ 0x01 ] 1 | |
146 | Item(Main ): Input, data= [ 0x06 ] 6 | |
147 | Data Variable Relative No_Wrap Linear | |
148 | Preferred_State No_Null_Position Non_Volatile Bitfield | |
149 | Item(Main ): End Collection, data=none | |
150 | Item(Main ): End Collection, data=none | |
151 | Endpoint Descriptor: | |
152 | bLength 7 | |
153 | bDescriptorType 5 | |
154 | bEndpointAddress 0x81 EP 1 IN | |
155 | bmAttributes 3 | |
156 | Transfer Type Interrupt | |
157 | Synch Type None | |
158 | Usage Type Data | |
159 | wMaxPacketSize 0x0005 1x 5 bytes | |
160 | bInterval 10 | |
161 | Device Status: 0x0000 | |
162 | (Bus Powered) | |
163 | ||
164 | ||
165 | Logic analyzer setup | |
166 | -------------------- | |
167 | ||
168 | The logic analyzer used was a ChronoVu LA8 (at various samplerates): | |
169 | ||
170 | Probe RX250 | |
171 | ----------------- | |
172 | 2 (white) DP | |
173 | 5 (brown) DM | |
174 | ||
175 | ||
176 | Data | |
177 | ---- | |
178 | ||
179 | The sigrok command line used was: | |
180 | ||
181 | sigrok-cli -d 0:samplerate=<samplerate> --samples=8388608 \ | |
182 | -p 3='David Prowse',6='Demi Moore' -o <filename> | |
183 | ||
184 | (samplerate and filename vary) | |
185 |