-
-
Notifications
You must be signed in to change notification settings - Fork 121
Human Interface Devices (Hid)
Human Interface Devices are devices that connect to a computer or other device and transfer input or output to/from the device. Devices can be anything from USB mouses, to Bluetooth speakers. However, most id devices are USB connected devices.
From a programming perspective, it is important to understand that there is a great deal of overlap between USB, and Hid, but they are not exactly the same thing. Please see the section on USB. Hid started out as a subset of USB devices on Windows, but has now been expanded to include most connected devices. The key to understanding Hid vs. USB is that a manufacturer may provide a Hid interface, a USB interface, or both. You must query the device to find out which interfaces are implemented.
This library aims at putting a common programming interface across both types of interfaces so that your code can talk to the device in any way that it understands. This is important because some device firmware may arbitrarily switch between Hid and USB. For example, the Satoshi Labs' Trezor started out with a Hid interface. But, in version of 1.7.x of its firmware, Hid support was dropped for USB only support. That means that any software talking to the Trezor device range must check to see if which interface it needs to talk to.