question

SuperPCFan-5525 avatar image
0 Votes"
SuperPCFan-5525 asked SuperPCFan-5525 answered

Is there a HID report count limit in place?

I develope a composite USB device of a flashdrive-endpoint and several HID/PID -endpoints/functions.
Therefore I wrote a bunch (4pcs with several report-ids each) of report descriptors to define the data packets for the different HID/PID usages. One goal is to use the generic driver of the operating system. So I need Windows to understand what I want to achieve.

The strange behaviour I strugle at is that all my report descriptors are working fine if they are loaded alone. Even compositions of two or three of them are working. But when I load all together the last few report-id-groups throw HID Error "10" from Windows.
When I then unload some report-id-groups before the failing report-id-groups the error ist gone.

So I assume that Windows cannot recognize some more (maybe round about 12?!) report-id-groups from one USB device with its generic standard driver?

But this makes no sense to me since the USB PID example from the USB Foundation page states that a PID device needs at least over 14 report-id-groups for one device. So Windows would never be capable of handling the PID standard, what I cannot believe.

windows-hardware-code-general
· 1
5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.

Please post your config descriptor. for your multiple HID endpoints, are you using multiple TLCs in one HID descriptor or multiple HID descriptors?

0 Votes 0 ·

1 Answer

SuperPCFan-5525 avatar image
0 Votes"
SuperPCFan-5525 answered

The device and configuration descriptors are generated automaticly/internal by the Linux USB driver on my USB gadget device. It computes the descriptor itself out of a few information I provide within a script. I not have direct access to the result. See the attached files as the Windows tool "Device Monitoring Studio" shows the resulting descriptors on Windows.

I found that the problem ist not caused by the report-id-group count. The report groups seem to be unlimited.
But it's caused by the amount of Usage Pages (Keyboard, Mouse, Telephony, Consumer, Joystick, Gamepad, ...) which seems to be limited for one device.

Upto now the functions depending on the 3 Hid report descriptor files (Mouse, Keyboard, Joystick) are working.
But the 4. report descriptor (Physical) is not working. The definitions inside of the file "mediaPhysicalRepDesc.dat" is unchanged/exactly the example from the USB Foundation für PID devices. But the tool "ForceTest.exe" states that there is no PID device registrated in Windows.

91451-devicedescriptor.txt
91452-configuration-descriptor-massstorage.txt
91453-configuration-descriptor-hid.txt
91454-mediamouserepdescdat.txt
91433-mediakeyboardrepdescdat.txt
91434-mediajoystickrepdescdat.txt
91455-mediaphysicalrepdescdat.txt



5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.