Human Interface Devices (HID) Information

HID Related Specifications and Tools

Device Class Definition HID

The Device Class Definition for HID 1.11 is intended to supplement the USB Specification and provide HID manufacturers with the information necessary to build USB-compatible devices. It also specifies how the HID class driver should extract data from USB devices. The primary and underlying goals of the HID class definition are to:

  • be as compact as possible to save device data space
  • allow the software application to skip unknown information
  • be extensible and robust
  • support nesting and collections
  • be self-describing to allow generic software applications

HID Usage Tables

The HID Usage Tables 1.3 document defines constants that can be interpreted by an application to identify the purpose and meaning of a data field in a HID report.

Usages are also used to define the meaning of groups of related data items. This is accomplished by the hierarchical assignment of usage information to collections.

Usages identify the purpose of a collection and the items it contains. Each Input, Output, Feature, and/or Collection data item within a Collection item can be assigned a purpose with its own usage item. Usages assigned to a collection apply to the items within the collection.

The HID Usage Tables document contains extensions to the tables defined in the USB Device Class Definition for Human Interface Devices. All usages pages, except the Keyboard table, are replicated in the Usage Table document. The Usage Table document identifies the extensions to the Keyboard usage table. Integrated Usage Table Documents

Note: For keyboards, look at the usage table sections in both the HID Specification and the HID Usage Table document!

Approved Usage Table Review Requests

The following HID Usage Table Review Requests have been approved for implementation by the USB Device Working Group HID Committee. These Review requests assign enumeration values and recommended meaning to new Usages allocated after the publication of the HID Usage Tables v1.3. Please note that the creation of a new Usage does not imply support for that Usage by any USB HID Host vendor. Integrated Usage Table Review Requests.

New Usage Table Review Requests

USB HID Working Group member companies may request changes to the HID Usage Tables by filling out and submitting the form below. Please note the voting and submission policies at the end of the document. 

Usage Tables for Physical Interface Devices

The Device Class Definition for PID 1.0 provides information for the development of Physical Interface Devices. These devices include force feedback joysticks, steering wheels, etc. It allows peripheral and driver developers to use a common set of HID report descriptors, device usages and reports to describe the characteristics of a PID class device.

HID Resources

HID Descriptor Tool

This tool allows you to create, edit and validate HID Report Descriptors. The tool also supports a variety of output formats (.txt, .inc, .h, etc.). DT uses ASCII based Usage Tables and supports vendor defined pages as well. Included are Usage Table files for the HID Usage Table document 1.0 Release Candidate 1, Monitor Class 1.0 Release Candidate 2, and Power Class Spec. Read the included README.TXT file for more information.


This program, found in the USBCheck, is now obsolete. Its replacement is USBCV.

HID White Papers


The Unicode web site ( allows you to download the latest character tables for free. Check it before you finalize a design because new ones are always in process.

The Nadine Kano book, "Developing International Software" which was used as key reference for Unicode, is out of print. It can still be obtained in a CD-ROM version as part of the Microsoft Developers Network (MSDN) subscription. Subscription information can be obtained at the MSDN web site ( Or it can be accessed for free online at the MSDN Library. The book can be found under "Books / Developing International Software".

To get the latest LANGID definitions go to This page will change as new LANGIDs are added.

Note that the HID Primary LANGID (0x0FF) is not on the above list, however it is permanently reserved and will never be reassigned.

Please send your URLs to