LUFA Library  120219
Included Library Applications

The LUFA library ships with several different host and device demos, located in the /Demos/ subdirectory. Within this directory the demos are separated by USB mode (Device, Host, OTG) and further separated by the use or non-use of the library USB Class drivers (which abstract out the actual implementation of the USB classes to simplify development even further at the expense of a loss of flexibility).

With one or two exceptions (e.g. proprietary classes such as RNDIS) all the included demos will work across all OSes without the need for special drivers. On Windows, some demos require the supplied .INF file to be used as the device driver, which directs the OS to use its inbuilt class drivers for the device.

Also included with the library are two fully functional bootloaders, located in the /Bootloaders/ subdirectory. The DFU class bootloader is compatible with Atmel's FLIP software or the open source dfu-programmer project, while the CDC class (AVR109 protocol) is compatible with such open source software as AVRDUDE and AVR-OSP.

User-submitted projects are located in the /Projects/ subdirectory. If you wish to have your LUFA project included, please email it to the Library author.

Overview of Included Library Applications

The following shows the folder structure of the included library applications, including demos, bootloaders and user-submitted open source projects.

  • Demos
    • Device
      • ClassDriver
        • AudioInput - Audio In (microphone) demo, using the library USB Audio Class driver framework
        • AudioOutput - Audio Out (speaker) demo, using the library USB Audio Class driver framework
        • DualVirtualSerial - Dual Virtual Serial Port demo, using the library USB CDC Class driver framework
        • GenericHID - Generic Human Interface Class demo, using the library USB HID Class driver framework
        • Joystick - USB Joystick demo, using the library USB HID Class driver framework
        • Keyboard - USB Keyboard demo, using the library USB HID Class driver framework
        • KeyboardMouse - Dual Keyboard/Mouse demo, using the library USB HID Class driver framework
        • KeyboardMouseMultiReport - Multi HID report Keyboard/Mouse demo, using the library USB HID Class driver framework
        • MassStorage - Dual Drive Mass Storage demo, using the library USB Mass Storage Class driver framework
        • MassStorageKeyboard - Mass Storage and Keyboard demo, using the library USB Mass Storage/HID Class driver frameworks
        • MIDI - MIDI In demo, using the library USB MIDI-Audio Class driver framework
        • Mouse - USB Mouse demo, using the library USB HID driver framework
        • RNDISEthernet - RNDIS Ethernet Webserver demo, using the library USB RNDIS driver framework
        • VirtualSerial - Virtual Serial Port demo, using the library USB CDC Class driver framework
        • VirtualSerialMassStorage - Virtual Serial Port and Mass Storage demo, using the library USB CDC and Mass Storage Class driver frameworks
        • VirtualSerialMouse - Virtual Serial Port and Mouse demo, using the library USB CDC and HID Class driver frameworks
      • LowLevel
        • AudioInput - Audio In (microphone) demo, using the low level LUFA APIs to implement the USB Audio class
        • AudioOutput - Audio Out (speaker) demo, using the low level LUFA APIs to implement the USB Audio class
        • DualVirtualSerial - Dual Virtual Serial Port demo, using the low level LUFA APIs to implement the USB CDC class
        • GenericHID - Generic Human Interface Class demo, using the low level LUFA APIs to implement the USB HID class
        • Joystick - USB Joystick demo, using the low level LUFA APIs to implement the USB HID class
        • Keyboard - USB Keyboard demo, using the low level LUFA APIs to implement the USB HID class
        • KeyboardMouse - Dual Keyboard/Mouse demo, using the low level LUFA APIs to implement the USB HID class
        • MassStorage - Dual Drive Mass Storage demo, using the low level LUFA APIs to implement the USB Mass Storage class
        • MIDI - MIDI In demo, using the low level LUFA APIs to implement the USB MIDI-Audio class
        • Mouse - USB Mouse demo, using the low level LUFA APIs to implement the USB HID class
        • RNDISEthernet - RNDIS Ethernet Webserver demo, using the low level LUFA APIs to implement the USB RNDIS class
        • VirtualSerial - Virtual Serial Port demo, using the low level LUFA APIs to implement the USB CDC class
      • Incomplete
        • SideShow - Incomplete Windows SideShow demo, using the low level LUFA APIs to implement the USB SideShow class
        • TestAndMeasurement - Incomplete Test and Measurement demo, using the low level LUFA APIs to implement the USB Test and Measurement class
    • Host
      • ClassDriver
        • AndroidAccessoryHost - Android Accessory host demo, using the library USB Android Open Accessory Class driver framework
        • AudioInputHost - Audio Input host demo, using the library USB Audio Class driver framework
        • AudioOutputHost - Audio Output host demo, using the library USB Audio Class driver framework
        • JoystickHostWithParser - Joystick host demo with HID Descriptor parser, using the library USB HID Class driver framework
        • KeyboardHost - USB Keyboard host demo, using the library USB HID Class driver framework
        • KeyboardHostWithParser - USB Keyboard host demo with HID Descriptor parser, using the library USB HID Class driver framework
        • MassStorageHost - Mass Storage host demo, using the library USB Mass Storage Class driver framework
        • MouseHost - Mouse host demo, using the library USB HID Class driver framework
        • MouseHostWithParser - Mouse host demo with HID Descriptor parser, using the library USB HID Class driver framework
        • RNDISHost - RNDIS Ethernet host demo, using the library USB RNDIS Class driver framework
        • StillImageHost - Still Image Camera host demo, using the library USB Still Image Class driver framework
        • VirtualSerialHost - Virtual Serial Port host demo, using the library USB CDC Class driver framework
      • LowLevel
        • AndroidAccessoryHost - Android Accessory host demo, using the low level LUFA APIs to implement the Android Open Accessory class
        • AudioInputHost - Audio Input host demo, using the low level LUFA APIs to implement the USB Audio class
        • AudioOutputHost - Audio Output host demo, using the low level LUFA APIs to implement the USB Audio class
        • GenericHIDHost - Generic HID host demo, using the low level LUFA APIs to implement the USB HID class
        • JoystickHostWithParser - Joystick host demo with HID Descriptor parser, using the low level LUFA APIs to implement the USB HID class
        • KeyboardHost - USB Keyboard host demo, using the low level LUFA APIs to implement the USB HID class
        • KeyboardHostWithParser - USB Keyboard host demo with HID Descriptor parser, using the low level LUFA APIs to implement the USB HID class
        • MassStorageHost - Mass Storage host demo, using the low level LUFA APIs to implement the USB Mass Storage class
        • MouseHost - Mouse host demo, using the low level LUFA APIs to implement the USB HID class
        • MouseHostWithParser - Mouse host demo with HID Descriptor parser, using the low level LUFA APIs to implement the USB HID class
        • PrinterHost - Printer host demo, using the low level LUFA APIs to implement the USB Printer class
        • RNDISHost - RNDIS Ethernet host demo, using the low level LUFA APIs to implement the RNDIS class
        • StillImageHost - Still Image Camera host demo, using the low level LUFA APIs to implement the USB Still Image class
        • VirtualSerialHost - Virtual Serial Port host demo, using the low level LUFA APIs to implement the USB CDC class
      • Incomplete
        • BluetoothHost - Incomplete Bluetooth host demo, using the low level LUFA APIs to implement the USB Bluetooth class
    • DualRole
      • ClassDriver
        • MouseHostDevice - Dual role Mouse Host and Mouse Device demo, using the library USB CDC Class driver framework
  • Bootloaders
    • CDC - CDC Class USB bootloader, compatible with any AVR910 protocol programming software such as AVRDude
    • DFU - DFU Class USB bootloader, compatible with Atmel's FLIP and the open source dfu-programmer software
    • HID - HID Class USB bootloader, compatible with a modified PJRC TeensyHID protocol loader application software
  • Projects
    • AVRISP-MKII - AVRISP-MKII Programmer Clone project
    • Benito - Benito Board Arduino Programmer project
    • HIDReportViewer - HID Device Report Viewer project
    • LEDNotifier - USB LED Notification project
    • Magstripe - Magnetic Stripe Card Reader project
    • MediaController - Media Playback Controller project
    • MIDIToneGenerator - MIDI Note Tone Generator project
    • MissileLaucher - Toy Missile Launcher Host project
    • RelayBoard - Relay board controller, controllable via the "sismpctl" Linux application
    • TempDataLogger - Temperature Datalogging project, using the FatFS library
    • USBtoSerial - USB to USART Serial Converter project
    • Webserver - RNDIS Host Webserver with DHCP client, powered by uIP TCP/IP stack project and FatFS library
    • XPLAINBridge - XPLAIN alternative PDI Programmer/USB to Serial Bridge firmware project
    • Incomplete
      • StandaloneProgrammer - Incomplete Standalone AVR Programmer application, to program AVRs directly from a Mass Storage disk

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines