Glen Slick wrote:
Are you referring specifically to the operation of a
USB HID keyboard
in boot protocol mode? While it is true that a USB HID keyboard input
report while in Boot Protocol mode contains one byte for modifier keys
and six bytes for keycodes, that restriction does not apply when the
keyboard is not in boot protocol mode
Even in normal operation (not Boot Protocol),
HID still imposes some
significant limitations. Low-speed devices cannot have a report size
larger than eight bytes, which potentially means that larger numbers of
input changes will require the reporting for some to be delayed to a
later USB frame. For normal keyboard usage this wouldn't be a problem,
but it does mean that true N key rollover will require delays, or for
the keyboard to operate at full speed or faster, rather than low speed.
I have not found any USB keyboards that operate at full speed or faster,
though perhaps some "gaming keyboards" may. The only USB keyboards that
I've examined which have a higher-speed interface are those with
internal USB hubs, and in this case the internal keyboard-to-hub
interface was low-speed.
However, even for the gaming keyboard, the manufacturers' tech support
people have stated that the keyboards to not have N key rollover, and
have blamed this on the six key limit of boot protocol. What this
really means is that their implementation can's support more keys, and
that they don't want to put in diodes or other antighosting, nor support
for full-speed or faster. Most of this is undoubtedly for cost reasons,
though better firmware would presumably only increase NRE and not
production cost.