LUFA (Formerly MyUSB) (2009)
LUFA (Lightweight USB Framework for AVRs) is 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 permissive MIT License (see documentation or project source for full license details). Currently, the AT90USB1286, AT90USB1287, AT90USB646, AT90USB647, AT90USB162, AT90USB82, ATMEGA16U4 and ATMEGA32U4 AVR microcontrollers are supported by the library. Supported boards are the USBKEY, STK525, STK526, ATAVRUSBRF01 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.
LUFA 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, STK526 and RZUSBSTICK boards:
- Audio In Device
- Audio Out Device
- CDC Device
- CDC Host
- Dual CDC
- General Library Test Application
- Joystick Device
- Keyboard Device
- Keyboard and Mouse Device
- Keyboard Host
- Mass Storage Device
- Mass Storage Host
- MIDI Device
- Mouse Device
- Mouse Host
- RNDIS (CDC) Ethernet
- Still Image Host
- USB-RS232 Device (based on CDC Device demo)
LUFA 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)
- HID Class Bootloader, compatible with the Teensy protocol (Teensy Loader compatible)
The following open source project source code is included in the LUFA package:
- Denver Gingerich's Stripe Snoop compatible Magnetic Stripe reader
LUFA 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
- ARPS Locator
- Lightweight CC110x USB dongle for 868MHz Protocols
- AVROpendous, an open design/source AT90USB162 development board
- USB Interface for Playstation Portable Devices
- USB to Serial Bridge, via SPI and I2C
- Teensy, another tiny AT90USB162 development board
- SEGA Megadrive/Genesis Development Cartridge
- CAMTRIG, a remote Camera Trigger device
- Opendous-JTAG, an open source JTAG device
- Openkubus, an open source hardware-based authentication dongle
Project Links:
Download:
- LUFA 090605.zip (Latest Official Release)
- LUFA 090510.zip
- LUFA 090401.zip
- LUFA 090209.zip
- LUFA 081217.zip
- MyUSB 1.5.3.zip
- MyUSB 1.5.2.zip
- MyUSB 1.5.1.zip
- MyUSB 1.5.0.zip
- MyUSB 1.4.1.zip
- MyUSB 1.4.0.zip
- MyUSB 1.3.2.zip
- MyUSB 1.3.1.zip
- MyUSB 1.3.0.zip
- MyUSB 1.2.0.zip
- MyUSB 1.1.0.zip
- MyUSB 1.0.2.zip
Documentation:
- LUFA 090605 Documentation.zip (Online Version)
- LUFA 090510 Documentation.zip (Online Version)
- LUFA 090401 Documentation.zip (Online Version)
- LUFA 090209 Documentation.zip (Online Version)
- LUFA 081217 Documentation.zip (Online Version)
- MyUSB 1.5.3 Documentation.zip (Online Version)
- MyUSB 1.5.2 Documentation.zip (Online Version)
- MyUSB 1.5.1 Documentation.zip (Online Version)
- MyUSB 1.5.0 Documentation.zip (Online Version)
|
|
| Subscribe to LUFA (Formerly MyUSB) Support List Group |
| Visit this group |
Delicious
Digg
Furl
StumbleUpon

