MyUSB (2008)
MyUSB is my current project, and my first foray into the world of USB. Originally based on the AT90USBKEY from Atmel, it is an open-source, driver for the USB-enabled AT90USBXXX AVR microcontroller series, released under the Lesser GNU Public Licence, Version 3. Currently, the AT90USB1286, AT90USB1287, AT90USB646, AT90USB647, AT90USB162, AT90USB82 and ATMEGA32U4 AVR microcontrollers are supported by the library. Supported boards are the USBKEY, STK525, STK526 and the RZUSBSTICK.
Above:
Picture of the AT90USBKEY board from Atmel.
Photo courtesy Atmel.com.
The library is currently in a stable release, suitable for download and incorporation into user projects for both host and device modes. For information about the project progression, check out my blog.
MyUSB is written specifically for the free AVR-GCC compiler, and uses several GCC-only extensions to make the library API more streamlined and robust. You can download AVR-GCC for free in a convenient windows package, from the the WinAVR website.
Included with the library source are demonstration applications showing off the use of the library. Currently the library includes the following demonstration applications designed for the USBKEY, STK525 and STK526 boards:
- Audio In Device
- Audio Out Device
- CDC Device
- CDC Host
- General Library Test Application
- Joystick Device
- Keyboard Device
- Keyboard Device (Using Endpoint Interrupts)
- Keyboard Device (Using Endpoint/Control Interrupts)
- Keyboard Host
- Keyboard Host (Using Pipe Interrupts)
- Keyboard Host (Using HID Report Parser)
- Mass Storage Device
- Mass Storage Host
- MIDI Device
- Mouse Device
- Mouse Device (Using Endpoint Interrupts)
- Mouse Device (Using Endpoint/Control Interrupts)
- Mouse Host
- Mouse Host (Using Pipe Interrupts)
- Mouse Host (Using HID Report Parser)
- Still Image Host
- USB-RS232 Device (based on CDC Device demo)
MyUSB also contains USB bootloaders for the following USB classes:
- CDC Class Bootloader, compatible with the AVR109 protocol (AVRDude compatible)
- DFU Class Bootloader, compatible with the Atmel DFU protocol (Atmel FLIP, dfu-programmer compatible)
The following open source project source code is included in the MyUSB package:
- Denver Gingerich's Stripe Snoop compatible Magnetic Stripe reader
MyUSB has been used in (or recommended by) the following projects and products:
- Benito #7, an AVR Programmer
- Stripe Snoop, a Magnetic Card reader
- USB10 AKA "The Ferret", a USB162 development board
- Bicycle POV
- Digital Survey Instruments Magnetometer and Pointer
Download:
- MyUSB 1.0.2.zip
- MyUSB 1.1.0.zip
- MyUSB 1.2.0.zip
- MyUSB 1.3.0.zip
- MyUSB 1.3.1.zip
- MyUSB 1.3.2.zip
- MyUSB 1.4.0.zip
- MyUSB 1.4.1.zip
- MyUSB 1.5.0.zip
Documentation:
Delicious
Digg
Furl
StumbleUpon


