AVR-HID: A DIY USB sensor interface

Participants: Mark T. Marshall
Marcelo M. Wanderley (supervisor)

AVR-HID in a project box.
Funding: NSERC Discovery Grant (M. Wanderley)

Project Type: Hardware development.

Time Period: 2004 - 2005. Status: Completed.


The AVR-HID device is a six channel, 10-bit analog-to-digital converter which communicates with a computer over the USB connection. It has been designed as a cheap, realtively simple, DIY alternative to many of the available sensor interface boxes. It utilises the USB and Human Interface Device (HID) standards to create a plug-and-play system which works with a large number of software packages on Microsoft Windows, Apple Mac OS X and Linux systems.

The heart of this system is the ATMEL ATmega16 microprocessor. The ATmega16 is a low-power CMOS 8-bit microcontroller based on the AVR enhanced RISC architecture. It has 16K of program memory, 1K of RAM and 512 bytes of eeprom. It also offers an 8 channel 10-bit analog-to-digital converter, and is programmable using the C language. While it is not a USB-based controller it is possible to easily implement USB on the system. It also has the advantage of lower cost than most dedicated USB microcontrollers, with the total cost of building the interface less than CAN$30.

A number of different versions of the device are under development. The current version offers 6 analog input channels, connects directly to the USB port by a cable and has dimensions of 3 1/2 x 4 1/2 x 1 inches . Other versions in development include a miniature version, making use of the ATMEL ATtiny26 microcontroller in its surface mount package (offering 4 analog input channels but in a much smaller device), and a wireless version based around two ATtiny microcontrollers and an RF transmitter-receiver pair.