| LUFA Library 140302 |

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
LUFA Library Documentation
Logo design by Studio Monsoon Photography

http://www.lufa-lib.org

LUFA is donationware. For author and donation information, see Donating to Support This Project.

LUFA is an open-source USB library for the USB-enabled AVR microcontrollers, released under the MIT license (see Source Code License). It supports a large number of USB AVR models and boards (see Device and Hardware Support). It is designed to provide an easy to use, feature rich framework for the development of USB peripherals and hosts.

LUFA focuses on the microcontroller side of USB development only; it includes no PC host USB driver development facilities - other projects such as the Windows Driver Development Kit, Windows USB Device Mode Framework and libusb may be of interest for developing custom OS drivers. While custom USB devices can be made with LUFA using such tools, the included demos all use the inbuilt OS drivers for each USB class for simplicity.

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, see the blog link at Library Resources.

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 (see Library Resources).

The only required AVR peripherals for LUFA is the USB controller itself and interrupts - LUFA does not require the use of the microcontroller's timers or other hardware, leaving more hardware to the application developer.

Accompanying LUFA in the download package is a set of example demo applications, plus several Bootloaders of different classes and open source LUFA powered projects.

Subsections:

- Source Code License - Project source license and commercial use information
- Donating to Support This Project - Donating to support this project
- Device and Hardware Support - Current Device and Hardware Support
- Project Changelog - Project Changelog
- Known Issues - Known Issues
- Future Changes - Planned Changes to the Library
- Getting Started - Getting started with LUFA
- Developing With LUFA - Developing with LUFA
- User Projects Powered by LUFA - Other Projects Using LUFA
- Library Resources - LUFA and USB Related Resources