I was curious to learn more about the HID Sensor specification, but found what was available online to be limited. Having written firmware for a number of USB implementations (including several open-source projects), I "learned by doing".

I wrote two equivalent implementations for both the STM32F072 and the PIC16F1454 (two inexpensive USB microcontrollers). Said source code is now available online.

There are some details in the README that I won't duplicate here.

The appeal of the HID Sensor protocol is it that provides a driver-less mechanism to connect sensors to a PC. It uses a HID Feature Report to retrieve a bevy of metadata about the sensor: what it measures, what the range of values are, what units, etc., etc.

Clearly, one of the intents was to enable PC software to be written more generically without being hard-coded for a known set of sensors.

I wonder whether HID Sensor would be considered a "success" or not.

On the one hand, there must be tens, if not hundreds, of millions of PCs (particularly in tablet form) that come equipped with sensors (accelerometer, light level, magnetic, etc.). So, the market volume is there.

However on the other hand, I believe these are all based on a small handful of reference designs integrated into the PC. There may not be any real diversity in the marketplace, nor a market for sensors that plug into the PC.

I can only hope that availability of open-source implementations such as these might help jumpstart others to try to make new things.


back to main page contact