History: usbd_cd_hid

This page describes all changes made to the usbd_cd_hid package, USBD HID Class Driver, since its release.


8.6 (2020-11-17, 15:30):

  • HID only worked if it was present on the first interface.
  • Warnings eliminated.

8.5 (2018-09-26, 8:00):

  • Added boundary checks for parameters.

8.4 (2017-06-29, 10:27):

  • Eliminated compiler warnings.

8.3r2 (2018-08-29, 18:31):

  • Document HTML link added to the documentation folder.
  • History and document files renamed to the package name.


  • If Report ID is enabled for generic HID, read report length was incorrectly set to one higher than the correct length.


  • IN and OUT reports were only identified correctly if HID interfaces in the Configuration Descriptor were in order, staring with Interface0 ( Ifc Nr.0,1 and so on. )


  • New config parameter HID_CHECK_OUT_REPORT_SIZE added to enable the option to verify the length of the OUT report.
  • usbd_ghid_read_data() function also provides the length of the received OUT report.


  • usbd_kbd_set_report() always returned USBD_HID_ERROR.
  • usbd_mhid_set_report() prototype changed to return error code.


  • The following notifications were added in order to be able to receive a callback when the IN report was physically sent:

           - Keyboard: USBD_KBD_IN_CB

           - Mouse: USBD_MOUSE_IN_CB (usbd_mhid_register_ntf() was added as well)

           - Generic: USBD_GHID_IN_CB

  •  usbd_kbd_set_key_report() was removed and usbd_kbd_set_report() was added in order to be able to send a raw report with the modifier keys and the key states.
  •  usbd_mhid_set_report() was added to allow sending raw mouse report that contains the state of the buttons and X/Y coordinates.
  •  usbd_hid_stop() and usbd_hid_delete() functions were implemented.


  • usbd_kbd_set_key_report() added.
  • Under some conditions the driver could miss to send an IN report.


  •  Multi-interface support added.


  •  psp_types.h used instead of stdint.h and stddef.h.
  •  Compiler warnings were eliminated.


  • Set_Protocol/Get_Protocol requests were implemented to meet HID boot device requirements.
  • Compiler error was fixed (when one of USBD_GHID_IN_MAX_REPORT_NUM or USBD_GHID_OUT_MAX_REPORT_NUM was zero).


  • Merged HID class driver history files. All HID modules uses the same version as USBD HID base.  





  •  Added support for different report sizes.


  •  Added support for more generic IN/OUT reports.


  •  Initial check-in.





  •  Initial check-in.





  •  Initial check-in.



  • Corrected callback handling in usbd_hidtx_task() to call the registered callback in case of IN report only.


  • Init fix for task IDs.


  • Reset interface and transfer variables before creating the resources. The old version could start an RX transfer if the compiler didn't reset all variables leading to incorrect operation.


  • Initial check-in.