cancel
Showing results for 
Search instead for 
Did you mean: 

what is the proper way do define a complete HID Report Descriptor for a complete keyboard?

GRama.4
Associate II

I'm trying to build a custom HID device with the STM32F401RE board.

I've got a basic keyboard recognized by my PC as a HID Keyboard from STM32_USB_training_course example as I expected, and "normal" key strokes works fine (letters, Enter, page up\down).

My trouble is with modifiers and special key strokes (i.e - volume control keys, numpad keys). I guess that the report descriptor provided in the example is not complete, or not defined for those special keys.

A few more things came up in the device manager. and I'm really not sure why, or if they are actually needed.

any help would be appreciated.

3 REPLIES 3
Pavel A.
Evangelist III

> I guess that the report descriptor provided in the example is not complete, or not defined for those special keys.

Yes.

> A few more things came up in the device manager. and I'm really not sure why, or if they are actually needed.

For USB HID device, Windows usually creates several entries visible in "view -> devices by container":

  • HID keyboard device
  • USB input device
  • HID-compliant *** controller - optional, if the keyboard has special function keys
  • USB composite device (optional, if the device is composite)

This is normal, all these things are needed. As to why, it's complicated. For more info you're welcome to Microsoft Q&A forums.

--pa

thanks for the reply:)

for the devices appearing, I'll take it as it is. that was for general knowledge...

any advice/suggestions/resources for how to write a report descriptor that is complete for those special keys?

A good way to begin can be finding a keyboard that has all needed features and copying its report descriptors.

Google is a valuable resource as well 😉

--pa