Fully working USB HID stack

Table of Contents

  1. TO DO list:

There are many TO DO's in USB HID stack used in example programs like USBmouse, USBJoystick and other based on it. I am trying to fix this to reach fully working USB HID stack with all USB HID functionality. If You would like to participate on finishing TO DO's, You are wellcome.

TO DO list:

String Descriptor - COMPLETED

I finished String Descriptor yesterdey so this TO DO is complete. I published result as USBKeyboardMouse_with_String_Descriptor. Mbed device is now recognized by host by iManufacturer name "mbed.org", iProduct name "mbed HID", iSerial number "0123456789", iConfiguration number "01" and iInterface name "HID". You can easily change this to match Yours in USBhid.cpp.

Import programUSBKeyboardMouse_with_String_Descriptor

Based on USBKeyboardMouse example. I added USB String Descriptor so mbed reports itself to host not only with VID & PID but also with name of manufacturer, product name, serial number, configuration number and interface name. These can be changed to matching Yours in USBhid.cpp file on lines 88 - 122.

Forum about String Descriptor TO DO is at http://mbed.org/forum/mbed/topic/2655/

SET_REPORT functionality - Not working

The Set_Report request allows the host to send a report to the device, possibly setting the state of input, output, or feature controls.

Because we develop USB mouse and keyboard, Set_Report request now for keyboard where this request sets satus of 3 LEDs (Num Lock, Caps Lock and Scroll Lock.

This TO DO can be found in USBhid,.cpp on line 364. Please use USBKeyboardMouse_with_String_Descriptor program as source because previous TO DO is implemented in.


Be happy to add new TO DO's found in this program or to help with resolving them.

EVERYBODY can edit this page and add some information.