Specifications
Configuration Descriptor
The configuration descriptor is 9 bytes in length and gives the configuration information for the device. It is possible to have
more than one configuration for each device. When the host requests a configuration descriptor, it will continue to read these
descriptors until all configurations have been received. A list of the structure follows:
• Total length of the data returned for this configuration (2 bytes)
• Number of interfaces for this configuration (1 byte)
• Value used to address this configuration (1 byte)
• Index of string describing this configuration (Optional) (1 byte)
• Attributes bitmap describing configuration characteristics (1 byte)
• Maximum power the device will consume from the bus (1 byte)
Example of configuration descriptor
Descriptor Length (9 bytes)
Descriptor Type (Configuration)
Total Data Length (34 bytes)
Interfaces Supported (1)
Configuration Value (1)
String Describing this Config (None)
Config Attributes (Bus powered)
Max Bus Power Consumption (100mA)
Interface Descriptor
The interface descriptor is 9 bytes long and describes the interface of each device. It is possible to have more than one
interface for each device. This descriptor is set up as follows:
• Number of this interface (1 byte)
• Value used to select alternate setting for this interface (1 byte)
• Number of endpoints used by this interface. If this number is zero, only endpoint 0 is used by this interface (1
byte)
• Class code (1 byte)
• Subclass code (1 byte)
• Protocol code (1 byte)
• Index of string describing this interface (1 byte)
Example of interface descriptor
Descriptor Length (9 bytes)
Descriptor Type (Interface)
Interface Number (0)
Alternate Setting (0)
Number of Endpoints (1)
Class Code (insert code)
Subclass Code (0)
Protocol (No specific protocol)
String Describing Interface (None)
HID (Class) Descriptor
The class descriptor tells the host about the class of the device. In this case, the device falls in the human interface device
(HID) class. This descriptor is 9 bytes in length and is set up as follows:
• Class release number in BCD (2 bytes)
• Localized country code (1 byte)
• Number of HID class descriptor to follow (1 byte)
• Report descriptor type (1 byte)
• Total length of report descriptor in bytes (2 bytes)
Example of HID class descriptor
Descriptor Length (9 bytes)
Descriptor Type (HID Class)
HID Class Release Number (1.00)
Localized Country Code (USA)
Number of Descriptors (1)
Report Descriptor Type (HID)
Report Descriptor Length (63 bytes)