Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crazy mouse movement with Kensington Expert Mouse #218

Open
rygwdn opened this issue Jan 29, 2025 · 17 comments
Open

Crazy mouse movement with Kensington Expert Mouse #218

rygwdn opened this issue Jan 29, 2025 · 17 comments

Comments

@rygwdn
Copy link
Contributor

rygwdn commented Jan 29, 2025

I'm getting erratic movement & clicking when I try to use my Kensington Expert Mouse (a trackball). It looks like it shows up as two different devices based on the usbhid-dump output. I wonder if that could be part of the issue?

Here are the descriptors:

Mouse

0x05, 0x01,        // Usage Page (Generic Desktop Ctrls)
0x09, 0x02,        // Usage (Mouse)
0xA1, 0x01,        // Collection (Application)
0x85, 0x01,        //   Report ID (1)
0x09, 0x01,        //   Usage (Pointer)
0xA1, 0x00,        //   Collection (Physical)
0x95, 0x05,        //     Report Count (5)
0x75, 0x01,        //     Report Size (1)
0x05, 0x09,        //     Usage Page (Button)
0x19, 0x01,        //     Usage Minimum (0x01)
0x29, 0x05,        //     Usage Maximum (0x05)
0x15, 0x00,        //     Logical Minimum (0)
0x25, 0x01,        //     Logical Maximum (1)
0x81, 0x02,        //     Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x95, 0x01,        //     Report Count (1)
0x75, 0x03,        //     Report Size (3)
0x81, 0x01,        //     Input (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x75, 0x08,        //     Report Size (8)
0x95, 0x01,        //     Report Count (1)
0x05, 0x01,        //     Usage Page (Generic Desktop Ctrls)
0x09, 0x38,        //     Usage (Wheel)
0x15, 0x81,        //     Logical Minimum (-127)
0x25, 0x7F,        //     Logical Maximum (127)
0x81, 0x06,        //     Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position)
0x05, 0x0C,        //     Usage Page (Consumer)
0x0A, 0x38, 0x02,  //     Usage (AC Pan)
0x95, 0x01,        //     Report Count (1)
0x81, 0x06,        //     Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position)
0xC0,              //   End Collection
0x85, 0x02,        //   Report ID (2)
0x09, 0x01,        //   Usage (Consumer Control)
0xA1, 0x00,        //   Collection (Physical)
0x75, 0x0C,        //     Report Size (12)
0x95, 0x02,        //     Report Count (2)
0x05, 0x01,        //     Usage Page (Generic Desktop Ctrls)
0x09, 0x30,        //     Usage (X)
0x09, 0x31,        //     Usage (Y)
0x16, 0x01, 0xF8,  //     Logical Minimum (-2047)
0x26, 0xFF, 0x07,  //     Logical Maximum (2047)
0x81, 0x06,        //     Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position)
0xC0,              //   End Collection
0xC0,              // End Collection
0x05, 0x0C,        // Usage Page (Consumer)
0x09, 0x01,        // Usage (Consumer Control)
0xA1, 0x01,        // Collection (Application)
0x85, 0x03,        //   Report ID (3)
0x15, 0x00,        //   Logical Minimum (0)
0x25, 0x01,        //   Logical Maximum (1)
0x75, 0x01,        //   Report Size (1)
0x95, 0x01,        //   Report Count (1)
0x09, 0xCD,        //   Usage (Play/Pause)
0x81, 0x06,        //   Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position)
0x0A, 0x83, 0x01,  //   Usage (AL Consumer Control Configuration)
0x81, 0x06,        //   Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position)
0x09, 0xB5,        //   Usage (Scan Next Track)
0x81, 0x06,        //   Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position)
0x09, 0xB6,        //   Usage (Scan Previous Track)
0x81, 0x06,        //   Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position)
0x09, 0xEA,        //   Usage (Volume Decrement)
0x81, 0x06,        //   Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position)
0x09, 0xE9,        //   Usage (Volume Increment)
0x81, 0x06,        //   Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position)
0x0A, 0x25, 0x02,  //   Usage (AC Forward)
0x81, 0x06,        //   Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position)
0x0A, 0x24, 0x02,  //   Usage (AC Back)
0x81, 0x06,        //   Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position)
0xC0,              // End Collection

// 136 bytes

Vendor Defined

0x06, 0x0A, 0xFF,  // Usage Page (Vendor Defined 0xFF0A)
0x09, 0x01,        // Usage (0x01)
0xA1, 0x01,        // Collection (Application)
0x09, 0x02,        //   Usage (0x02)
0xA1, 0x00,        //   Collection (Physical)
0x06, 0x00, 0xFF,  //     Usage Page (Vendor Defined 0xFF00)
0x09, 0x03,        //     Usage (0x03)
0x09, 0x04,        //     Usage (0x04)
0x15, 0x80,        //     Logical Minimum (-128)
0x25, 0x7F,        //     Logical Maximum (127)
0x35, 0x00,        //     Physical Minimum (0)
0x46, 0xFF, 0x00,  //     Physical Maximum (255)
0x75, 0x08,        //     Report Size (8)
0x95, 0x20,        //     Report Count (32)
0x81, 0x02,        //     Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x09, 0x05,        //     Usage (0x05)
0x09, 0x06,        //     Usage (0x06)
0x15, 0x80,        //     Logical Minimum (-128)
0x25, 0x7F,        //     Logical Maximum (127)
0x35, 0x00,        //     Physical Minimum (0)
0x46, 0xFF, 0x00,  //     Physical Maximum (255)
0x75, 0x08,        //     Report Size (8)
0x95, 0x20,        //     Report Count (32)
0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0xC0,              //   End Collection
0xC0,              // End Collection

// 54 bytes

Here's the raw data and stream output from me moving the mouse, scrolling, and clicking all four buttons. There also appears to be some kind of heartbeat since something kept reporting periodically even when I stopped using it.

Raw output and stream

001:011:001:DESCRIPTOR         1738155768.843321
 06 0A FF 09 01 A1 01 09 02 A1 00 06 00 FF 09 03
 09 04 15 80 25 7F 35 00 46 FF 00 75 08 95 20 81
 02 09 05 09 06 15 80 25 7F 35 00 46 FF 00 75 08
 95 20 91 02 C0 C0

001:011:000:DESCRIPTOR         1738155768.845438
 05 01 09 02 A1 01 85 01 09 01 A1 00 95 05 75 01
 05 09 19 01 29 05 15 00 25 01 81 02 95 01 75 03
 81 01 75 08 95 01 05 01 09 38 15 81 25 7F 81 06
 05 0C 0A 38 02 95 01 81 06 C0 85 02 09 01 A1 00
 75 0C 95 02 05 01 09 30 09 31 16 01 F8 26 FF 07
 81 06 C0 C0 05 0C 09 01 A1 01 85 03 15 00 25 01
 75 01 95 01 09 CD 81 06 0A 83 01 81 06 09 B5 81
 06 09 B6 81 06 09 EA 81 06 09 E9 81 06 0A 25 02
 81 06 0A 24 02 81 06 C0

001:009:000:STREAM             1738155770.747084
 20 64 8B 00

001:009:000:STREAM             1738155770.819091
 21 9F 08

001:009:000:STREAM             1738155770.891053
 22 09

001:009:000:STREAM             1738155770.971103
 23 79 00 79 00

001:009:000:STREAM             1738155771.043059
 25 12

001:009:000:STREAM             1738155771.115058
 28 00

001:009:000:STREAM             1738155771.187093
 29 00

001:009:000:STREAM             1738155771.251056
 80 02

001:009:000:STREAM             1738155771.331059
 82 2C 01

001:009:000:STREAM             1738155771.403059
 85 00

001:009:000:STREAM             1738155771.475061
 86 FF FF

001:009:000:STREAM             1738155771.555110
 87 FF FF

001:009:000:STREAM             1738155771.627067
 88 78 00

001:011:000:STREAM             1738155773.477123
 02 FC 0F 00

001:011:000:STREAM             1738155773.485108
 02 F6 0F 00

001:011:000:STREAM             1738155773.493129
 02 F5 0F 00

001:011:000:STREAM             1738155773.501129
 02 F4 0F 00

001:011:000:STREAM             1738155773.509112
 02 F2 0F 00

001:011:000:STREAM             1738155773.517113
 02 F2 0F 00

001:011:000:STREAM             1738155773.525147
 02 F0 0F 00

001:011:000:STREAM             1738155773.533145
 02 EF 0F 00

001:011:000:STREAM             1738155773.541150
 02 ED 0F 00

001:011:000:STREAM             1738155773.549153
 02 EC 0F 00

001:011:000:STREAM             1738155773.561155
 02 EC 2F 00

001:011:000:STREAM             1738155773.565146
 02 ED 2F 00

001:011:000:STREAM             1738155773.573149
 02 ED 2F 00

001:011:000:STREAM             1738155773.581112
 02 EF 1F 00

001:011:000:STREAM             1738155773.589149
 02 F1 1F 00

001:011:000:STREAM             1738155773.597122
 02 F2 1F 00

001:011:000:STREAM             1738155773.605159
 02 F4 1F 00

001:011:000:STREAM             1738155773.613113
 02 F5 0F 00

001:011:000:STREAM             1738155773.619148
 02 F6 0F 00

001:011:000:STREAM             1738155773.627146
 02 F7 0F 00

001:011:000:STREAM             1738155773.635113
 02 F8 0F 00

001:011:000:STREAM             1738155773.643122
 02 F9 0F 00

001:011:000:STREAM             1738155773.651116
 02 F9 0F 00

001:011:000:STREAM             1738155773.663152
 02 F9 0F 00

001:011:000:STREAM             1738155773.667145
 02 F9 0F 00

001:011:000:STREAM             1738155773.675125
 02 FA 1F 00

001:011:000:STREAM             1738155773.683122
 02 F9 0F 00

001:011:000:STREAM             1738155773.691113
 02 F9 0F 00

001:011:000:STREAM             1738155773.699116
 02 F9 0F 00

001:011:000:STREAM             1738155773.707108
 02 F9 0F 00

001:011:000:STREAM             1738155773.715114
 02 F9 1F 00

001:011:000:STREAM             1738155773.723110
 02 FA 1F 00

001:011:000:STREAM             1738155773.731148
 02 FC 1F 00

001:011:000:STREAM             1738155773.739178
 02 FD 0F 00

001:011:000:STREAM             1738155773.747164
 02 FE 0F 00

001:011:000:STREAM             1738155774.151164
 02 01 00 00

001:011:000:STREAM             1738155774.159110
 02 05 00 00

001:011:000:STREAM             1738155774.167105
 02 09 00 00

001:011:000:STREAM             1738155774.175143
 02 0B F0 FF

001:011:000:STREAM             1738155774.183141
 02 0F D0 FF

001:011:000:STREAM             1738155774.191139
 02 12 C0 FF

001:011:000:STREAM             1738155774.199123
 02 15 B0 FF

001:011:000:STREAM             1738155774.207124
 02 15 C0 FF

001:011:000:STREAM             1738155774.213111
 02 16 B0 FF

001:011:000:STREAM             1738155774.221110
 02 16 C0 FF

001:011:000:STREAM             1738155774.229176
 02 15 C0 FF

001:011:000:STREAM             1738155774.237125
 02 15 C0 FF

001:011:000:STREAM             1738155774.245123
 02 15 D0 FF

001:011:000:STREAM             1738155774.255115
 02 14 D0 FF

001:011:000:STREAM             1738155774.261111
 02 12 F0 FF

001:011:000:STREAM             1738155774.269110
 02 12 F0 FF

001:011:000:STREAM             1738155774.279153
 02 11 F0 FF

001:011:000:STREAM             1738155774.285112
 02 11 00 00

001:011:000:STREAM             1738155774.293123
 02 0F F0 FF

001:011:000:STREAM             1738155774.301124
 02 0D 00 00

001:011:000:STREAM             1738155774.309127
 02 0E 00 00

001:011:000:STREAM             1738155774.317119
 02 0B F0 FF

001:011:000:STREAM             1738155774.325111
 02 0A 00 00

001:011:000:STREAM             1738155774.333110
 02 0A 00 00

001:011:000:STREAM             1738155774.341112
 02 08 00 00

001:011:000:STREAM             1738155774.349117
 02 08 00 00

001:011:000:STREAM             1738155774.357113
 02 06 00 00

001:011:000:STREAM             1738155774.365110
 02 07 00 00

001:011:000:STREAM             1738155774.373129
 02 05 00 00

001:011:000:STREAM             1738155774.381134
 02 04 00 00

001:011:000:STREAM             1738155774.389126
 02 04 00 00

001:011:000:STREAM             1738155774.397128
 02 03 00 00

001:011:000:STREAM             1738155774.405130
 02 03 00 00

001:011:000:STREAM             1738155774.411128
 02 03 00 00

001:011:000:STREAM             1738155774.419131
 02 02 00 00

001:011:000:STREAM             1738155774.427120
 02 01 00 00

001:011:000:STREAM             1738155774.435115
 02 01 00 00

001:009:000:STREAM             1738155774.867145
 20 64 8B 00

001:011:000:STREAM             1738155774.867200
 02 00 F0 FF

001:011:000:STREAM             1738155774.875178
 02 01 90 FF

001:011:000:STREAM             1738155774.883148
 02 03 60 FF

001:011:000:STREAM             1738155774.891176
 02 03 40 FF

001:011:000:STREAM             1738155774.899127
 02 04 40 FF

001:011:000:STREAM             1738155774.907149
 02 04 40 FF

001:011:000:STREAM             1738155774.915128
 02 03 50 FF

001:011:000:STREAM             1738155774.923113
 02 02 70 FF

001:011:000:STREAM             1738155774.931112
 02 02 70 FF

001:011:000:STREAM             1738155774.939114
 02 01 60 FF

001:009:000:STREAM             1738155774.947063
 21 9F 08

001:011:000:STREAM             1738155774.947108
 02 01 60 FF

001:011:000:STREAM             1738155774.955142
 02 00 50 FF

001:011:000:STREAM             1738155774.963139
 02 00 50 FF

001:011:000:STREAM             1738155774.971148
 02 00 50 FF

001:011:000:STREAM             1738155774.979179
 02 00 50 FF

001:011:000:STREAM             1738155774.987177
 02 00 40 FF

001:011:000:STREAM             1738155774.995157
 02 00 40 FF

001:011:000:STREAM             1738155775.001121
 02 FF 5F FF

001:011:000:STREAM             1738155775.009150
 02 FF 5F FF

001:009:000:STREAM             1738155775.011051
 22 09

001:011:000:STREAM             1738155775.017112
 02 FE 4F FF

001:011:000:STREAM             1738155775.025118
 02 FE 5F FF

001:011:000:STREAM             1738155775.033128
 02 FE 5F FF

001:011:000:STREAM             1738155775.041119
 02 FE 6F FF

001:011:000:STREAM             1738155775.049120
 02 FE 7F FF

001:011:000:STREAM             1738155775.057113
 02 FE 7F FF

001:011:000:STREAM             1738155775.065140
 02 FE 8F FF

001:011:000:STREAM             1738155775.073138
 02 FE 8F FF

001:011:000:STREAM             1738155775.081137
 02 FE 9F FF

001:011:000:STREAM             1738155775.089178
 02 FE 9F FF

001:011:000:STREAM             1738155775.097183
 02 FF 9F FF

001:009:000:STREAM             1738155775.099065
 23 79 00 79 00

001:011:000:STREAM             1738155775.105119
 02 FF 9F FF

001:011:000:STREAM             1738155775.113114
 02 FF BF FF

001:011:000:STREAM             1738155775.121112
 02 FF CF FF

001:011:000:STREAM             1738155775.129111
 02 00 B0 FF

001:011:000:STREAM             1738155775.137111
 02 00 D0 FF

001:011:000:STREAM             1738155775.145119
 02 00 D0 FF

001:011:000:STREAM             1738155775.153114
 02 00 E0 FF

001:011:000:STREAM             1738155775.161154
 02 00 F0 FF

001:009:000:STREAM             1738155775.163051
 25 13

001:011:000:STREAM             1738155775.169151
 02 00 F0 FF

001:009:000:STREAM             1738155775.235065
 28 00

001:011:000:STREAM             1738155775.287193
 02 01 10 00

001:011:000:STREAM             1738155775.295129
 02 01 10 00

001:011:000:STREAM             1738155775.303125
 02 01 20 00

001:009:000:STREAM             1738155775.307064
 29 00

001:011:000:STREAM             1738155775.311124
 02 00 10 00

001:011:000:STREAM             1738155775.319129
 02 01 10 00

001:011:000:STREAM             1738155775.335158
 02 01 10 00

001:011:000:STREAM             1738155775.351132
 02 01 10 00

001:011:000:STREAM             1738155775.359154
 02 01 00 00

001:011:000:STREAM             1738155775.375165
 02 01 10 00

001:009:000:STREAM             1738155775.379061
 80 02

001:011:000:STREAM             1738155775.397130
 02 00 10 00

001:011:000:STREAM             1738155775.405128
 02 00 10 00

001:009:000:STREAM             1738155775.451083
 82 2C 01

001:009:000:STREAM             1738155775.523070
 85 00

001:011:000:STREAM             1738155775.533149
 02 00 10 00

001:011:000:STREAM             1738155775.541187
 02 00 10 00

001:011:000:STREAM             1738155775.549185
 02 00 20 00

001:011:000:STREAM             1738155775.557180
 02 00 10 00

001:011:000:STREAM             1738155775.565173
 02 00 10 00

001:011:000:STREAM             1738155775.573182
 02 00 10 00

001:011:000:STREAM             1738155775.581182
 02 00 10 00

001:011:000:STREAM             1738155775.589182
 02 00 10 00

001:009:000:STREAM             1738155775.595134
 86 FF FF

001:011:000:STREAM             1738155775.595178
 02 00 10 00

001:011:000:STREAM             1738155775.603158
 02 FF 2F 00

001:011:000:STREAM             1738155775.611127
 02 00 20 00

001:011:000:STREAM             1738155775.619148
 02 00 10 00

001:011:000:STREAM             1738155775.627179
 02 00 20 00

001:011:000:STREAM             1738155775.635122
 02 00 20 00

001:011:000:STREAM             1738155775.643131
 02 00 20 00

001:011:000:STREAM             1738155775.651125
 02 00 40 00

001:011:000:STREAM             1738155775.659114
 02 00 40 00

001:011:000:STREAM             1738155775.667114
 02 00 40 00

001:009:000:STREAM             1738155775.675059
 87 FF FF

001:011:000:STREAM             1738155775.675100
 02 00 50 00

001:011:000:STREAM             1738155775.683114
 02 00 50 00

001:011:000:STREAM             1738155775.691117
 02 00 60 00

001:011:000:STREAM             1738155775.699120
 02 00 50 00

001:011:000:STREAM             1738155775.707150
 02 00 60 00

001:011:000:STREAM             1738155775.715120
 02 FF 7F 00

001:011:000:STREAM             1738155775.723114
 02 00 50 00

001:011:000:STREAM             1738155775.731113
 02 00 50 00

001:011:000:STREAM             1738155775.739139
 02 00 50 00

001:009:000:STREAM             1738155775.747088
 88 78 00

001:011:000:STREAM             1738155775.747148
 02 00 70 00

001:011:000:STREAM             1738155775.755119
 02 00 50 00

001:011:000:STREAM             1738155775.763148
 02 00 60 00

001:011:000:STREAM             1738155775.771184
 02 00 80 00

001:011:000:STREAM             1738155775.779180
 02 00 60 00

001:011:000:STREAM             1738155775.787178
 02 00 60 00

001:011:000:STREAM             1738155775.793182
 02 00 50 00

001:011:000:STREAM             1738155775.801184
 02 00 60 00

001:011:000:STREAM             1738155775.813184
 02 00 50 00

001:011:000:STREAM             1738155775.817174
 02 00 50 00

001:011:000:STREAM             1738155775.825147
 02 00 40 00

001:011:000:STREAM             1738155775.833142
 02 FF 6F 00

001:011:000:STREAM             1738155775.841125
 02 FF 5F 00

001:011:000:STREAM             1738155775.849123
 02 FF 6F 00

001:011:000:STREAM             1738155775.857122
 02 FE 7F 00

001:011:000:STREAM             1738155775.865118
 02 FE 6F 00

001:011:000:STREAM             1738155775.873112
 02 FE 6F 00

001:011:000:STREAM             1738155775.881164
 02 FE 5F 00

001:011:000:STREAM             1738155775.889116
 02 FE 6F 00

001:011:000:STREAM             1738155775.897125
 02 FF 4F 00

001:011:000:STREAM             1738155775.905146
 02 FF 4F 00

001:011:000:STREAM             1738155775.915152
 02 FF 5F 00

001:011:000:STREAM             1738155775.921119
 02 00 40 00

001:011:000:STREAM             1738155775.929143
 02 FF 4F 00

001:011:000:STREAM             1738155775.937139
 02 00 40 00

001:011:000:STREAM             1738155775.945152
 02 00 30 00

001:011:000:STREAM             1738155775.953116
 02 00 20 00

001:011:000:STREAM             1738155775.961144
 02 00 20 00

001:011:000:STREAM             1738155775.969144
 02 00 10 00

001:011:000:STREAM             1738155775.977142
 02 00 10 00

001:011:000:STREAM             1738155775.985144
 02 00 10 00

001:011:000:STREAM             1738155776.783170
 01 00 FF 00

001:011:000:STREAM             1738155776.847131
 01 00 FF 00

001:011:000:STREAM             1738155776.911167
 01 00 FF 00

001:011:000:STREAM             1738155776.981169
 01 00 FF 00

001:011:000:STREAM             1738155777.045133
 01 00 FF 00

001:011:000:STREAM             1738155777.117162
 01 00 FF 00

001:011:000:STREAM             1738155777.173156
 01 00 FF 00

001:011:000:STREAM             1738155777.269196
 01 00 FF 00

001:011:000:STREAM             1738155777.601183
 01 00 FF 00

001:011:000:STREAM             1738155778.021193
 01 00 01 00

001:011:000:STREAM             1738155778.093205
 01 00 01 00

001:011:000:STREAM             1738155778.157126
 01 00 01 00

001:011:000:STREAM             1738155778.235163
 01 00 01 00

001:011:000:STREAM             1738155778.315163
 01 00 01 00

001:011:000:STREAM             1738155778.385163
 01 00 01 00

001:011:000:STREAM             1738155778.481163
 01 00 01 00

001:011:000:STREAM             1738155778.567155
 01 00 01 00

001:011:000:STREAM             1738155778.647135
 01 00 01 00

001:009:000:STREAM             1738155778.987082
 20 64 8B 00

001:009:000:STREAM             1738155779.059107
 21 9F 08

001:009:000:STREAM             1738155779.131142
 22 09

001:009:000:STREAM             1738155779.219151
 23 79 00 79 00

001:009:000:STREAM             1738155779.283097
 25 13

001:009:000:STREAM             1738155779.355097
 28 00

001:009:000:STREAM             1738155779.427102
 29 00

001:009:000:STREAM             1738155779.499131
 80 02

001:009:000:STREAM             1738155779.571138
 82 2C 01

001:009:000:STREAM             1738155779.643075
 85 00

001:009:000:STREAM             1738155779.715140
 86 FF FF

001:009:000:STREAM             1738155779.795144
 87 FF FF

001:009:000:STREAM             1738155779.867075
 88 78 00

001:011:000:STREAM             1738155780.449143
 01 04 00 00

001:011:000:STREAM             1738155780.533133
 01 00 00 00

001:011:000:STREAM             1738155781.103202
 01 08 00 00

001:011:000:STREAM             1738155781.221176
 01 00 00 00

001:011:000:STREAM             1738155781.887168
 01 01 00 00

001:011:000:STREAM             1738155781.997147
 01 00 00 00

001:011:000:STREAM             1738155782.299135
 01 00 01 00

001:011:000:STREAM             1738155782.835134
 01 02 00 00

001:011:000:STREAM             1738155782.971170
 01 00 00 00

001:009:000:STREAM             1738155783.107094
 20 64 8B 00

001:009:000:STREAM             1738155783.179083
 21 9F 08

001:009:000:STREAM             1738155783.251081
 22 09

001:009:000:STREAM             1738155783.331094
 23 79 00 79 00

001:009:000:STREAM             1738155783.403110
 25 13

001:009:000:STREAM             1738155783.475144
 28 00

001:009:000:STREAM             1738155783.547107
 29 00

001:009:000:STREAM             1738155783.619113
 80 02

001:009:000:STREAM             1738155783.691082
 82 2C 01

001:009:000:STREAM             1738155783.763118
 85 00

001:009:000:STREAM             1738155783.835123
 86 FF FF

001:009:000:STREAM             1738155783.907150
 87 FF FF

001:009:000:STREAM             1738155783.987109
 88 78 00

001:009:000:STREAM             1738155787.219096
 20 64 8B 00

001:009:000:STREAM             1738155787.299091
 21 9F 08

001:009:000:STREAM             1738155787.371114
 22 09

001:009:000:STREAM             1738155787.451129
 23 79 00 79 00

001:009:000:STREAM             1738155787.523111
 25 13

001:009:000:STREAM             1738155787.595119
 28 00

001:009:000:STREAM             1738155787.659095
 29 00

001:009:000:STREAM             1738155787.731095
 80 02

001:009:000:STREAM             1738155787.803087
 82 2C 01

001:009:000:STREAM             1738155787.875141
 85 00

001:009:000:STREAM             1738155787.947114
 86 FF FF

001:009:000:STREAM             1738155788.027128
 87 FF FF

001:009:000:STREAM             1738155788.099119
 88 78 00

001:009:000:STREAM             1738155791.339109
 20 64 8B 00

001:009:000:STREAM             1738155791.411125
 21 9F 08

001:009:000:STREAM             1738155791.483091
 22 09

001:009:000:STREAM             1738155791.563169
 23 79 00 79 00

001:009:000:STREAM             1738155791.635112
 25 13

001:009:000:STREAM             1738155791.707158
 28 00

001:009:000:STREAM             1738155791.779114
 29 00

001:009:000:STREAM             1738155791.851093
 80 02

001:009:000:STREAM             1738155791.923127
 82 2C 01

001:009:000:STREAM             1738155791.995098
 85 00

001:009:000:STREAM             1738155792.067098
 86 FF FF

001:009:000:STREAM             1738155792.139100
 87 FF FF

001:009:000:STREAM             1738155792.219110
 88 78 00

001:009:000:STREAM             1738155795.459137
 20 64 8B 00

001:009:000:STREAM             1738155795.531106
 21 9F 08

001:009:000:STREAM             1738155795.603140
 22 09

001:009:000:STREAM             1738155795.683141
 23 79 00 79 00

001:009:000:STREAM             1738155795.755135
 25 13

001:009:000:STREAM             1738155795.827098
 28 00

001:009:000:STREAM             1738155795.891123
 29 00

@hrvach
Copy link
Owner

hrvach commented Jan 29, 2025

I think this would be due to multiple report IDs for a single mouse collection which isn't really supported and assumes just one report ID. Instead, this should be a list and handled appropriately. I don't have hardware to test (aside from spoofing it), would you be able to test if I made a patch?

@rygwdn
Copy link
Contributor Author

rygwdn commented Jan 29, 2025

for sure, I'm happy to test!

@chri2
Copy link

chri2 commented Jan 30, 2025

Could this be related to #133 ?

If so: I'm replacing (just ordered) the not working mouse from #133 by the older, working version. If it helps I could contribute the not-working version for testing if interest be.

@hrvach
Copy link
Owner

hrvach commented Feb 2, 2025

for sure, I'm happy to test!

Any changes with this perhaps?

deskhop-test-mouseids.zip

Probably doesn't work, but who knows :)

@hrvach
Copy link
Owner

hrvach commented Feb 2, 2025

Could this be related to #133 ?

If so: I'm replacing (just ordered) the not working mouse from #133 by the older, working version. If it helps I could contribute the not-working version for testing if interest be.

Yes, this is the same issue. Please try the zip as well, let me know if it behaves better?

@rygwdn
Copy link
Contributor Author

rygwdn commented Feb 2, 2025

That didn't work unfortunately, but I took a stab at a fix myself in #219 which does seem to be working for me!

@chri2
Copy link

chri2 commented Feb 2, 2025

deskhop-test-mouseids.zip

Probably doesn't work, but who knows :)

The behavior for Cherry MW 8C Advanced USB-C is the same: Doesn't work.

That didn't work unfortunately, but I took a stab at a fix myself in #219 which does seem to be working for me!

I also compiled the version by @rygwdn (I hope I did everything correctly, I downloaded the code from here as this zip and it seemed to contain the patches. Compiled that.)

It doesn't work for Cherry MW 8C Advanced USB-C.
edit: still needs to be tested - see #218 (comment) ff.

@chri2
Copy link

chri2 commented Feb 2, 2025

If it helps I could contribute the not-working version for testing if interest be.

The carrier announced that my replacement Cherry MW 8C Advanced USB-micro will arrive on monday. If everything is fine I could send of one of my replaced usb-c versions for testing during the week.

@rygwdn
Copy link
Contributor Author

rygwdn commented Feb 2, 2025

@chri2 not sure how you're flashing yours, but I couldn't use the method using the keyboard and instead had to directly flash the two halves separately because the version number isn't bumped

@chri2
Copy link

chri2 commented Feb 2, 2025

@chri2 not sure how you're flashing yours, but I couldn't use the method using the keyboard and instead had to directly flash the two halves separately because the version number isn't bumped

Uh, I used the keyboard method. I'll try tomorrow with a direct flash and let you know about the result - thanks for the information!

Update: I used "the push and hold the button while reconnecting power" method to copy the deskhop.uf2 that resulted from my build of this source to each of the two RPIs individually (cp deskhop.uf2 /media/[...]/RPI-RP2).

The Cherry MW 8C Advanced USB-C mouse still doesn't work.

@hrvach
Copy link
Owner

hrvach commented Feb 7, 2025

That didn't work unfortunately, but I took a stab at a fix myself in #219 which does seem to be working for me!

@rygwdn could you please be so kind to try if

deskhop-test-mouseids2.zip

still works to solve your issue? I'm trying to do some refactoring but have nothing to test the issue for possible regression. Thanks!

@hrvach
Copy link
Owner

hrvach commented Feb 9, 2025

Please try v0.71 pre-release, does the issue still persist?

@rygwdn
Copy link
Contributor Author

rygwdn commented Feb 13, 2025

I can confirm that 0.71 works!

@rygwdn
Copy link
Contributor Author

rygwdn commented Feb 13, 2025

actually, I spoke too soon. It looks like it breaks the ability to hold the mouse buttons down! this fixes it though:

diff --git i/src/mouse.c w/src/mouse.c
index a46962a..641c9a2 100644
--- i/src/mouse.c
+++ w/src/mouse.c
@@ -219,12 +219,13 @@ void do_screen_switch(device_t *state, int direction) {
         switch_virtual_desktop(state, output, output->screen_index + 1, direction);
 }
 
-inline void extract_value(bool uses_id, int32_t *dst, report_val_t *src, uint8_t *raw_report, int len) {
+static inline bool extract_value(bool uses_id, int32_t *dst, report_val_t *src, uint8_t *raw_report, int len) {
     /* If HID Report ID is used, the report is prefixed by the report ID so we have to move by 1 byte */
     if (uses_id && (*raw_report++ != src->report_id))
-        return;
+        return false;
 
     *dst = get_report_value(raw_report, len, src);
+    return true;
 }
 
 void extract_report_values(uint8_t *raw_report, int len, device_t *state, mouse_values_t *values, hid_interface_t *iface) {
@@ -246,7 +247,10 @@ void extract_report_values(uint8_t *raw_report, int len, device_t *state, mouse_
     extract_value(uses_id, &values->move_y, &mouse->move_y, raw_report, len);
     extract_value(uses_id, &values->wheel, &mouse->wheel, raw_report, len);
     extract_value(uses_id, &values->pan, &mouse->pan, raw_report, len);
-    extract_value(uses_id, &values->buttons, &mouse->buttons, raw_report, len);
+
+    if (!extract_value(uses_id, &values->buttons, &mouse->buttons, raw_report, len)) {
+        values->buttons = state->mouse_buttons;
+    }
 }
 
 mouse_report_t create_mouse_report(device_t *state, mouse_values_t *values) {

@hrvach
Copy link
Owner

hrvach commented Feb 13, 2025

Thank you very much for the patch, I'll fix it as soon as possible!

@rygwdn
Copy link
Contributor Author

rygwdn commented Feb 14, 2025

I opened a PR with the changes too #225

@hrvach
Copy link
Owner

hrvach commented Feb 25, 2025

I opened a PR with the changes too #225

Thank you, will merge after testing - a bit slow due to work travel, apologies for not getting to this earlier.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants