-
Notifications
You must be signed in to change notification settings - Fork 17
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
No keyboard_transfer_cb HID report on usbhhidboot #5
Comments
I tried a QMK keyboard and the 8 byte HID report shows up. However, QMK has so many options it is possible some combinations work and some do not. I have a N-Key rollover keyboard that does not work. I suspect it needs the set_protocol to force it into HID Boot mode. The demo code examples do not follow the recommendations in
so the demos are at a development dead end. I have no plans to add more features. In keyboard_transfer_cb print out the value of transfer->actual_num_bytes. It might be greater than 8 so it is ignored. If USBH_HID_DEBUG is on, there should be message "Keyboard boot HID transfer too short or long". If it is much longer, you can try to reverse engineer the format. For N-Key rollover, I have seen two variations. The HID boot format is 8 bytes with space for 6 key codes. In variation #1, the report is 63 bytes long instead of 8. The first two bytes are the same (modifier bit map and reserved=0) but the remaining 61 are for key codes. So as a many as 61 keys can be held down instead of 6. The second variation, I think the report is about 14 bytes long. The report is a bit map with 1 bit per USB keycode. |
@touchgadget I found that |
@touchgadget May I ask you which part of your code is an implementation of |
Thank you for your code. It is very helpful to understanding the USB Host structure.
I'm trying to make ESP32 read data from my USB keyboard. The
usbhhidboot
example works well and reports device descriptors when keyboard is connected.BTW, I can't receive any
keyboard_transfer_cb
reports. I'm wondering if this is the problem you mentioned on README that some keyboards require SetProtocol that are not implemented. My keyboard is a custom keyboard with QMK firmware uploaded.Below is the output of my
usbhhidboot
. Nothing happens when I press some keys on keyboard.Thank you.
The text was updated successfully, but these errors were encountered: