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

Toggle between HID_PROTOCOL_BOOT and HID_PROTOCOL_REPORT #2436

Open
1 task done
moc32 opened this issue Jan 29, 2024 · 2 comments
Open
1 task done

Toggle between HID_PROTOCOL_BOOT and HID_PROTOCOL_REPORT #2436

moc32 opened this issue Jan 29, 2024 · 2 comments
Labels

Comments

@moc32
Copy link

moc32 commented Jan 29, 2024

Operating System

Linux

Board

PIC0 RP2040

Firmware

ex_host_bare_api.zip

What happened ?

Toggling between report and boot mode on mouse interface will block the keyboard interface on logitech wireless keyboard
Tested: K270/M185 and K220/M150

How to reproduce ?

Connect one of these wireless logitech K270/M185 and K220/M150.

Press R to set report mode on mouse interface
Or B to set boot mode

Keyboard will stop responding. You can see on the Ellysis recording that keyboard endpoint is still replying but the host will not process it replies and continues to ask the same request.

Debug Log as txt file (LOG/CFG_TUSB_DEBUG=2)

No debug needed

Device attached, address = 1
Device 1: ID 046d:c534
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 0200
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x046d
idProduct 0xc534
bcdDevice 2900
iManufacturer 1 Logitech
iProduct 2 USB Receiver
iSerialNumber 0
bNumConfigurations 1
Listen to [dev 1: ep 81, wmx 08]
Listen to [dev 1: ep 82, wmx 14]

Screenshots

ellisys record.zip

I have checked existing issues, dicussion and documentation

  • I confirm I have checked existing issues, dicussion and documentation.
@moc32 moc32 added the Bug 🐞 label Jan 29, 2024
@moc32
Copy link
Author

moc32 commented Jan 31, 2024

I have tested the example app and it works with other combo devices and single keyboard and mouse connected over a hub. The only difference with logitech wireless devices is the wMaxPacketSize which is 20 for the mouse endpoint and 8 for the keyboard.
For the other tested devices wMaxPacketSize is less than or equal to 8 bytes.

@moc32 moc32 changed the title Toggling between HID_PROTOCOL_BOOT and HID_PROTOCOL_REPORT is blocking the mouse interface on Logitech M185 and M150 Toggle between HID_PROTOCOL_BOOT and HID_PROTOCOL_REPORT Jan 31, 2024
@moc32
Copy link
Author

moc32 commented Feb 8, 2024

This issue might look trivial but It looks like an issue with the hardware controller. After toggling the report protocol, the keyboard endpoint get blocked. The host sends request to the keyboard endpoint and the keyboard is replying the IN request but the host is not sending the ACK and restart the IN transfer without firing any interrupt.

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

No branches or pull requests

1 participant