-
Notifications
You must be signed in to change notification settings - Fork 169
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
Logitech MX Mechanical #47
Comments
Thanks for providing the USB HID descriptors! I feel like playing doctor when I say this, but can you please describe the symptoms you're having? I need some basic information - is it just a keyboard, a keyboard + mouse on a single dongle? Which port is it plugged into? Thanks! |
As a side note: my mouse ( |
Whoa. What a fast reply, thank you! The issues are that I can't switch computers using Caps Lock. And when I open a terminal and try type character The mouse and the keyboard have their own dongle, each connected to their respective port. |
Also: If I connect a different cabled keyboard to |
I believe what's happening is this - your keyboard is also a mouse, and when you plug in the dongle, the mouse gets configured to hid report protocol which also reconfigures the keyboard with it. Until I fix this in a cleaner way, can you try this: Just the board_A one matters here. |
This seems to work 👍 Very cool, thanks once more! |
Thank you for confirming - I have to stop assuming a keyboard is just a keyboard :) |
Well, I think it's the dongle`s fault. It can be used universally and therefore all dongles register themselfs thrice, without respecting what device get's connected to it. |
That wouldn't normally be a problem, but I think it can't do keyboard in one protocol and mouse in another simultaneously. I have to implement full hid report for keyboards finally and the support should improve for such edge cases. |
@hrvach would you mind sharing your magic code in a patch or something? It seems the latest release is broken for me again. Thank you! |
Build with enforce_ports set to 1 in user config file. Sorry for not documenting more explicitly. Let me know if that works... |
Awesome, this works as advertised! Thank you for all the good stuff you do here 👏 |
As my media keys are not working, I dug a bit into the debug mode and found something (hopefully) interesting:
At some point during device enumeration a request gets stalled. My assumption is, that this is the consumer control device and therefore DH doesn't even recongnize the events for this device. Please find the full screenlog.txt of re-attaching the Logitech dongle. Let me know, if I can provide any other information to this. |
The thing is, consumer control device is not a keyboard, and as such it's neither processed nor advertised to the output computer. I'm not sure if consumer control is universal or Logitech-specific and would only function with a device using their vendor id. I don't have anything with media keys to further investigate, I'll see if anyone I know has one to lend. |
I have a spare Logitech Dongle, which I could send you for some time, but unfortunately no spare device. 😅 But I had a look at the hid-remapper project and I can use media keys with it. Here are their descriptors:
I also successfully used this example from https://github.com/sekigon-gonnoc/Pico-PIO-USB/tree/main/examples/host_hid_to_device_cdc So they must do something differently. |
This is the descriptor: Collection (Application), Can you usbhid-dump your keyboard while pressing the media keys and share? |
Not so easy without pressing enter to start 😉 I used a loop:
|
Also, what do you think about building an example implementation of a virtual device (in code) where we can put certain descriptors to simulate problematic devices? |
Try usbhid-dump -e stream, interested in what the actual report looks like. I'll try getting some hardware and it will be much easier to debug and work on it then. |
Here we go with Play/Pause
|
And here's the output from the capture_hid_report example, when pressing
|
@hrvach after a lot of debugging, I finally start to understand what's going on with this device… 😅 With
Unfortunately, setting the report protocol on interface 1 affects the reporting of interface 0 too and it will start to reply in report mode. 🤦 Ergo: the keyboard report can no longer be parsed as boot report and has a strange behavior. With |
As requested here, here are some media keys:
|
@hrvach I implemented a MVP that works pretty well for discovering the correct device type from HID descriptor with my setup: https://gist.github.com/jalmeroth/691aa8f6a4d0aecd3ba7be9bf3aa5cfb. I think it is universal applicable, but I'm uncertain of the current state in this project. There were a lot of changes that didn't make it into this repo yet, so I'm wondering, if I should try to integrate this change or if it's already solved. |
@hrvach I just want to mention that I put the complete MVP code here now: https://github.com/jalmeroth/deskhopl |
@jalmeroth thank you so much for taking the time and effort to work on this, I was super busy at work and then patching some known issues (v0.63), I'll take a look at your changes and try to incorporate them (with your permission). Thank you! |
I'm glad if I can help in support this project! Let me know, if you need someone to test or if you have any questions. 😄 |
Hi there,
thanks for this awesome project! 🚀
Unfortunately, I have problems running my
Logitech MX Mechanical
keyboard with latest firmware release. So I followed the troubleshooting guide and it works using the provided test firmware.So following the guide, here are the descriptors from
usbhid-dump
while the USB dongle is directly connected to a Linux maschine:Do you need anything else? Do you need the descriptor of
deskhop
while the connector is connected to it?Thanks again,
Jan
The text was updated successfully, but these errors were encountered: