Merge in latest trunk.
authorDean Camera <dean@fourwalledcubicle.com>
Sun, 20 May 2012 15:43:51 +0000 (15:43 +0000)
committerDean Camera <dean@fourwalledcubicle.com>
Sun, 20 May 2012 15:43:51 +0000 (15:43 +0000)
103 files changed:
1  2 
Bootloaders/CDC/BootloaderCDC.txt
Bootloaders/CDC/makefile
Bootloaders/DFU/BootloaderDFU.txt
Bootloaders/DFU/makefile
Bootloaders/HID/makefile
Demos/Device/ClassDriver/AudioInput/AudioInput.txt
Demos/Device/ClassDriver/AudioInput/makefile
Demos/Device/ClassDriver/AudioOutput/AudioOutput.txt
Demos/Device/ClassDriver/AudioOutput/makefile
Demos/Device/ClassDriver/DualVirtualSerial/makefile
Demos/Device/ClassDriver/GenericHID/GenericHID.txt
Demos/Device/ClassDriver/GenericHID/makefile
Demos/Device/ClassDriver/Joystick/makefile
Demos/Device/ClassDriver/Keyboard/makefile
Demos/Device/ClassDriver/KeyboardMouse/makefile
Demos/Device/ClassDriver/KeyboardMouseMultiReport/makefile
Demos/Device/ClassDriver/MIDI/makefile
Demos/Device/ClassDriver/MassStorage/MassStorage.txt
Demos/Device/ClassDriver/MassStorage/makefile
Demos/Device/ClassDriver/MassStorageKeyboard/MassStorageKeyboard.txt
Demos/Device/ClassDriver/MassStorageKeyboard/makefile
Demos/Device/ClassDriver/Mouse/makefile
Demos/Device/ClassDriver/RNDISEthernet/RNDISEthernet.txt
Demos/Device/ClassDriver/RNDISEthernet/makefile
Demos/Device/ClassDriver/VirtualSerial/makefile
Demos/Device/ClassDriver/VirtualSerialMassStorage/VirtualSerialMassStorage.txt
Demos/Device/ClassDriver/VirtualSerialMassStorage/makefile
Demos/Device/ClassDriver/VirtualSerialMouse/makefile
Demos/Device/Incomplete/Sideshow/makefile
Demos/Device/Incomplete/TestAndMeasurement/makefile
Demos/Device/LowLevel/AudioInput/AudioInput.txt
Demos/Device/LowLevel/AudioInput/makefile
Demos/Device/LowLevel/AudioOutput/AudioOutput.txt
Demos/Device/LowLevel/AudioOutput/makefile
Demos/Device/LowLevel/DualVirtualSerial/makefile
Demos/Device/LowLevel/GenericHID/GenericHID.txt
Demos/Device/LowLevel/GenericHID/makefile
Demos/Device/LowLevel/Joystick/makefile
Demos/Device/LowLevel/Keyboard/makefile
Demos/Device/LowLevel/KeyboardMouse/makefile
Demos/Device/LowLevel/MIDI/makefile
Demos/Device/LowLevel/MassStorage/MassStorage.txt
Demos/Device/LowLevel/MassStorage/makefile
Demos/Device/LowLevel/Mouse/makefile
Demos/Device/LowLevel/RNDISEthernet/RNDISEthernet.txt
Demos/Device/LowLevel/RNDISEthernet/makefile
Demos/Device/LowLevel/VirtualSerial/makefile
Demos/DualRole/ClassDriver/MouseHostDevice/makefile
Demos/Host/ClassDriver/AndroidAccessoryHost/makefile
Demos/Host/ClassDriver/AudioInputHost/makefile
Demos/Host/ClassDriver/AudioOutputHost/AudioOutputHost.txt
Demos/Host/ClassDriver/AudioOutputHost/makefile
Demos/Host/ClassDriver/JoystickHostWithParser/makefile
Demos/Host/ClassDriver/KeyboardHost/makefile
Demos/Host/ClassDriver/KeyboardHostWithParser/makefile
Demos/Host/ClassDriver/MIDIHost/makefile
Demos/Host/ClassDriver/MassStorageHost/makefile
Demos/Host/ClassDriver/MouseHost/makefile
Demos/Host/ClassDriver/MouseHostWithParser/makefile
Demos/Host/ClassDriver/PrinterHost/makefile
Demos/Host/ClassDriver/RNDISEthernetHost/makefile
Demos/Host/ClassDriver/StillImageHost/makefile
Demos/Host/ClassDriver/VirtualSerialHost/makefile
Demos/Host/LowLevel/AndroidAccessoryHost/makefile
Demos/Host/LowLevel/AudioInputHost/makefile
Demos/Host/LowLevel/AudioOutputHost/AudioOutputHost.txt
Demos/Host/LowLevel/AudioOutputHost/makefile
Demos/Host/LowLevel/GenericHIDHost/makefile
Demos/Host/LowLevel/JoystickHostWithParser/makefile
Demos/Host/LowLevel/KeyboardHost/makefile
Demos/Host/LowLevel/KeyboardHostWithParser/makefile
Demos/Host/LowLevel/MIDIHost/makefile
Demos/Host/LowLevel/MassStorageHost/makefile
Demos/Host/LowLevel/MouseHost/makefile
Demos/Host/LowLevel/MouseHostWithParser/makefile
Demos/Host/LowLevel/PrinterHost/makefile
Demos/Host/LowLevel/RNDISEthernetHost/makefile
Demos/Host/LowLevel/StillImageHost/makefile
Demos/Host/LowLevel/VirtualSerialHost/makefile
Projects/AVRISP-MKII/AVRISP-MKII.txt
Projects/AVRISP-MKII/Config/AppConfig.h
Projects/AVRISP-MKII/Config/LUFAConfig.h
Projects/AVRISP-MKII/Descriptors.h
Projects/AVRISP-MKII/makefile
Projects/Benito/Benito.txt
Projects/Benito/makefile
Projects/HIDReportViewer/makefile
Projects/LEDNotifier/makefile
Projects/MIDIToneGenerator/MIDIToneGenerator.txt
Projects/MIDIToneGenerator/makefile
Projects/Magstripe/Magstripe.txt
Projects/Magstripe/makefile
Projects/MediaController/makefile
Projects/MissileLauncher/makefile
Projects/RelayBoard/makefile
Projects/SerialToLCD/makefile
Projects/TempDataLogger/TemperatureDataLogger.txt
Projects/TempDataLogger/makefile
Projects/USBtoSerial/makefile
Projects/Webserver/Webserver.txt
Projects/Webserver/makefile
Projects/XPLAINBridge/XPLAINBridge.txt
Projects/XPLAINBridge/makefile

   *
   *  The following list indicates what microcontrollers are compatible with this demo.
   *
-  *  - Series 7 USB AVRs (AT90USBxxx7)
-  *  - Series 6 USB AVRs (AT90USBxxx6)
-  *  - Series 4 USB AVRs (ATMEGAxxU4)
-  *  - Series 2 USB AVRs (AT90USBxx2, ATMEGAxxU2)
+  *  \li Series 7 USB AVRs (AT90USBxxx7)
+  *  \li Series 6 USB AVRs (AT90USBxxx6)
+  *  \li Series 4 USB AVRs (ATMEGAxxU4)
+  *  \li Series 2 USB AVRs (AT90USBxx2, ATMEGAxxU2)
   *
   *  \section Sec_Info USB Information:
   *
@@@ -37,7 -37,7 +37,7 @@@
   *    <td>USBIF CDC Class Standard</td>
   *   </tr>
   *   <tr>
-  *    <td><b>Usable Speeds:</b></td>
+  *    <td><b>Supported USB Speeds:</b></td>
   *    <td>Full Speed Mode</td>
   *   </tr>
   *  </table>
@@@ -98,7 -98,7 +98,7 @@@
   *  #define BOOTLOADER_API_TABLE_SIZE          32
   *  #define BOOTLOADER_API_TABLE_START         ((FLASHEND + 1UL) - BOOTLOADER_API_TABLE_SIZE)
   *  #define BOOTLOADER_API_CALL(Index)         (void*)((BOOTLOADER_API_TABLE_START + (Index * 2)) / 2)
-  *
+  *  
   *  void    (*BootloaderAPI_ErasePage)(uint32_t Address)               = BOOTLOADER_API_CALL(0);
   *  void    (*BootloaderAPI_WritePage)(uint32_t Address)               = BOOTLOADER_API_CALL(1);
   *  void    (*BootloaderAPI_FillWord)(uint32_t Address, uint16_t Word) = BOOTLOADER_API_CALL(2);
   *  uint8_t (*BootloaderAPI_ReadFuse)(uint16_t Address)                = BOOTLOADER_API_CALL(4);
   *  uint8_t (*BootloaderAPI_ReadLock)(void)                            = BOOTLOADER_API_CALL(5);
   *  void    (*BootloaderAPI_WriteLock)(uint8_t LockBits)               = BOOTLOADER_API_CALL(6);
-  *
+  *  
   *  #define BOOTLOADER_MAGIC_SIGNATURE_START   (BOOTLOADER_API_TABLE_START + (BOOTLOADER_API_TABLE_SIZE - 2))
   *  #define BOOTLOADER_MAGIC_SIGNATURE         0xDCFB
-  *
+  *  
   *  #define BOOTLOADER_CLASS_SIGNATURE_START   (BOOTLOADER_API_TABLE_START + (BOOTLOADER_API_TABLE_SIZE - 4))
   *  #define BOOTLOADER_CDC_SIGNATURE           0xCDC1
-  *
+  *  
   *  #define BOOTLOADER_ADDRESS_START           (BOOTLOADER_API_TABLE_START + (BOOTLOADER_API_TABLE_SIZE - 8))
   *  #define BOOTLOADER_ADDRESS_LENGTH          4
   *  \endcode
   *
+  *  \subsection SSec_API_MemLayout Device Memory Map
+  *  The following illustration indicates the final memory map of the device when loaded with the bootloader.
+  *
+  *  \verbatim
+  *  +----------------------------+ 0x0000
+  *  |                            |
+  *  |                            |
+  *  |                            |
+  *  |                            |
+  *  |                            |
+  *  |                            |
+  *  |                            |
+  *  |                            |
+  *  |      User Application      |
+  *  |                            |
+  *  |                            |
+  *  |                            |
+  *  |                            |
+  *  |                            |
+  *  |                            |
+  *  |                            |
+  *  +----------------------------+ FLASHEND - BOOT_SECTION_SIZE
+  *  |                            |
+  *  |   Bootloader Application   |
+  *  | (Not User App. Accessible) |
+  *  |                            |
+  *  +----------------------------+ FLASHEND - 96
+  *  |   API Table Trampolines    |
+  *  | (Not User App. Accessible) |
+  *  +----------------------------+ FLASHEND - 32
+  *  |    Bootloader API Table    |
+  *  |   (User App. Accessible)   |
+  *  +----------------------------+ FLASHEND - 8
+  *  |   Bootloader ID Constants  |
+  *  |   (User App. Accessible)   |
+  *  +----------------------------+ FLASHEND
+  *  \endverbatim
+  *
   *  Bootloaders reporting a device release revision number of 1.00 or greater are bootloader API enabled. From the application
   *  the API support of the bootloader can be detected by reading the FLASH memory bytes located at address \c BOOTLOADER_MAGIC_SIGNATURE_START
   *  and comparing them to the value \c BOOTLOADER_MAGIC_SIGNATURE. The class of bootloader can be determined by reading the
   *   </tr>
   *   <tr>
   *    <td>NO_BLOCK_SUPPORT</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>Define to disable memory block read/write support in the bootloader, requiring all reads and writes to be made
   *        using the byte-level commands.</td>
   *   </tr>
   *   <tr>
   *    <td>NO_EEPROM_BYTE_SUPPORT</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>Define to disable EEPROM memory byte read/write support in the bootloader, requiring all EEPROM reads and writes
   *        to be made using the block-level commands.</td>
   *   </tr>
   *   <tr>
   *    <td>NO_FLASH_BYTE_SUPPORT</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>Define to disable FLASH memory byte read/write support in the bootloader, requiring all FLASH reads and writes
   *        to be made using the block-level commands.</td>
   *   </tr>
   *   <tr>
   *    <td>NO_LOCK_BYTE_WRITE_SUPPORT</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>Define to disable lock byte write support in the bootloader, preventing the lock bits from being set programmatically.</td>
   *   </tr>
   *  </table>
diff --combined Bootloaders/CDC/makefile
@@@ -124,7 -124,22 +124,7 @@@ LUFA_PATH = ../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D DEVICE_STATE_AS_GPIOR=0
 -LUFA_OPTS += -D ORDERED_EP_CONFIG
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_RAM_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 -LUFA_OPTS += -D NO_INTERNAL_SERIAL
 -LUFA_OPTS += -D NO_DEVICE_SELF_POWER
 -LUFA_OPTS += -D NO_DEVICE_REMOTE_WAKEUP
 -LUFA_OPTS += -D NO_SOF_EVENTS
 -
 -#LUFA_OPTS += -D NO_BLOCK_SUPPORT
 -#LUFA_OPTS += -D NO_EEPROM_BYTE_SUPPORT
 -#LUFA_OPTS += -D NO_FLASH_BYTE_SUPPORT
 -#LUFA_OPTS += -D NO_LOCK_BYTE_WRITE_SUPPORT
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -169,7 -184,7 +169,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -679,7 -694,7 +679,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
   *
   *  The following list indicates what microcontrollers are compatible with this demo.
   *
-  *  - Series 7 USB AVRs (AT90USBxxx7)
-  *  - Series 6 USB AVRs (AT90USBxxx6)
-  *  - Series 4 USB AVRs (ATMEGAxxU4)
-  *  - Series 2 USB AVRs (AT90USBxx2, ATMEGAxxU2)
+  *  \li Series 7 USB AVRs (AT90USBxxx7)
+  *  \li Series 6 USB AVRs (AT90USBxxx6)
+  *  \li Series 4 USB AVRs (ATMEGAxxU4)
+  *  \li Series 2 USB AVRs (AT90USBxx2, ATMEGAxxU2)
   *
   *  \section Sec_Info USB Information:
   *
@@@ -37,7 -37,7 +37,7 @@@
   *   <td>USBIF DFU Class Standard, Atmel USB Bootloader Datasheet</td>
   *  </tr>
   *  <tr>
-  *   <td><b>Usable Speeds:</b></td>
+  *   <td><b>Supported USB Speeds:</b></td>
   *   <td>Full Speed Mode</td>
   *  </tr>
   * </table>
   *  #define BOOTLOADER_API_TABLE_SIZE          32
   *  #define BOOTLOADER_API_TABLE_START         ((FLASHEND + 1UL) - BOOTLOADER_API_TABLE_SIZE)
   *  #define BOOTLOADER_API_CALL(Index)         (void*)((BOOTLOADER_API_TABLE_START + (Index * 2)) / 2)
-  *
+  *  
   *  void    (*BootloaderAPI_ErasePage)(uint32_t Address)               = BOOTLOADER_API_CALL(0);
   *  void    (*BootloaderAPI_WritePage)(uint32_t Address)               = BOOTLOADER_API_CALL(1);
   *  void    (*BootloaderAPI_FillWord)(uint32_t Address, uint16_t Word) = BOOTLOADER_API_CALL(2);
   *  uint8_t (*BootloaderAPI_ReadFuse)(uint16_t Address)                = BOOTLOADER_API_CALL(4);
   *  uint8_t (*BootloaderAPI_ReadLock)(void)                            = BOOTLOADER_API_CALL(5);
   *  void    (*BootloaderAPI_WriteLock)(uint8_t LockBits)               = BOOTLOADER_API_CALL(6);
-  *
+  *  
   *  #define BOOTLOADER_MAGIC_SIGNATURE_START   (BOOTLOADER_API_TABLE_START + (BOOTLOADER_API_TABLE_SIZE - 2))
   *  #define BOOTLOADER_MAGIC_SIGNATURE         0xDCFB
-  *
+  *  
   *  #define BOOTLOADER_CLASS_SIGNATURE_START   (BOOTLOADER_API_TABLE_START + (BOOTLOADER_API_TABLE_SIZE - 4))
   *  #define BOOTLOADER_CDC_SIGNATURE           0xDFB1
-  *
+  *  
   *  #define BOOTLOADER_ADDRESS_START           (BOOTLOADER_API_TABLE_START + (BOOTLOADER_API_TABLE_SIZE - 8))
   *  #define BOOTLOADER_ADDRESS_LENGTH          4
   *  \endcode
   *  to the value \c BOOTLOADER_CDC_SIGNATURE. The start address of the bootloader can be retrieved by reading the bytes of FLASH
   *  memory starting from address \c BOOTLOADER_ADDRESS_START.
   *
+  *  \subsection SSec_API_MemLayout Device Memory Map
+  *  The following illustration indicates the final memory map of the device when loaded with the bootloader.
+  *
+  *  \verbatim
+  *  +----------------------------+ 0x0000
+  *  |                            |
+  *  |                            |
+  *  |                            |
+  *  |                            |
+  *  |                            |
+  *  |                            |
+  *  |                            |
+  *  |                            |
+  *  |      User Application      |
+  *  |                            |
+  *  |                            |
+  *  |                            |
+  *  |                            |
+  *  |                            |
+  *  |                            |
+  *  |                            |
+  *  +----------------------------+ FLASHEND - BOOT_SECTION_SIZE
+  *  |                            |
+  *  |   Bootloader Application   |
+  *  | (Not User App. Accessible) |
+  *  |                            |
+  *  +----------------------------+ FLASHEND - 96
+  *  |   API Table Trampolines    |
+  *  | (Not User App. Accessible) |
+  *  +----------------------------+ FLASHEND - 32
+  *  |    Bootloader API Table    |
+  *  |   (User App. Accessible)   |
+  *  +----------------------------+ FLASHEND - 8
+  *  |   Bootloader ID Constants  |
+  *  |   (User App. Accessible)   |
+  *  +----------------------------+ FLASHEND
+  *  \endverbatim
+  *
   *  \section Sec_Options Project Options
   *
   *  The following defines can be found in this demo, which can control the demo behaviour when defined, or changed in value.
   *   </tr>
   *   <tr>
   *    <td>SECURE_MODE</td>
 - *    <td>BootloaderDFU.h</td>
 - *    <td>If defined to true, the bootloader will not accept any memory commands other than a chip erase on start-up, until an
 + *    <td>AppConfig.h</td>
 + *    <td>If defined to \c true, the bootloader will not accept any memory commands other than a chip erase on start-up, until an
   *        erase has been performed. This can be used in conjunction with the AVR's lockbits to prevent the AVRs firmware from
 - *        being dumped by unauthorized persons.</td>
 + *        being dumped by unauthorized persons. When false, all memory operations are allowed at any time.</td>
   *   </tr>
   *  </table>
   */
diff --combined Bootloaders/DFU/makefile
@@@ -124,7 -124,17 +124,7 @@@ LUFA_PATH = ../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D DEVICE_STATE_AS_GPIOR=0
 -LUFA_OPTS += -D CONTROL_ONLY_DEVICE
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=32
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_RAM_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 -LUFA_OPTS += -D NO_INTERNAL_SERIAL
 -LUFA_OPTS += -D NO_DEVICE_SELF_POWER
 -LUFA_OPTS += -D NO_DEVICE_REMOTE_WAKEUP
 -LUFA_OPTS += -D NO_SOF_EVENTS
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -169,7 -179,7 +169,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -679,7 -689,7 +679,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
diff --combined Bootloaders/HID/makefile
@@@ -122,7 -122,17 +122,7 @@@ LUFA_PATH = ../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D DEVICE_STATE_AS_GPIOR=0
 -LUFA_OPTS += -D ORDERED_EP_CONFIG
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_RAM_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 -LUFA_OPTS += -D NO_INTERNAL_SERIAL
 -LUFA_OPTS += -D NO_DEVICE_SELF_POWER
 -LUFA_OPTS += -D NO_DEVICE_REMOTE_WAKEUP
 -LUFA_OPTS += -D NO_SOF_EVENTS
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -166,7 -176,7 +166,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -676,7 -686,7 +676,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -10,9 -10,9 +10,9 @@@
   *
   *  The following list indicates what microcontrollers are compatible with this demo.
   *
-  *  - Series 7 USB AVRs (AT90USBxxx7)
-  *  - Series 6 USB AVRs (AT90USBxxx6)
-  *  - Series 4 USB AVRs (ATMEGAxxU4)
+  *  \li Series 7 USB AVRs (AT90USBxxx7)
+  *  \li Series 6 USB AVRs (AT90USBxxx6)
+  *  \li Series 4 USB AVRs (ATMEGAxxU4)
   *
   *  \section Sec_Info USB Information:
   *
@@@ -38,7 -38,7 +38,7 @@@
   *        USBIF Audio 1.0 Data Formats Specification</td>
   *   </tr>
   *   <tr>
-  *    <td><b>Usable Speeds:</b></td>
+  *    <td><b>Supported USB Speeds:</b></td>
   *    <td>Full Speed Mode</td>
   *   </tr>
   *  </table>
   *    <td><b>Description:</b></td>
   *   </tr>
   *   <tr>
 + *    <td>MIC_IN_ADC_CHANNEL</td>
 + *    <td>AppConfig.h</td>
 + *    <td>Sets the ADC channel used by the demo for the input audio samples from an attached microphone.</td>
 + *   </tr>
 + *   <tr>
   *    <td>USE_TEST_TONE</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>When defined, this alters the demo to produce a square wave test tone when the first board button is pressed
   *        instead of sampling the board microphone.</td>
   *   </tr>
   *   <tr>
   *    <td>MICROPHONE_BIASED_TO_HALF_RAIL</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>When defined, this alters the demo so that the half VCC bias of the microphone input is subtracted.</td>
   *   </tr>
   *  </table>
@@@ -120,7 -120,14 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 -
 -LUFA_OPTS += -D MICROPHONE_BIASED_TO_HALF_RAIL
 -LUFA_OPTS += -D USE_TEST_TONE
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -165,7 -172,7 +165,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -691,7 -698,7 +691,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -10,9 -10,9 +10,9 @@@
   *
   *  The following list indicates what microcontrollers are compatible with this demo.
   *
-  *  - Series 7 USB AVRs (AT90USBxxx7)
-  *  - Series 6 USB AVRs (AT90USBxxx6)
-  *  - Series 4 USB AVRs (ATMEGAxxU4)
+  *  \li Series 7 USB AVRs (AT90USBxxx7)
+  *  \li Series 6 USB AVRs (AT90USBxxx6)
+  *  \li Series 4 USB AVRs (ATMEGAxxU4)
   *
   *  \section Sec_Info USB Information:
   *
@@@ -38,7 -38,7 +38,7 @@@
   *        USBIF Audio 1.0 Data Formats Specification</td>
   *   </tr>
   *   <tr>
-  *    <td><b>Usable Speeds:</b></td>
+  *    <td><b>Supported USB Speeds:</b></td>
   *    <td>Full Speed Mode</td>
   *   </tr>
   *  </table>
   *   </tr>
   *   <tr>
   *    <td>AUDIO_OUT_STEREO</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>When defined, this outputs the audio samples in stereo to the timer output pins of the microcontroller.</td>
   *   </tr>
   *   <tr>
   *    <td>AUDIO_OUT_MONO</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>When defined, this outputs the audio samples in mono to the timer output pin of the microcontroller.</td>
   *   </tr>
   *   <tr>
   *    <td>AUDIO_OUT_PORTC</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>When defined, this outputs the audio samples in mono to port C of the microcontroller, for connection to an
   *        external DAC.</td>
   *   </tr>
@@@ -120,7 -120,15 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 -
 -LUFA_OPTS += -D AUDIO_OUT_STEREO
 -#LUFA_OPTS += -D AUDIO_OUT_MONO
 -#LUFA_OPTS += -D AUDIO_OUT_PORTC
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -165,7 -173,7 +165,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -691,7 -699,7 +691,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,11 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -165,7 -169,7 +165,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -691,7 -695,7 +691,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
   *
   *  The following list indicates what microcontrollers are compatible with this demo.
   *
-  *  - Series 7 USB AVRs (AT90USBxxx7)
-  *  - Series 6 USB AVRs (AT90USBxxx6)
-  *  - Series 4 USB AVRs (ATMEGAxxU4)
-  *  - Series 2 USB AVRs (AT90USBxx2, ATMEGAxxU2)
+  *  \li Series 7 USB AVRs (AT90USBxxx7)
+  *  \li Series 6 USB AVRs (AT90USBxxx6)
+  *  \li Series 4 USB AVRs (ATMEGAxxU4)
+  *  \li Series 2 USB AVRs (AT90USBxx2, ATMEGAxxU2)
   *
   *  \section Sec_Info USB Information:
   *
@@@ -38,7 -38,7 +38,7 @@@
   *        USBIF HID Usage Tables</td>
   *   </tr>
   *   <tr>
-  *    <td><b>Usable Speeds:</b></td>
+  *    <td><b>Supported USB Speeds:</b></td>
   *    <td>Low Speed Mode \n
   *        Full Speed Mode</td>
   *   </tr>
@@@ -67,9 -67,9 +67,9 @@@
   *   </tr>
   *   <tr>
   *    <td>GENERIC_REPORT_SIZE</td>
 - *    <td>Descriptors.h</td>
 - *    <td>This token defines the size of the device reports, both sent and received. The value must be an
 - *        integer ranging from 1 to 255.</td>
 + *    <td>AppConfig.h</td>
 + *    <td>This token defines the size of the device reports, both sent and received (including report ID byte). The value 
 + *        must be an integer ranging from 1 to 255.</td>
   *   </tr>
   *  </table>
   */
@@@ -120,7 -120,11 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -165,7 -169,7 +165,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -691,7 -695,7 +691,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,11 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -165,7 -169,7 +165,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -691,7 -695,7 +691,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,11 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -165,7 -169,7 +165,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -691,7 -695,7 +691,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,11 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -165,7 -169,7 +165,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -691,7 -695,7 +691,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,11 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -165,7 -169,7 +165,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -691,7 -695,7 +691,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,11 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -165,7 -169,7 +165,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -691,7 -695,7 +691,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
   *
   *  The following list indicates what microcontrollers are compatible with this demo.
   *
-  *  - Series 7 USB AVRs (AT90USBxxx7)
-  *  - Series 6 USB AVRs (AT90USBxxx6)
-  *  - Series 4 USB AVRs (ATMEGAxxU4)
-  *  - Series 2 USB AVRs (AT90USBxx2, ATMEGAxxU2)
+  *  \li Series 7 USB AVRs (AT90USBxxx7)
+  *  \li Series 6 USB AVRs (AT90USBxxx6)
+  *  \li Series 4 USB AVRs (ATMEGAxxU4)
+  *  \li Series 2 USB AVRs (AT90USBxx2, ATMEGAxxU2)
   *
   *  \section Sec_Info USB Information:
   *
@@@ -40,7 -40,7 +40,7 @@@
   *        SCSI Block Commands Specification</td>
   *   </tr>
   *   <tr>
-  *    <td><b>Usable Speeds:</b></td>
+  *    <td><b>Supported USB Speeds:</b></td>
   *    <td>Full Speed Mode</td>
   *   </tr>
   *  </table>
   *   </tr>
   *   <tr>
   *    <td>TOTAL_LUNS</td>
 - *    <td>MassStorage.h</td>
 + *    <td>AppConfig.h</td>
   *    <td>Total number of Logical Units (drives) in the device. The total device capacity is shared equally between each drive -
   *        this can be set to any positive non-zero amount.</td>
   *   </tr>
 + *   <tr>
 + *    <td>DISK_READ_ONLY</td>
 + *    <td>AppConfig.h</td>
 + *    <td>Configuration define, indicating if the disk should be write protected or not.</td>
 + *   </tr>
   *  </table>
   */
  
@@@ -172,7 -172,7 +172,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -698,7 -698,7 +698,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
   *
   *  The following list indicates what microcontrollers are compatible with this demo.
   *
-  *  - Series 7 USB AVRs (AT90USBxxx7)
-  *  - Series 6 USB AVRs (AT90USBxxx6)
-  *  - Series 4 USB AVRs (ATMEGAxxU4)
-  *  - Series 2 USB AVRs (AT90USBxx2, ATMEGAxxU2)
+  *  \li Series 7 USB AVRs (AT90USBxxx7)
+  *  \li Series 6 USB AVRs (AT90USBxxx6)
+  *  \li Series 4 USB AVRs (ATMEGAxxU4)
+  *  \li Series 2 USB AVRs (AT90USBxx2, ATMEGAxxU2)
   *
   *  \section Sec_Info USB Information:
   *
@@@ -44,7 -44,7 +44,7 @@@
   *        USBIF HID Usage Tables</td>
   *   </tr>
   *   <tr>
-  *    <td><b>Usable Speeds:</b></td>
+  *    <td><b>Supported USB Speeds:</b></td>
   *    <td>Full Speed Mode</td>
   *   </tr>
   *  </table>
   *   </tr>
   *   <tr>
   *    <td>TOTAL_LUNS</td>
 - *    <td>MassStorage.h</td>
 + *    <td>AppConfig.h</td>
   *    <td>Total number of Logical Units (drives) in the device. The total device capacity is shared equally between each drive -
   *        this can be set to any positive non-zero amount.</td>
   *   </tr>
 - *  </table>
 + *   <tr>
 + *    <td>DISK_READ_ONLY</td>
 + *    <td>AppConfig.h</td>
 + *    <td>Configuration define, indicating if the disk should be write protected or not.</td>
 + *   </tr>
   */
  
@@@ -120,7 -120,12 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 -LUFA_OPTS += -D INTERRUPT_CONTROL_ENDPOINT
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -167,7 -172,7 +167,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -693,7 -698,7 +693,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,11 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -165,7 -169,7 +165,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -691,7 -695,7 +691,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -10,8 -10,8 +10,8 @@@
   *
   *  The following list indicates what microcontrollers are compatible with this demo.
   *
-  *  - Series 7 USB AVRs (AT90USBxxx7)
-  *  - Series 6 USB AVRs (AT90USBxxx6)
+  *  \li Series 7 USB AVRs (AT90USBxxx7)
+  *  \li Series 6 USB AVRs (AT90USBxxx6)
   *
   *  \section Sec_Info USB Information:
   *
@@@ -35,7 -35,7 +35,7 @@@
   *    <td>Microsoft RNDIS Specification</td>
   *   </tr>
   *   <tr>
-  *    <td><b>Usable Speeds:</b></td>
+  *    <td><b>Supported USB Speeds:</b></td>
   *    <td>Full Speed Mode</td>
   *   </tr>
   *  </table>
   *    <td><b>Description:</b></td>
   *   </tr>
   *   <tr>
 + *    <td>CLIENT_IP_ADDRESS</td>
 + *    <td>AppConfig.h</td>
 + *    <td>Configures the IP address given to the client (PC) via the DHCP server.</td>
 + *   </tr>
 + *   <tr>
 + *    <td>SERVER_IP_ADDRESS</td>
 + *    <td>AppConfig.h</td>
 + *    <td>Configures the IP address of the virtual server.</td>
 + *   </tr>
 + *   <tr>
 + *    <td>ADAPTER_MAC_ADDRESS</td>
 + *    <td>AppConfig.h</td>
 + *    <td>Configures the MAC address of the RNDIS adapter on the host (PC) side.</td>
 + *   </tr>
 + *   <tr>
 + *    <td>SERVER_MAC_ADDRESS</td>
 + *    <td>AppConfig.h</td>
 + *    <td>Configures the MAC address of the virtual server on the network.</td>
 + *   </tr>
 + *   <tr>
   *    <td>NO_DECODE_ETHERNET</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>When defined, received Ethernet headers will not be decoded and printed to the device serial port.</td>
   *   </tr>
   *   <tr>
   *    <td>NO_DECODE_ARP</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>When defined, received ARP headers will not be decoded and printed to the device serial port.</td>
   *   </tr>
   *   <tr>
   *    <td>NO_DECODE_IP</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>When defined, received IP headers will not be decoded and printed to the device serial port.</td>
   *   </tr>
   *   <tr>
   *    <td>NO_DECODE_ICMP</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>When defined, received ICMP headers will not be decoded and printed to the device serial port.</td>
   *   </tr>
   *   <tr>
   *    <td>NO_DECODE_TCP</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>When defined, received TCP headers will not be decoded and printed to the device serial port.</td>
   *   </tr>
   *   <tr>
   *    <td>NO_DECODE_UDP</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>When defined, received UDP headers will not be decoded and printed to the device serial port.</td>
   *   </tr>
   *   <tr>
   *    <td>NO_DECODE_DHCP</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>When defined, received DHCP headers will not be decoded and printed to the device serial port.</td>
   *   </tr>
   *  </table>
@@@ -120,7 -120,19 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 -
 -LUFA_OPTS += -D NO_DECODE_ETHERNET
 -LUFA_OPTS += -D NO_DECODE_ARP
 -LUFA_OPTS += -D NO_DECODE_IP
 -LUFA_OPTS += -D NO_DECODE_ICMP
 -LUFA_OPTS += -D NO_DECODE_TCP
 -LUFA_OPTS += -D NO_DECODE_UDP
 -LUFA_OPTS += -D NO_DECODE_DHCP
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -175,7 -187,7 +175,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -701,7 -713,7 +701,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,11 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -165,7 -169,7 +165,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -691,7 -695,7 +691,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -10,9 -10,9 +10,9 @@@
   *
   *  The following list indicates what microcontrollers are compatible with this demo.
   *
-  *  - Series 7 USB AVRs (AT90USBxxx7)
-  *  - Series 6 USB AVRs (AT90USBxxx6)
-  *  - Series 4 USB AVRs (ATMEGAxxU4)
+  *  \li Series 7 USB AVRs (AT90USBxxx7)
+  *  \li Series 6 USB AVRs (AT90USBxxx6)
+  *  \li Series 4 USB AVRs (ATMEGAxxU4)
   *
   *  \section Sec_Info USB Information:
   *
@@@ -42,7 -42,7 +42,7 @@@
   *        SCSI Block Commands Specification</td>
   *   </tr>
   *   <tr>
-  *    <td><b>Usable Speeds:</b></td>
+  *    <td><b>Supported USB Speeds:</b></td>
   *    <td>Full Speed Mode</td>
   *   </tr>
   *  </table>
   *   </tr>
   *   <tr>
   *    <td>TOTAL_LUNS</td>
 - *    <td>MassStorage.h</td>
 + *    <td>AppConfig.h</td>
   *    <td>Total number of Logical Units (drives) in the device. The total device capacity is shared equally between each drive -
   *        this can be set to any positive non-zero amount.</td>
   *   </tr>
 - *  </table>
 + *   <tr>
 + *    <td>DISK_READ_ONLY</td>
 + *    <td>AppConfig.h</td>
 + *    <td>Configuration define, indicating if the disk should be write protected or not.</td>
 + *   </tr>
   */
  
@@@ -120,7 -120,11 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -167,7 -171,7 +167,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -693,7 -697,7 +693,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,11 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -165,7 -169,7 +165,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -691,7 -695,7 +691,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,11 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -169,7 -173,7 +169,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -695,7 -699,7 +695,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,12 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 -LUFA_OPTS += -D INTERRUPT_CONTROL_ENDPOINT
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -164,7 -169,7 +164,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -690,7 -695,7 +690,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -10,9 -10,9 +10,9 @@@
   *
   *  The following list indicates what microcontrollers are compatible with this demo.
   *
-  *  - Series 7 USB AVRs (AT90USBxxx7)
-  *  - Series 6 USB AVRs (AT90USBxxx6)
-  *  - Series 4 USB AVRs (ATMEGAxxU4)
+  *  \li Series 7 USB AVRs (AT90USBxxx7)
+  *  \li Series 6 USB AVRs (AT90USBxxx6)
+  *  \li Series 4 USB AVRs (ATMEGAxxU4)
   *
   *  \section Sec_Info USB Information:
   *
@@@ -38,7 -38,7 +38,7 @@@
   *        USBIF Audio 1.0 Data Formats Specification</td>
   *   </tr>
   *   <tr>
-  *    <td><b>Usable Speeds:</b></td>
+  *    <td><b>Supported USB Speeds:</b></td>
   *    <td>Full Speed Mode</td>
   *   </tr>
   *  </table>
   *   </tr>
   *   <tr>
   *    <td>USE_TEST_TONE</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>When defined, this alters the demo to produce a square wave test tone when the first board button is pressed
   *        instead of sampling the board microphone.</td>
   *   </tr>
   *   <tr>
   *    <td>MICROPHONE_BIASED_TO_HALF_RAIL</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>When defined, this alters the demo so that the half VCC bias of the microphone input is subtracted.</td>
   *   </tr>
   *  </table>
@@@ -120,7 -120,14 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 -
 -LUFA_OPTS += -D MICROPHONE_BIASED_TO_HALF_RAIL
 -LUFA_OPTS += -D USE_TEST_TONE
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -164,7 -171,7 +164,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -690,7 -697,7 +690,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -10,9 -10,9 +10,9 @@@
   *
   *  The following list indicates what microcontrollers are compatible with this demo.
   *
-  *  - Series 7 USB AVRs (AT90USBxxx7)
-  *  - Series 6 USB AVRs (AT90USBxxx6)
-  *  - Series 4 USB AVRs (ATMEGAxxU4)
+  *  \li Series 7 USB AVRs (AT90USBxxx7)
+  *  \li Series 6 USB AVRs (AT90USBxxx6)
+  *  \li Series 4 USB AVRs (ATMEGAxxU4)
   *
   *  \section Sec_Info USB Information:
   *
@@@ -38,7 -38,7 +38,7 @@@
   *        USBIF Audio 1.0 Data Formats Specification</td>
   *   </tr>
   *   <tr>
-  *    <td><b>Usable Speeds:</b></td>
+  *    <td><b>Supported USB Speeds:</b></td>
   *    <td>Full Speed Mode</td>
   *   </tr>
   *  </table>
   *   </tr>
   *   <tr>
   *    <td>AUDIO_OUT_STEREO</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>When defined, this outputs the audio samples in stereo to the timer output pins of the microcontroller.</td>
   *   </tr>
   *   <tr>
   *    <td>AUDIO_OUT_MONO</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>When defined, this outputs the audio samples in mono to the timer output pin of the microcontroller.</td>
   *   </tr>
   *   <tr>
   *    <td>AUDIO_OUT_PORTC</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>When defined, this outputs the audio samples in mono to port C of the microcontroller, for connection to an
   *        external DAC.</td>
   *   </tr>
@@@ -120,7 -120,15 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 -
 -LUFA_OPTS += -D AUDIO_OUT_STEREO
 -#LUFA_OPTS += -D AUDIO_OUT_MONO
 -#LUFA_OPTS += -D AUDIO_OUT_PORTC
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -164,7 -172,7 +164,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -690,7 -698,7 +690,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,11 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -164,7 -168,7 +164,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -690,7 -694,7 +690,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
   *
   *  The following list indicates what microcontrollers are compatible with this demo.
   *
-  *  - Series 7 USB AVRs (AT90USBxxx7)
-  *  - Series 6 USB AVRs (AT90USBxxx6)
-  *  - Series 4 USB AVRs (ATMEGAxxU4)
-  *  - Series 2 USB AVRs (AT90USBxx2, ATMEGAxxU2)
+  *  \li Series 7 USB AVRs (AT90USBxxx7)
+  *  \li Series 6 USB AVRs (AT90USBxxx6)
+  *  \li Series 4 USB AVRs (ATMEGAxxU4)
+  *  \li Series 2 USB AVRs (AT90USBxx2, ATMEGAxxU2)
   *
   *  \section Sec_Info USB Information:
   *
@@@ -38,7 -38,7 +38,7 @@@
   *        USBIF HID Usage Tables</td>
   *   </tr>
   *   <tr>
-  *    <td><b>Usable Speeds:</b></td>
+  *    <td><b>Supported USB Speeds:</b></td>
   *    <td>Low Speed Mode \n
   *        Full Speed Mode</td>
   *   </tr>
@@@ -67,9 -67,9 +67,9 @@@
   *   </tr>
   *   <tr>
   *    <td>GENERIC_REPORT_SIZE</td>
 - *    <td>Descriptors.h</td>
 - *    <td>This token defines the size of the device reports, both sent and received. The value must be an
 - *        integer ranging from 1 to 255.</td>
 + *    <td>AppConfig.h</td>
 + *    <td>This token defines the size of the device reports, both sent and received (including report ID byte). The value 
 + *        must be an integer ranging from 1 to 255.</td>
   *   </tr>
   *  </table>
   */
@@@ -120,7 -120,11 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -164,7 -168,7 +164,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -690,7 -694,7 +690,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,11 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -164,7 -168,7 +164,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -690,7 -694,7 +690,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,11 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -164,7 -168,7 +164,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -690,7 -694,7 +690,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,11 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -164,7 -168,7 +164,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -690,7 -694,7 +690,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,11 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -164,7 -168,7 +164,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -690,7 -694,7 +690,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
   *
   *  The following list indicates what microcontrollers are compatible with this demo.
   *
-  *  - Series 7 USB AVRs (AT90USBxxx7)
-  *  - Series 6 USB AVRs (AT90USBxxx6)
-  *  - Series 4 USB AVRs (ATMEGAxxU4)
-  *  - Series 2 USB AVRs (AT90USBxx2, ATMEGAxxU2)
+  *  \li Series 7 USB AVRs (AT90USBxxx7)
+  *  \li Series 6 USB AVRs (AT90USBxxx6)
+  *  \li Series 4 USB AVRs (ATMEGAxxU4)
+  *  \li Series 2 USB AVRs (AT90USBxx2, ATMEGAxxU2)
   *
   *  \section Sec_Info USB Information:
   *
@@@ -40,7 -40,7 +40,7 @@@
   *        SCSI Block Commands Specification</td>
   *   </tr>
   *   <tr>
-  *    <td><b>Usable Speeds:</b></td>
+  *    <td><b>Supported USB Speeds:</b></td>
   *    <td>Full Speed Mode</td>
   *   </tr>
   *  </table>
   *   </tr>
   *   <tr>
   *    <td>TOTAL_LUNS</td>
 - *    <td>MassStorage.h</td>
 + *    <td>AppConfig.h</td>
   *    <td>Total number of Logical Units (drives) in the device. The total device capacity is shared equally between each drive
   *        - this can be set to any positive non-zero amount.</td>
   *   </tr>
 + *   <tr>
 + *    <td>DISK_READ_ONLY</td>
 + *    <td>AppConfig.h</td>
 + *    <td>Indicates if the disk should be write protected or not.</td>
 + *   </tr>
   *  </table>
   */
  
@@@ -120,7 -120,12 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 -LUFA_OPTS += -D INTERRUPT_CONTROL_ENDPOINT
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -166,7 -171,7 +166,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -692,7 -697,7 +692,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,11 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -164,7 -168,7 +164,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -690,7 -694,7 +690,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -10,8 -10,8 +10,8 @@@
   *
   *  The following list indicates what microcontrollers are compatible with this demo.
   *
-  *  - Series 7 USB AVRs (AT90USBxxx7)
-  *  - Series 6 USB AVRs (AT90USBxxx6)
+  *  \li Series 7 USB AVRs (AT90USBxxx7)
+  *  \li Series 6 USB AVRs (AT90USBxxx6)
   *
   *  \section Sec_Info USB Information:
   *
@@@ -35,7 -35,7 +35,7 @@@
   *    <td>Microsoft RNDIS Specification</td>
   *   </tr>
   *   <tr>
-  *    <td><b>Usable Speeds:</b></td>
+  *    <td><b>Supported USB Speeds:</b></td>
   *    <td>Full Speed Mode</td>
   *   </tr>
   *  </table>
   *    <td><b>Description:</b></td>
   *   </tr>
   *   <tr>
 + *    <td>CLIENT_IP_ADDRESS</td>
 + *    <td>AppConfig.h</td>
 + *    <td>Configures the IP address given to the client (PC) via the DHCP server.</td>
 + *   </tr>
 + *   <tr>
 + *    <td>SERVER_IP_ADDRESS</td>
 + *    <td>AppConfig.h</td>
 + *    <td>Configures the IP address of the virtual server.</td>
 + *   </tr>
 + *   <tr>
 + *    <td>ADAPTER_MAC_ADDRESS</td>
 + *    <td>AppConfig.h</td>
 + *    <td>Configures the MAC address of the RNDIS adapter on the host (PC) side.</td>
 + *   </tr>
 + *   <tr>
 + *    <td>SERVER_MAC_ADDRESS</td>
 + *    <td>AppConfig.h</td>
 + *    <td>Configures the MAC address of the virtual server on the network.</td>
 + *   </tr>
 + *   <tr>
   *    <td>NO_DECODE_ETHERNET</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>When defined, received Ethernet headers will not be decoded and printed to the device serial port.</td>
   *   </tr>
   *   <tr>
   *    <td>NO_DECODE_ARP</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>When defined, received ARP headers will not be decoded and printed to the device serial port.</td>
   *   </tr>
   *   <tr>
   *    <td>NO_DECODE_IP</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>When defined, received IP headers will not be decoded and printed to the device serial port.</td>
   *   </tr>
   *   <tr>
   *    <td>NO_DECODE_ICMP</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>When defined, received ICMP headers will not be decoded and printed to the device serial port.</td>
   *   </tr>
   *   <tr>
   *    <td>NO_DECODE_TCP</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>When defined, received TCP headers will not be decoded and printed to the device serial port.</td>
   *   </tr>
   *   <tr>
   *    <td>NO_DECODE_UDP</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>When defined, received UDP headers will not be decoded and printed to the device serial port.</td>
   *   </tr>
   *   <tr>
   *    <td>NO_DECODE_DHCP</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>When defined, received DHCP headers will not be decoded and printed to the device serial port.</td>
   *   </tr>
   *  </table>
@@@ -120,7 -120,19 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 -
 -LUFA_OPTS += -D NO_DECODE_ETHERNET
 -LUFA_OPTS += -D NO_DECODE_ARP
 -LUFA_OPTS += -D NO_DECODE_IP
 -LUFA_OPTS += -D NO_DECODE_ICMP
 -LUFA_OPTS += -D NO_DECODE_TCP
 -LUFA_OPTS += -D NO_DECODE_UDP
 -LUFA_OPTS += -D NO_DECODE_DHCP
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -175,7 -187,7 +175,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -701,7 -713,7 +701,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,11 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -164,7 -168,7 +164,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -690,7 -694,7 +690,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,10 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS += -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -168,7 -171,7 +168,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -694,7 -697,7 +694,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,9 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_HOST_ONLY
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 -LUFA_OPTS += -D HOST_DEVICE_SETTLE_DELAY_MS=0
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -165,7 -167,7 +165,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -691,7 -693,7 +691,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,8 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_HOST_ONLY
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -165,7 -166,7 +165,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -691,7 -692,7 +691,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -10,7 -10,7 +10,7 @@@
   *
   *  The following list indicates what microcontrollers are compatible with this demo.
   *
-  *  - Series 7 USB AVRs (AT90USBxxx7)
+  *  \li Series 7 USB AVRs (AT90USBxxx7)
   *
   *  \section Sec_Info USB Information:
   *
@@@ -36,7 -36,7 +36,7 @@@
   *        USBIF Audio 1.0 Data Formats Specification</td>
   *   </tr>
   *   <tr>
-  *    <td><b>Usable Speeds:</b></td>
+  *    <td><b>Supported USB Speeds:</b></td>
   *    <td>Full Speed Mode</td>
   *   </tr>
   *  </table>
   *    <td><b>Description:</b></td>
   *   </tr>
   *   <tr>
 + *    <td>MIC_IN_ADC_CHANNEL</td>
 + *    <td>AppConfig.h</td>
 + *    <td>Sets the ADC channel used by the demo for the input audio samples from an attached microphone.</td>
 + *   </tr>
 + *   <tr>
   *    <td>USE_TEST_TONE</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>When defined, this alters the demo to produce a square wave test tone when the first board button is pressed
   *        instead of sampling the board microphone.</td>
   *   </tr>
   *   <tr>
   *    <td>MICROPHONE_BIASED_TO_HALF_RAIL</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>When defined, this alters the demo so that the half VCC bias of the microphone input is subtracted.</td>
   *   </tr>
   *  </table>
@@@ -120,7 -120,11 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_HOST_ONLY
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 -
 -LUFA_OPTS += -D MICROPHONE_BIASED_TO_HALF_RAIL
 -LUFA_OPTS += -D USE_TEST_TONE
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -165,7 -169,7 +165,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -691,7 -695,7 +691,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,8 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_HOST_ONLY
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -165,7 -166,7 +165,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -691,7 -692,7 +691,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,8 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_HOST_ONLY
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -165,7 -166,7 +165,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -691,7 -692,7 +691,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,8 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_HOST_ONLY
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -165,7 -166,7 +165,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -691,7 -692,7 +691,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,8 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_HOST_ONLY
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -165,7 -166,7 +165,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -691,7 -692,7 +691,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,9 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_HOST_ONLY
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 -LUFA_OPTS += -D USB_STREAM_TIMEOUT_MS=5000
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -165,7 -167,7 +165,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -691,7 -693,7 +691,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,8 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_HOST_ONLY
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -165,7 -166,7 +165,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -691,7 -692,7 +691,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,8 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_HOST_ONLY
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -165,7 -166,7 +165,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -691,7 -692,7 +691,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,8 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_HOST_ONLY
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -165,7 -166,7 +165,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -691,7 -692,7 +691,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,8 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_HOST_ONLY
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -165,7 -166,7 +165,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -691,7 -692,7 +691,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,8 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_HOST_ONLY
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -165,7 -166,7 +165,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -691,7 -692,7 +691,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,8 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_HOST_ONLY
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -165,7 -166,7 +165,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -691,7 -692,7 +691,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,9 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_HOST_ONLY
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 -LUFA_OPTS += -D HOST_DEVICE_SETTLE_DELAY_MS=0
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -167,7 -169,7 +167,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -693,7 -695,7 +693,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,8 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_HOST_ONLY
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -165,7 -166,7 +165,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -691,7 -692,7 +691,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -10,7 -10,7 +10,7 @@@
   *
   *  The following list indicates what microcontrollers are compatible with this demo.
   *
-  *  - Series 7 USB AVRs (AT90USBxxx7)
+  *  \li Series 7 USB AVRs (AT90USBxxx7)
   *
   *  \section Sec_Info USB Information:
   *
@@@ -36,7 -36,7 +36,7 @@@
   *        USBIF Audio 1.0 Data Formats Specification</td>
   *   </tr>
   *   <tr>
-  *    <td><b>Usable Speeds:</b></td>
+  *    <td><b>Supported USB Speeds:</b></td>
   *    <td>Full Speed Mode</td>
   *   </tr>
   *  </table>
   *    <td><b>Description:</b></td>
   *   </tr>
   *   <tr>
 + *    <td>MIC_IN_ADC_CHANNEL</td>
 + *    <td>AppConfig.h</td>
 + *    <td>Sets the ADC channel used by the demo for the input audio samples from an attached microphone.</td>
 + *   </tr>
 + *   <tr>
   *    <td>USE_TEST_TONE</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>When defined, this alters the demo to produce a square wave test tone when the first board button is pressed
   *        instead of sampling the board microphone.</td>
   *   </tr>
   *   <tr>
   *    <td>MICROPHONE_BIASED_TO_HALF_RAIL</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>When defined, this alters the demo so that the half VCC bias of the microphone input is subtracted.</td>
   *   </tr>
   *  </table>
@@@ -120,7 -120,11 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_HOST_ONLY
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 -
 -LUFA_OPTS += -D MICROPHONE_BIASED_TO_HALF_RAIL
 -LUFA_OPTS += -D USE_TEST_TONE
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -165,7 -169,7 +165,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -691,7 -695,7 +691,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,8 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_HOST_ONLY
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -165,7 -166,7 +165,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -691,7 -692,7 +691,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,8 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_HOST_ONLY
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -166,7 -167,7 +166,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -692,7 -693,7 +692,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,8 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_HOST_ONLY
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -165,7 -166,7 +165,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -691,7 -692,7 +691,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,8 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_HOST_ONLY
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -166,7 -167,7 +166,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -692,7 -693,7 +692,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,8 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_HOST_ONLY
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -165,7 -166,7 +165,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -691,7 -692,7 +691,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,9 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_HOST_ONLY
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 -LUFA_OPTS += -D USB_STREAM_TIMEOUT_MS=5000
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -166,7 -168,7 +166,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -692,7 -694,7 +692,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,8 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_HOST_ONLY
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -165,7 -166,7 +165,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -691,7 -692,7 +691,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,8 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_HOST_ONLY
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -166,7 -167,7 +166,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -692,7 -693,7 +692,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,8 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_HOST_ONLY
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -166,7 -167,7 +166,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -692,7 -693,7 +692,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,8 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_HOST_ONLY
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -166,7 -167,7 +166,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -692,7 -693,7 +692,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,8 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_HOST_ONLY
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -166,7 -167,7 +166,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -692,7 -693,7 +692,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,8 +120,7 @@@ LUFA_PATH = ../../../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_HOST_ONLY
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -165,7 -166,7 +165,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -691,7 -692,7 +691,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
   *
   *  The following list indicates what microcontrollers are compatible with this project.
   *
-  *  - Series 7 USB AVRs (AT90USBxxx7)
-  *  - Series 6 USB AVRs (AT90USBxxx6)
-  *  - Series 4 USB AVRs (ATMEGAxxU4)
-  *  - Series 2 USB AVRs (AT90USBxx2, ATMEGAxxU2) - <i>8KB versions with reduced features only</i>
+  *  \li Series 7 USB AVRs (AT90USBxxx7)
+  *  \li Series 6 USB AVRs (AT90USBxxx6)
+  *  \li Series 4 USB AVRs (ATMEGAxxU4)
+  *  \li Series 2 USB AVRs (AT90USBxx2, ATMEGAxxU2) - <i>8KB versions with reduced features only</i>
   *
   *  \section Sec_Info USB Information:
   *
@@@ -37,7 -37,7 +37,7 @@@
   *   <td>Atmel AVRISP MKII Protocol Specification</td>
   *  </tr>
   *  <tr>
-  *   <td><b>Usable Speeds:</b></td>
+  *   <td><b>Supported USB Speeds:</b></td>
   *   <td>Full Speed Mode</td>
   *  </tr>
   * </table>
   *   </tr>
   *   <tr>
   *    <td>AUX_LINE_PORT</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>PORT register for the programmer's AUX target line. The use of this line varies between the programming protocols,
   *        but is generally used for the target's /RESET line.
   *        \n \n <i>Ignored when compiled for the XPLAIN board.</i></td>
   *   </tr>
   *   <tr>
   *    <td>AUX_LINE_PIN</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>PIN register for the programmer's AUX target line. The use of this line varies between the programming protocols,
   *        but is generally used for the target's /RESET line.
   *        \n \n <i>Ignored when compiled for the XPLAIN board.</i></td>
   *   </tr>
   *   <tr>
   *    <td>AUX_LINE_DDR</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>DDR register for the programmer's AUX target line. The use of this line varies between the programming protocols,
   *        but is generally used for the target's /RESET line.
   *        \n \n <i>Ignored when compiled for the XPLAIN board.</i></td>
   *   </tr>
   *   <tr>
   *    <td>AUX_LINE_MASK</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>Mask for the programmer's AUX target line. The use of this line varies between the programming protocols,
   *        but is generally used for the target's /RESET line. <b>Must not be the AVR's /SS pin</b>.
   *        \n \n <i>Ignored when compiled for the XPLAIN board.</i></td>
   *   </tr>
   *   <tr>
   *    <td>VTARGET_ADC_CHANNEL</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>ADC channel number (on supported AVRs) to use for VTARGET level detection, if NO_VTARGET_DETECT is not defined.
   *        \n \n <i>Ignored when compiled for targets lacking an ADC.</i></td>
   *   </tr>
   *   <tr>
   *    <td>ENABLE_ISP_PROTOCOL</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>Define to enable SPI programming protocol support.
   *        \n \n <i>Ignored when compiled for the XPLAIN board.</i></td>
   *   </tr>
   *   <tr>
   *    <td>ENABLE_XPROG_PROTOCOL</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>Define to enable PDI and TPI programming protocol support.
   *        \n \n <i>Ignored when compiled for the XPLAIN board.</i></td>
   *   </tr>
   *   <tr>
   *    <td>NO_VTARGET_DETECT</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>Define to disable VTARGET sampling and reporting on AVR models with an ADC converter. This will cause the programmer
   *        to report a fixed 3.3V target voltage to the host regardless of the real target voltage. 
   *        \n \n <i>Ignored when compiled for targets lacking an ADC.</i></td>
   *   </tr>
   *   <tr>
   *    <td>VTARGET_REF_VOLTS</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>Indicates the programmer AVR's AVCC reference voltage when measuring the target's supply voltage. Note that the supply
   *        voltage should never exceed the reference voltage on the programmer AVR without some form of protection to prevent damage
   *        to the ADC.
   *   </tr>
   *   <tr>
   *    <td>VTARGET_USE_INTERNAL_REF</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>Selects the internal 2.56V ADC reference voltage, instead of using the AVR's VREF pin. When enabled, this option will
   *        override the VTARGET_REF_VOLTS configuration option.
   *        \n \n <i>Ignored when compiled for targets lacking an ADC, or when NO_VTARGET_DETECT is defined.</i></td>
   *   </tr>
   *   <tr>
   *    <td>VTARGET_SCALE_FACTOR</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>Indicates the target's supply voltage scale factor when applied to the ADC. A simple resistive divider can be used on the
   *        ADC pin for measuring the target's supply voltage, so that voltages above the programmer AVR's AVCC reference voltage can be
   *        measured. This should be the reciprocal of the division performed - e.g. if the VTARGET voltage is halved, this should be set
   *   </tr>
   *   <tr>
   *    <td>LIBUSB_DRIVER_COMPAT</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>Define to switch to a non-standard endpoint scheme, breaking compatibility with AVRStudio under Windows but making
-  *        the code compatible with software such as avrdude (all platforms) that use the libUSB driver.</td>
+  *        the code compatible with software such as avrdude (all platforms) that use the libUSB driver.
+  *
+  *        \note This option is incompatible with \c RESET_TOGGLES_LIBUSB_COMPAT.</td>
+  *   </tr>
+  *   <tr>
+  *    <td>RESET_TOGGLES_LIBUSB_COMPAT</td>
 - *    <td>Makefile LUFA_OPTS</td>
++ *    <td>AppConfig.h</td>
+  *    <td>Define to make the /RESET line of the AVR toggle between Jungo and libUSB driver compatibility modes. Each time the AVR is
+  *        reset externally via the reset pin, the compatibility mode will be toggled. The compatibility mode is preserved between
+  *        power cycles and is not toggled via other forms of reset such as Watchdog or Brown Out.
+  *
+  *        \note This option is incompatible with \c LIBUSB_DRIVER_COMPAT.</td>
   *   </tr>
   *   <tr>
   *    <td>XCK_RESCUE_CLOCK_ENABLE</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>Define to move the ISP rescue clock to the AVR's XCK pin instead of the OCR1A output pin. This is useful for existing programming
   *        hardware that does not expose the OCR1A pin of the AVR, but <i>may</i> cause some issues with PDI programming mode.</td>
   *   </tr>
   *   <tr>
   *    <td>INVERTED_ISP_MISO</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>Define to invert the received data on the ISP MISO line. This is sometimes needed depending on the level translation hardware used,
   *        if the translator hardware inverts the received logic level.</td>
   *   </tr>
   *   <tr>
   *    <td>FIRMWARE_VERSION_MINOR</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>Define to set the minor firmware revision nunber reported to the host on request. By default this will use a firmware version compatible
   *        with the latest Atmel IDE version, however if desired the reported minor value can be adjusted here.</td>
   *   </tr>
index b7598a5,0000000..26198e3
mode 100644,000000..100644
--- /dev/null
@@@ -1,65 -1,0 +1,66 @@@
 +/*
 +             LUFA Library
 +     Copyright (C) Dean Camera, 2012.
 +
 +  dean [at] fourwalledcubicle [dot] com
 +           www.lufa-lib.org
 +*/
 +
 +/*
 +  Copyright 2012  Dean Camera (dean [at] fourwalledcubicle [dot] com)
 +
 +  Permission to use, copy, modify, distribute, and sell this
 +  software and its documentation for any purpose is hereby granted
 +  without fee, provided that the above copyright notice appear in
 +  all copies and that both that the copyright notice and this
 +  permission notice and warranty disclaimer appear in supporting
 +  documentation, and that the name of the author not be used in
 +  advertising or publicity pertaining to distribution of the
 +  software without specific, written prior permission.
 +
 +  The author disclaim all warranties with regard to this
 +  software, including all implied warranties of merchantability
 +  and fitness.  In no event shall the author be liable for any
 +  special, indirect or consequential damages or any damages
 +  whatsoever resulting from loss of use, data or profits, whether
 +  in an action of contract, negligence or other tortious action,
 +  arising out of or in connection with the use or performance of
 +  this software.
 +*/
 +
 +/** \file
 + *  \brief Application Configuration Header File
 + *
 + *  This is a header file which is be used to configure some of
 + *  the application's compile time options, as an alternative to
 + *  specifying the compile time constants supplied through a 
 + *  makefile or build system.
 + *
 + *  For information on what each token does, refer to the 
 + *  \ref Sec_Options section of the application documentation.
 + */
 +
 +#ifndef _APP_CONFIG_H_
 +#define _APP_CONFIG_H_
 +
 +      #define AUX_LINE_PORT              PORTB
 +      #define AUX_LINE_PIN               PINB
 +      #define AUX_LINE_DDR               DDRB
 +      #define AUX_LINE_MASK              (1 << 4)
 +
 +      #define ENABLE_ISP_PROTOCOL
 +      #define ENABLE_XPROG_PROTOCOL
 +
 +      #define VTARGET_ADC_CHANNEL        2
 +      #define VTARGET_REF_VOLTS          5
 +      #define VTARGET_SCALE_FACTOR       1
 +//    #define VTARGET_USE_INTERNAL_REF
 +//    #define NO_VTARGET_DETECT
 +//    #define XCK_RESCUE_CLOCK_ENABLE
 +//    #define INVERTED_ISP_MISO
 +
 +//    #define LIBUSB_DRIVER_COMPAT
++//    #define RESET_TOGGLES_LIBUSB_COMPAT
 +//    #define FIRMWARE_VERSION_MINOR     0x11
 +
 +#endif
index 0a7ca2a,0000000..2071bfd
mode 100644,000000..100644
--- /dev/null
@@@ -1,93 -1,0 +1,93 @@@
-               #define USE_FLASH_DESCRIPTORS
 +/*
 +             LUFA Library
 +     Copyright (C) Dean Camera, 2012.
 +
 +  dean [at] fourwalledcubicle [dot] com
 +           www.lufa-lib.org
 +*/
 +
 +/*
 +  Copyright 2012  Dean Camera (dean [at] fourwalledcubicle [dot] com)
 +
 +  Permission to use, copy, modify, distribute, and sell this
 +  software and its documentation for any purpose is hereby granted
 +  without fee, provided that the above copyright notice appear in
 +  all copies and that both that the copyright notice and this
 +  permission notice and warranty disclaimer appear in supporting
 +  documentation, and that the name of the author not be used in
 +  advertising or publicity pertaining to distribution of the
 +  software without specific, written prior permission.
 +
 +  The author disclaim all warranties with regard to this
 +  software, including all implied warranties of merchantability
 +  and fitness.  In no event shall the author be liable for any
 +  special, indirect or consequential damages or any damages
 +  whatsoever resulting from loss of use, data or profits, whether
 +  in an action of contract, negligence or other tortious action,
 +  arising out of or in connection with the use or performance of
 +  this software.
 +*/
 +
 +/** \file
 + *  \brief LUFA Library Configuration Header File
 + *
 + *  This header file is used to configure LUFA's compile time options,
 + *  as an alternative to the compile time constants supplied through
 + *  a makefile.
 + *
 + *  For information on what each token does, refer to the LUFA
 + *  manual section "Summary of Compile Tokens".
 + */
 +
 +#ifndef _LUFA_CONFIG_H_
 +#define _LUFA_CONFIG_H_
 +
 +      #if (ARCH == ARCH_AVR8)
 +
 +              /* Non-USB Related Configuration Tokens: */
 +//            #define DISABLE_TERMINAL_CODES
 +
 +              /* USB Class Driver Related Tokens: */
 +//            #define HID_HOST_BOOT_PROTOCOL_ONLY
 +//            #define HID_STATETABLE_STACK_DEPTH       {Insert Value Here}
 +//            #define HID_USAGE_STACK_DEPTH            {Insert Value Here}
 +//            #define HID_MAX_COLLECTIONS              {Insert Value Here}
 +//            #define HID_MAX_REPORTITEMS              {Insert Value Here}
 +//            #define HID_MAX_REPORT_IDS               {Insert Value Here}
 +//            #define NO_CLASS_DRIVER_AUTOFLUSH
 +
 +              /* General USB Driver Related Tokens: */
 +              #define ORDERED_EP_CONFIG
 +              #define USE_STATIC_OPTIONS               (USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)
 +              #define USB_DEVICE_ONLY
 +//            #define USB_HOST_ONLY
 +//            #define USB_STREAM_TIMEOUT_MS            {Insert Value Here}
 +//            #define NO_LIMITED_CONTROLLER_CONNECT
 +              #define NO_SOF_EVENTS
 +
 +              /* USB Device Mode Driver Related Tokens: */
 +//            #define USE_RAM_DESCRIPTORS
++//            #define USE_FLASH_DESCRIPTORS
 +//            #define USE_EEPROM_DESCRIPTORS
 +              #define NO_INTERNAL_SERIAL
 +              #define FIXED_CONTROL_ENDPOINT_SIZE      16
 +              #define DEVICE_STATE_AS_GPIOR            0
 +              #define FIXED_NUM_CONFIGURATIONS         1
 +//            #define CONTROL_ONLY_DEVICE
 +//            #define INTERRUPT_CONTROL_ENDPOINT
 +              #define NO_DEVICE_REMOTE_WAKEUP
 +              #define NO_DEVICE_SELF_POWER
 +
 +              /* USB Host Mode Driver Related Tokens: */
 +//            #define HOST_STATE_AS_GPIOR              {Insert Value Here}
 +//            #define USB_HOST_TIMEOUT_MS              {Insert Value Here}
 +//            #define HOST_DEVICE_SETTLE_DELAY_MS          {Insert Value Here}
 +//      #define NO_AUTO_VBUS_MANAGEMENT
 +//      #define INVERTED_VBUS_ENABLE_LINE
 +
 +      #else
 +
 +              #error Unsupported architecture for this LUFA configuration file.
 +
 +      #endif
 +#endif
                #include <avr/pgmspace.h>
  
                #include <LUFA/Drivers/USB/USB.h>
+               #include <LUFA/Drivers/Board/LEDs.h>
++              #include "Config/AppConfig.h"
++
+       /* Preprocessor Checks: */
+               #if defined(LIBUSB_DRIVER_COMPAT) && defined(RESET_TOGGLES_LIBUSB_COMPAT)
+                       #error LIBUSB_DRIVER_COMPAT and RESET_TOGGLES_LIBUSB_COMPAT are mutually exclusive.
+               #endif
  
        /* Macros: */
-               #if !defined(LIBUSB_DRIVER_COMPAT) || defined(__DOXYGEN__)
-                       /** Endpoint address of the AVRISP data OUT endpoint. */
-                       #define AVRISP_DATA_OUT_EPADDR     (ENDPOINT_DIR_OUT | 2)
+               /** Endpoint address of the AVRISP data OUT endpoint. */
+               #define AVRISP_DATA_OUT_EPADDR         (ENDPOINT_DIR_OUT | 2)
+               /** Endpoint address of the AVRISP data IN endpoint, when in Jungo driver compatibility mode. */
+               #define AVRISP_DATA_IN_EPADDR_JUNGO    (ENDPOINT_DIR_IN  | 2)
+               /** Endpoint address of the AVRISP data IN endpoint, when in LibUSB driver compatibility mode. */
+               #define AVRISP_DATA_IN_EPADDR_LIBUSB   (ENDPOINT_DIR_IN  | 3)
  
+               #if !defined(LIBUSB_DRIVER_COMPAT) || defined(__DOXYGEN__)
                        /** Endpoint address of the AVRISP data IN endpoint. */
-                       #define AVRISP_DATA_IN_EPADDR      (ENDPOINT_DIR_IN  | 2)
+                       #define AVRISP_DATA_IN_EPADDR      AVRISP_DATA_IN_EPADDR_JUNGO
+               #elif defined(RESET_TOGGLES_LIBUSB_COMPAT)
+                       #define AVRISP_DATA_IN_EPADDR      AVRISP_CurrDataINEndpointAddress
                #else
-                       #define AVRISP_DATA_OUT_EPADDR     (ENDPOINT_DIR_OUT | 2)
-                       #define AVRISP_DATA_IN_EPADDR      (ENDPOINT_DIR_IN  | 3)
+                       #define AVRISP_DATA_IN_EPADDR      AVRISP_DATA_IN_EPADDR_LIBUSB
                #endif
+               
                /** Size in bytes of the AVRISP data endpoint. */
                #define AVRISP_DATA_EPSIZE             64
  
                        USB_Descriptor_Endpoint_t                AVRISP_DataOutEndpoint;
                } USB_Descriptor_Configuration_t;
  
+       /* External Variables: */
+               #if defined(RESET_TOGGLES_LIBUSB_COMPAT)
+                       extern uint8_t AVRISP_CurrDataINEndpointAddress;
+               #endif
+               
        /* Function Prototypes: */
                uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
                                                    const uint8_t wIndex,
-                                                   const void** const DescriptorAddress)
-                                                   ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);
+                                                   const void** const DescriptorAddress,
+                                                                                       uint8_t* const DescriptorMemorySpace)
+                                                   ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3) ATTR_NON_NULL_PTR_ARG(4);
+               #if defined(RESET_TOGGLES_LIBUSB_COMPAT)
+               void CheckExternalReset(void) ATTR_NAKED ATTR_INIT_SECTION(3);
+               void UpdateCurrentCompatibilityMode(void);
+               #endif
  
  #endif
  
@@@ -120,7 -120,32 +120,7 @@@ LUFA_PATH = ../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D DEVICE_STATE_AS_GPIOR=0
 -LUFA_OPTS += -D ORDERED_EP_CONFIG
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=16
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 -LUFA_OPTS += -D NO_INTERNAL_SERIAL
 -LUFA_OPTS += -D NO_DEVICE_REMOTE_WAKEUP
 -LUFA_OPTS += -D NO_DEVICE_SELF_POWER
 -
 -LUFA_OPTS += -D AUX_LINE_PORT=PORTB
 -LUFA_OPTS += -D AUX_LINE_PIN=PINB
 -LUFA_OPTS += -D AUX_LINE_DDR=DDRB
 -LUFA_OPTS += -D AUX_LINE_MASK="(1 << 4)"
 -LUFA_OPTS += -D ENABLE_ISP_PROTOCOL
 -LUFA_OPTS += -D ENABLE_XPROG_PROTOCOL
 -LUFA_OPTS += -D VTARGET_ADC_CHANNEL=2
 -LUFA_OPTS += -D VTARGET_REF_VOLTS=5
 -LUFA_OPTS += -D VTARGET_SCALE_FACTOR=1
 -#LUFA_OPTS += -D VTARGET_USE_INTERNAL_REF
 -#LUFA_OPTS += -D NO_VTARGET_DETECT
 -#LUFA_OPTS += -D LIBUSB_DRIVER_COMPAT
 -#LUFA_OPTS += -D RESET_TOGGLES_LIBUSB_COMPAT
 -#LUFA_OPTS += -D XCK_RESCUE_CLOCK_ENABLE
 -#LUFA_OPTS += -D INVERTED_ISP_MISO
 -#LUFA_OPTS += -D FIRMWARE_VERSION_MINOR=0x11
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -172,7 -197,7 +172,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -699,7 -724,7 +699,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
   *
   *  The following list indicates what microcontrollers are compatible with this project.
   *
-  *  - Series 7 USB AVRs (AT90USBxxx7)
-  *  - Series 6 USB AVRs (AT90USBxxx6)
-  *  - Series 4 USB AVRs (ATMEGAxxU4)
-  *  - Series 2 USB AVRs (AT90USBxx2, ATMEGAxxU2)
+  *  \li Series 7 USB AVRs (AT90USBxxx7)
+  *  \li Series 6 USB AVRs (AT90USBxxx6)
+  *  \li Series 4 USB AVRs (ATMEGAxxU4)
+  *  \li Series 2 USB AVRs (AT90USBxx2, ATMEGAxxU2)
   *
   *  \section Sec_Info USB Information:
   *
@@@ -38,7 -38,7 +38,7 @@@
   *       Arduino Bootloader Specification</td>
   *  </tr>
   *  <tr>
-  *   <td><b>Usable Speeds:</b></td>
+  *   <td><b>Supported USB Speeds:</b></td>
   *   <td>Full Speed Mode</td>
   *  </tr>
   * </table>
   *   </tr>
   *   <tr>
   *    <td>AVR_RESET_LINE_PORT</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>Indicates the PORT register of the pin used to generate the target /RESET line pulse.</td>
   *   </tr>
   *   <tr>
   *    <td>AVR_RESET_LINE_DDR</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>Indicates the DDR register of the pin used to generate the target /RESET line pulse.</td>
   *   </tr>
   *   <tr>
   *    <td>AVR_RESET_LINE_MASK</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>Indicates the mask of the pin used to generate the target /RESET line pulse.</td>
   *   </tr>
   *   <tr>
   *    <td>AVR_RESET_PULSE_MS</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>Pulse length in milliseconds for the target /RESET pulse.</td>
   *   </tr>
   *   <tr>
   *    <td>TX_RX_LED_PULSE_MS</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>Pulse length in milliseconds for the activity Tx/Rx LEDs.</td>
   *   </tr>
   *   <tr>
   *    <td>PING_PONG_LED_PULSE_MS</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>Pulse length in milliseconds for the enumeration LED ping-ponging between toggles.</td>
   *   </tr>
   *   <tr>
   *    <td>RECEIVE_BUFFER_FLUSH_MS</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>Period between flushings of received data buffer to the attached USB host.</td>
   *   </tr>
   *  </table>
diff --combined Projects/Benito/makefile
@@@ -120,7 -120,22 +120,7 @@@ LUFA_PATH = ../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D DEVICE_STATE_AS_GPIOR=0
 -LUFA_OPTS += -D ORDERED_EP_CONFIG
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 -LUFA_OPTS += -D INTERRUPT_CONTROL_ENDPOINT
 -
 -LUFA_OPTS += -D AVR_RESET_LINE_PORT="PORTD"
 -LUFA_OPTS += -D AVR_RESET_LINE_DDR="DDRD"
 -LUFA_OPTS += -D AVR_RESET_LINE_MASK="(1 << 4)"
 -LUFA_OPTS += -D AVR_RESET_PULSE_MS=10
 -LUFA_OPTS += -D TX_RX_LED_PULSE_MS=30
 -LUFA_OPTS += -D PING_PONG_LED_PULSE_MS=100
 -LUFA_OPTS += -D RECEIVE_BUFFER_FLUSH_MS=10
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -165,7 -180,7 +165,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -691,7 -706,7 +691,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,8 +120,7 @@@ LUFA_PATH = ../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_HOST_ONLY
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -165,7 -166,7 +165,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -691,7 -692,7 +691,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,13 +120,7 @@@ LUFA_PATH = ../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D DEVICE_STATE_AS_GPIOR=0
 -LUFA_OPTS += -D ORDERED_EP_CONFIG
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -165,7 -171,7 +165,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -691,7 -697,7 +691,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -10,9 -10,9 +10,9 @@@
   *
   *  The following list indicates what microcontrollers are compatible with this project.
   *
-  *  - Series 7 USB AVRs (AT90USBxxx7)
-  *  - Series 6 USB AVRs (AT90USBxxx6)
-  *  - Series 4 USB AVRs (ATMEGAxxU4)
+  *  \li Series 7 USB AVRs (AT90USBxxx7)
+  *  \li Series 6 USB AVRs (AT90USBxxx6)
+  *  \li Series 4 USB AVRs (ATMEGAxxU4)
   *
   *  \section Sec_Info USB Information:
   *
@@@ -38,7 -38,7 +38,7 @@@
   *        General MIDI Specification</td>
   *   </tr>
   *   <tr>
-  *    <td><b>Usable Speeds:</b></td>
+  *    <td><b>Supported USB Speeds:</b></td>
   *    <td>Full Speed Mode</td>
   *   </tr>
   *  </table>
@@@ -64,7 -64,7 +64,7 @@@
   *   </tr>
   *   <tr>
   *    <td>MAX_SIMULTANEOUS_NOTES</td>
 - *    <td>MIDIToneGenerator.h</td>
 + *    <td>AppConfig.h</td>
   *    <td>Sets the maximum number of MIDI notes that can be generated simultaneously. More notes require more processing time,
   *        and thus a value that is too high will cause audiable sound distortion due to insufficient CPU time.</td>
   *   </tr>
@@@ -120,7 -120,13 +120,7 @@@ LUFA_PATH = ../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D DEVICE_STATE_AS_GPIOR=0
 -LUFA_OPTS += -D ORDERED_EP_CONFIG
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -165,7 -171,7 +165,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -691,7 -697,7 +691,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -10,8 -10,8 +10,8 @@@
   *
   *  The following list indicates what microcontrollers are compatible with this project.
   *
-  *  - AT90USB1287
-  *  - AT90USB1286
+  *  \li AT90USB1287
+  *  \li AT90USB1286
   *
   *  \section Sec_Info USB Information:
   *
@@@ -35,7 -35,7 +35,7 @@@
   *   <td>USBIF HID Standard, USBIF HID Usage Tables</td>
   *  </tr>
   *  <tr>
-  *   <td><b>Usable Speeds:</b></td>
+  *   <td><b>Supported USB Speeds:</b></td>
   *   <td>Full Speed Mode</td>
   *  </tr>
   * </table>
   *   </tr>
   *   <tr>
   *    <td>MAG_T1_CLOCK</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>Mask for the magnetic card reader's CLOCK line for the reader's track 1 output.</td>
   *   </tr>
   *   <tr>
   *    <td>MAG_T1_DATA</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>Mask for the magnetic card reader's DATA line for the reader's track 1 output.</td>
   *   </tr>
   *   <tr>
   *    <td>MAG_T2_CLOCK</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>Mask for the magnetic card reader's CLOCK line for the reader's track 2 output.</td>
   *   </tr>
   *   <tr>
   *    <td>MAG_T2_DATA</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>Mask for the magnetic card reader's DATA line for the reader's track 2 output.</td>
   *   </tr>
   *   <tr>
   *    <td>MAG_T3_CLOCK</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>Mask for the magnetic card reader's CLOCK line for the reader's track 3 output.</td>
   *   </tr>
   *   <tr>
   *    <td>MAG_T3_DATA</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>Mask for the magnetic card reader's DATA line for the reader's track 3 output.</td>
   *   </tr>
   *   <tr>
   *    <td>MAG_CARDPRESENT</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>Mask for the magnetic card reader's card detection output.</td>
   *   </tr>
   *   <tr>
   *    <td>MAG_PIN</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>PIN register that the magnetic card reader device is attached to.</td>
   *   </tr>
   *   <tr>
   *    <td>MAG_PORT</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>PORT register that the magnetic card reader device is attached to.</td>
   *   </tr>
   *   <tr>
   *    <td>MAG_DDR</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>DDR register that the magnetic card reader device is attached to.</td>
   *   </tr>
   *  </table>
@@@ -120,7 -120,24 +120,7 @@@ LUFA_PATH = ../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D DEVICE_STATE_AS_GPIOR=0
 -LUFA_OPTS += -D ORDERED_EP_CONFIG
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 -
 -LUFA_OPTS += -D MAG_T1_CLOCK="(1 << 0)"
 -LUFA_OPTS += -D MAG_T1_DATA="(1 << 1)"
 -LUFA_OPTS += -D MAG_T2_CLOCK="(1 << 2)"
 -LUFA_OPTS += -D MAG_T2_DATA="(1 << 3)"
 -LUFA_OPTS += -D MAG_T3_CLOCK="(1 << 4)"
 -LUFA_OPTS += -D MAG_T3_DATA="(1 << 5)"
 -LUFA_OPTS += -D MAG_CARDPRESENT="(1 << 6)"
 -LUFA_OPTS += -D MAG_PIN=PINB
 -LUFA_OPTS += -D MAG_DDR=DDRB
 -LUFA_OPTS += -D MAG_PORT=PORTB
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -166,7 -183,7 +166,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -692,7 -709,7 +692,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,11 +120,7 @@@ LUFA_PATH = ../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -165,7 -169,7 +165,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -691,7 -695,7 +691,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,10 +120,7 @@@ LUFA_PATH = ../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_HOST_ONLY
 -LUFA_OPTS += -D HOST_STATE_AS_GPIOR=0
 -LUFA_OPTS += -D ORDERED_EP_CONFIG
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -164,7 -167,7 +164,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -690,7 -693,7 +690,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,14 +120,7 @@@ LUFA_PATH = ../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D DEVICE_STATE_AS_GPIOR=0
 -LUFA_OPTS += -D ORDERED_EP_CONFIG
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D CONTROL_ONLY_DEVICE
 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -164,7 -171,7 +164,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -690,7 -697,7 +690,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,14 +120,7 @@@ LUFA_PATH = ../.
  \r
  \r
  # LUFA library compile-time options and predefined tokens\r
 -LUFA_OPTS  = -D USB_DEVICE_ONLY\r
 -LUFA_OPTS += -D DEVICE_STATE_AS_GPIOR=0\r
 -LUFA_OPTS += -D ORDERED_EP_CONFIG\r
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8\r
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1\r
 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS\r
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"\r
 -LUFA_OPTS += -D INTERRUPT_CONTROL_ENDPOINT\r
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER\r
  \r
  \r
  # Create the LUFA source path variables by including the LUFA root makefile\r
@@@ -166,7 -173,7 +166,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.\r
  #     Use forward slashes for directory separators.\r
  #     For a directory that has spaces, enclose it in quotes.\r
 -EXTRAINCDIRS = $(LUFA_PATH)/\r
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/\r
  \r
  \r
  # Compiler flag to set the C Standard level.\r
@@@ -692,7 -699,7 +692,7 @@@ clean_list 
  \r
  doxygen:\r
        @echo Generating Project Documentation \($(TARGET)\)...\r
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \\r
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \\r
          exit 1; \\r
        fi;\r
        @echo Documentation Generation Complete.\r
@@@ -10,9 -10,9 +10,9 @@@
   *
   *  The following list indicates what microcontrollers are compatible with this demo.
   *
-  *  - Series 7 USB AVRs (AT90USBxxx7)
-  *  - Series 6 USB AVRs (AT90USBxxx6)
-  *  - Series 4 USB AVRs (ATMEGAxxU4) - <i>those with >16KB of FLASH memory only</i>
+  *  \li Series 7 USB AVRs (AT90USBxxx7)
+  *  \li Series 6 USB AVRs (AT90USBxxx6)
+  *  \li Series 4 USB AVRs (ATMEGAxxU4) - <i>those with >16KB of FLASH memory only</i>
   *
   *  \section Sec_Info USB Information:
   *
@@@ -42,7 -42,7 +42,7 @@@
   *        USBIF HID Specification, USBIF HID Usage Tables</td>
   *   </tr>
   *   <tr>
-  *    <td><b>Usable Speeds:</b></td>
+  *    <td><b>Supported USB Speeds:</b></td>
   *    <td>Full Speed Mode</td>
   *   </tr>
   *  </table>
@@@ -77,7 -77,7 +77,7 @@@
   *   </tr>
   *   <tr>
   *    <td>DUMMY_RTC</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>When a DS1307 RTC chip is not fitted, this token can be defined to make the demo assume a 1/1/1 01:01:01 date/time
   *        stamp at all times, effectively transforming the project into a basic data logger with no specified sample times.</td>
   *   </tr>
@@@ -120,7 -120,15 +120,7 @@@ LUFA_PATH = ../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D DEVICE_STATE_AS_GPIOR=0
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 -LUFA_OPTS += -D INTERRUPT_CONTROL_ENDPOINT
 -
 -#LUFA_OPTS += -D DUMMY_RTC
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -172,7 -180,7 +172,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -698,7 -706,7 +698,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -120,7 -120,14 +120,7 @@@ LUFA_PATH = ../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D DEVICE_STATE_AS_GPIOR=0
 -LUFA_OPTS += -D ORDERED_EP_CONFIG
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 -LUFA_OPTS += -D INTERRUPT_CONTROL_ENDPOINT
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -165,7 -172,7 +165,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -691,7 -698,7 +691,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -10,7 -10,7 +10,7 @@@
   *
   *  The following list indicates what microcontrollers are compatible with this project.
   *
-  *  - Series 7 USB AVRs (AT90USBxxx7)
+  *  \li Series 7 USB AVRs (AT90USBxxx7)
   *
   *  \section Sec_Info USB Information:
   *
@@@ -40,7 -40,7 +40,7 @@@
   *        SCSI Block Commands Specification</td>
   *   </tr>
   *   <tr>
-  *    <td><b>Usable Speeds:</b></td>
+  *    <td><b>Supported USB Speeds:</b></td>
   *    <td>Full Speed Mode</td>
   *   </tr>
   *  </table>
   *   </tr>
   *   <tr>
   *    <td>ENABLE_TELNET_SERVER</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>When defined, this enables the TELNET server in addition to the HTTP webserver, which listens for incoming connections
   *        and processes user commands.</td>
   *   </tr>
   *   <tr>
   *    <td>ENABLE_DHCP_CLIENT</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>When defined, this enables the DHCP client for dynamic IP allocation of the network settings from a DHCP server.</td>
   *   </tr>
   *   <tr>
   *    <td>ENABLE_DHCP_SERVER</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>When defined, this enables the DHCP server for dynamic IP allocation of the network settings to a DHCP client.</td>
   *   </tr>
   *   <tr>
   *    <td>DEVICE_IP_ADDRESS</td>
 - *    <td>Lib/uIPManagement.h</td>
 + *    <td>AppConfig.h</td>
   *    <td>IP address that the webserver should use when connected to a RNDIS device (when ENABLE_DHCP_CLIENT is not defined).</td>
   *   </tr>
   *   <tr>
   *    <td>DEVICE_NETMASK</td>
 - *    <td>Lib/uIPManagement.h</td>
 + *    <td>AppConfig.h</td>
   *    <td>Netmask that the webserver should use when connected to a RNDIS device (when ENABLE_DHCP_CLIENT is not defined).</td>
   *   </tr>
   *   <tr>
   *    <td>DEVICE_GATEWAY</td>
 - *    <td>Lib/uIPManagement.h</td>
 + *    <td>AppConfig.h</td>
   *    <td>Default routing gateway that the webserver should use when connected to a RNDIS device (when ENABLE_DHCP_CLIENT
   *        is not defined).</td>
   *   </tr>
   *   <tr>
   *    <td>MAX_URI_LENGTH</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>Maximum length of a URI for the Webserver. This is the maximum file path, including subdirectories and separators.</td>
   *   </tr>
 + *   <tr>
 + *    <td>SERVER_MAC_ADDRESS</td>
 + *    <td>AppConfig.h</td>
 + *    <td>MAC address of the server used when sending Ethernet packets onto the bus.</td>
 + *   </tr>
   *  </table>
   */
  
@@@ -120,7 -120,34 +120,7 @@@ LUFA_PATH = ../.
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D FIXED_CONTROL_ENDPOINT_SIZE=8
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D DEVICE_STATE_AS_GPIOR=0
 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 -LUFA_OPTS += -D INTERRUPT_CONTROL_ENDPOINT
 -
 -LUFA_OPTS += -D ENABLE_DHCP_CLIENT
 -LUFA_OPTS += -D ENABLE_DHCP_SERVER
 -LUFA_OPTS += -D ENABLE_TELNET_SERVER
 -LUFA_OPTS += -D MAX_URI_LENGTH=50
 -
 -LUFA_OPTS += -D UIP_CONF_UDP="defined(ENABLE_DHCP_CLIENT) || defined(ENABLE_DHCP_SERVER)"
 -LUFA_OPTS += -D UIP_CONF_BROADCAST=1
 -LUFA_OPTS += -D UIP_CONF_TCP=1
 -LUFA_OPTS += -D UIP_CONF_UDP_CONNS=1
 -LUFA_OPTS += -D UIP_CONF_MAX_CONNECTIONS=3
 -LUFA_OPTS += -D UIP_CONF_MAX_LISTENPORTS=5
 -LUFA_OPTS += -D UIP_CONF_BUFFER_SIZE=1514
 -LUFA_OPTS += -D UIP_CONF_LL_802154=0
 -LUFA_OPTS += -D UIP_CONF_LL_80211=0
 -LUFA_OPTS += -D UIP_CONF_ROUTER=0
 -LUFA_OPTS += -D UIP_CONF_ICMP6=0
 -LUFA_OPTS += -D UIP_CONF_ICMP_DEST_UNREACH=1
 -LUFA_OPTS += -D UIP_URGDATA=0
 -LUFA_OPTS += -D UIP_ARCH_CHKSUM=0
 -LUFA_OPTS += -D UIP_ARCH_ADD32=0
 -LUFA_OPTS += -D UIP_NEIGHBOR_CONF_ADDRTYPE=0
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  
  # Create the LUFA source path variables by including the LUFA root makefile
@@@ -182,7 -209,7 +182,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/ Lib/uip/ Lib/uip/conf/ Lib/FATFs/
 +EXTRAINCDIRS = $(LUFA_PATH)/ Config/ Lib/uip/ Lib/uip/conf/ Lib/FATFs/
  
  
  # Compiler flag to set the C Standard level.
@@@ -709,7 -736,7 +709,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.
@@@ -10,7 -10,7 +10,7 @@@
   *
   *  The following list indicates what microcontrollers are compatible with this project.
   *
-  *  - AT90USB1287
+  *  \li AT90USB1287
   *
   *  \section Sec_Info USB Information:
   *
@@@ -38,7 -38,7 +38,7 @@@
   *    <td>2) Atmel AVRISP MKII Protocol Specification</td>
   *   </tr>
   *   <tr>
-  *    <td><b>Usable Speeds:</b></td>
+  *    <td><b>Supported USB Speeds:</b></td>
   *    <td>1) Full Speed Mode</td>
   *    <td>2) Full Speed Mode</td>
   *   </tr>
   *   </tr>
   *   <tr>
   *    <td>LIBUSB_DRIVER_COMPAT</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>Define to switch to a non-standard endpoint scheme, breaking compatibility with AVRStudio under Windows but making
   *        the code compatible with software such as avrdude (all platforms) that use the libUSB driver.</td>
   *   </tr>
   *   <tr>
   *    <td>FIRMWARE_VERSION_MINOR</td>
 - *    <td>Makefile LUFA_OPTS</td>
 + *    <td>AppConfig.h</td>
   *    <td>Define to set the minor firmware revision nunber reported to the host on request. By default this will use a firmware version compatible
   *        with the latest Atmel IDE version, however if desired the reported minor value can be adjusted here.</td>
   *   </tr>
@@@ -124,7 -124,25 +124,7 @@@ AVRISP_PATH = ../AVRISP-MKI
  
  
  # LUFA library compile-time options and predefined tokens
 -LUFA_OPTS  = -D USB_DEVICE_ONLY
 -LUFA_OPTS += -D DEVICE_STATE_AS_GPIOR=0
 -LUFA_OPTS += -D ORDERED_EP_CONFIG
 -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=16
 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 -LUFA_OPTS += -D NO_DEVICE_REMOTE_WAKEUP
 -LUFA_OPTS += -D NO_DEVICE_SELF_POWER
 -
 -LUFA_OPTS += -D AUX_LINE_PORT=PORTB
 -LUFA_OPTS += -D AUX_LINE_PIN=PINB
 -LUFA_OPTS += -D AUX_LINE_DDR=DDRB
 -LUFA_OPTS += -D AUX_LINE_MASK="(1 << 4)"
 -LUFA_OPTS += -D VTARGET_ADC_CHANNEL=2
 -LUFA_OPTS += -D VTARGET_REF_VOLTS=3.3
 -LUFA_OPTS += -D VTARGET_SCALE_FACTOR=2
 -#LUFA_OPTS += -D LIBUSB_DRIVER_COMPAT
 -#LUFA_OPTS += -D FIRMWARE_VERSION_MINOR=0x11
 +LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
  
  # Create the LUFA source path variables by including the LUFA root makefile
  include $(LUFA_PATH)/LUFA/makefile
@@@ -178,7 -196,7 +178,7 @@@ DEBUG = dwarf-
  #     Each directory must be seperated by a space.
  #     Use forward slashes for directory separators.
  #     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/ $(AVRISP_PATH)/
 +EXTRAINCDIRS = $(LUFA_PATH)/ $(AVRISP_PATH)/ Config/
  
  
  # Compiler flag to set the C Standard level.
@@@ -705,7 -723,7 +705,7 @@@ clean_list 
  
  doxygen:
        @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( doxygen Doxygen.conf 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
+       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
          exit 1; \
        fi;
        @echo Documentation Generation Complete.