openAvrUsb is an open source USB HID interface software project designed to run on Atmel AVR hardware. It includes all source code for simple and reliable communications over USB to embedded devices. For more information on the HID device class, see the descriptive page in the menu on the left.
This project was born out of the Helion Microsystems HU320 USB interface products. It was found, due to customer feedback, that the real power of these products could only be unleashed by allowing user customisation. While they provided a number of useful interfaces, another processor was often required to do grunt-work at the PCB level. With the software released as open-source, user functions can be added with the utmost of ease.
The code is split into two seperate sections, embedded code and a windows library. The embedded code is developed to compile under GCC using the winAVR toolchain. The PC code is developed in C# under VS2008, .NET 2.0. With only minor changes, this code should also compile under mono.
All of the source here is provided free of charge under the GPL licence, please use it to sample, edit, learn and create!
This project is designed to be a complete, flexible USB interface tool for those new to USB. The firmware, when implemented on a USB AVR, provides a HID (human interface device) class device interface to a PC. This is a very flexible and reliable device type which is generally used by keyboards, mice, joysticks etc.
The .NET component offers a simple interface, taking care of all of the nasty win32 API calls. All of this code is implemented in C#. After creating an instance of the top-level object, various functions of the AVR can be accessed directly. There is of course firmware support for these.
Where it is being used...
Currently the source of this project is in use in The Finch robot (http://www.finchrobot.com/). Let us know if there are other open source projects using the code!