The term was coined by Mike Van Flandern of Microsoft when he proposed that the USB committee create a Human Input Device class working group.[when?]
The working group was renamed as the Human Interface Device class at the suggestion of Tom Schmidt of DEC because the proposed standard supported bi-directional communication.[when?]
Prior to the introduction of the HID concept, devices usually conformed to strictly defined protocols for mouse, keyboards and joysticks; for example, the standard mouse protocol at the time supported relative X- and Y-axis data and binary input for up to two buttons, with no legacy support.
By contrast, all HID-defined devices deliver self-describing packages that may contain any number of data types and formats.
The concept of a self-describing extensible protocol initially came from Mike Van Flandern and Manolito Adan while working on a project named "Raptor" at Microsoft, and independently from Steve McGowan, who worked on a "SIM" project that defined a device protocol for the VFX1 VR Headset and its peripherals based on ACCESS.bus while at Forte Technologies.
After comparing notes at a Consumer Game Developer Conference, Steve and Mike agreed to collaborate on a new standard for the emerging Universal Serial Bus (USB).
Prior to HID (c.1995), proprietary drivers needed to be installed for almost every device attached to a PC.
This meant that the device developers had the additional responsibility of enabling each game that they wanted to support.
However its versatility has been demonstrated by the fact that it has not been updated in over 22 years, and it is still supported by every PC, tablet and cell phone in production today.
In comparison, this message did not usually appear for devices connected via the PS/2 6-pin DIN connectors which preceded USB.
There are also a number of extensions to HID defined in "HID Integrated Usage Table Documents", including uninterruptible power supplies, video monitor controls, point of sale devices, arcade and gaming (slot machines) devices.
For instance, a mouse typically generates a Report 200 times a second to inform the host of any movement or button presses.
Then the X coordinate is defined as an 8-bit relative value (i.e., number of 'mickeys' since the previous report) that resides in bit positions 8 through 15, and the Y coordinate is defined as an 8-bit relative value that resides in bit positions 16 through 24, resulting in a data packet that is presented to the host.
A Report Descriptor is extremely versatile, allowing a device to specify the resolution, range, and many other characteristics of each control that it presents.
Because these fingers are considered to have the fastest 'twitch' response, they are typically used for pulling the trigger of a gun, or activating an often used game function.
And through the Report Descriptor, the motion capture data can be presented at whatever resolution that the device can support.
The HID descriptor is a hard coded array of bytes that describes the device's data packets.