V-USB Reference Implementations

HIDKeys - An Example USB HID

HIDKeys demonstrates how V-USB can be used to implement the USB Human Interface Device (HID) class specification. It’s a simple USB keyboard with up to 17 keys.

Why a HID?

Implementing a USB device which conforms to the HID specification is particularly useful if you develop for Windows: Every vendor class device requires a kernel driver, but HID class devices do not. This means that you don’t need an installer, the application can simply be copied to the disk or even be started from a CD.

This example demonstrates the device part of HID only. Since it implements a keyboard, no special software is needed on the host computer. In practice, you usually need a specialized software which controls the device. There are many examples available which show how to communicate between the host software and a HID on Windows, e.g. on Jan Alexon’s web page. Our Automator project is one of them.

If you are new to USB and don’t want to dig into the details of creating report descriptors, look at our PowerSwitch example first. It is the most basic and straight-forward way of USB communication.


Release Notes

Release 2012-12-08

  • Updated to newest version of v-usb.
  • Fixed errors reported by gcc 4.6.2.