/** \file
 *
 *  This file contains special DoxyGen information for the generation of the main page and other special
 *  documentation pages. It is not a project source file.
 */
 
/** \mainpage Benito Arduino Programmer Project
 *
 *  \section SSec_Compat Demo Compatibility:
 *
 *  The following table indicates what microcontrollers are compatible with this demo.
 *
 *  - AT90USB1287
 *  - AT90USB1286
 *  - AT90USB647
 *  - AT90USB646
 *  - ATMEGA32U6
 *  - ATMEGA32U4
 *  - ATMEGA16U4
 *  - AT90USB162
 *  - AT90USB82
 *
 *  \section SSec_Info USB Information:
 *
 *  The following table gives a rundown of the USB utilization of this demo.
 *
 * 
 *  
 *   | USB Mode: | 
 *   Device | 
 *  
 *  
 *   | USB Class: | 
 *   Communications Device Class (CDC) | 
 *  
 *   
 *   | USB Subclass: | 
 *   Abstract Control Model (ACM) | 
 *  
 *  
 *   | Relevant Standards: | 
 *   USBIF CDC Class Standard | 
 *   Arduino Bootloader Specification | 
 *  
 *  
 *   | Usable Speeds: | 
 *   Full Speed Mode | 
 *  
 * 
 *
 *  \section SSec_Description Project Description: 
 *
 *  Firmware for a USB AVR powered programmer for Arduino boards using the official Arduino bootloader. This
 *  project acts like a regular USB to Serial bridge, except that asserting the DTR line will cause a pulse
 *  to appear on a given port pin, to control the target's /RESET pin.
 *
 *  This is primarily designed to fit the Benito board from www.dorkbotpdx.org, but will suit all USB AVRs.
 *
 *  After running this project for the first time on a new computer, you will need to supply the .INF file located
 *  in this project's directory as the device's driver when running under Windows. This will enable Windows to use
 *  its inbuilt CDC drivers, negating the need for custom drivers for the device. Other Operating Systems should
 *  automatically use their own inbuilt CDC-ACM drivers.
 *
 *  \section SSec_Options Project Options
 *
 *  The following defines can be found in this demo, which can control the demo behaviour when defined, or changed in value.
 *
 *  
 *   
 *    | Define Name: | 
 *    Location: | 
 *    Description: | 
 *   
 *   
 *    | AVR_RESET_LINE_PORT | 
 *    Makefile CDEFS | 
 *    Indicates the PORT register of the pin used to generate the target /RESET line pulse. | 
 *   
 *   
 *    | AVR_RESET_LINE_DDR | 
 *    Makefile CDEFS | 
 *    Indicates the DDR register of the pin used to generate the target /RESET line pulse. | 
 *   
 *   
 *    | AVR_RESET_LINE_MASK | 
 *    Makefile CDEFS | 
 *    Indicates the mask of the pin used to generate the target /RESET line pulse. | 
 *   
 *   
 *    | AVR_RESET_PULSE_MS | 
 *    Makefile CDEFS | 
 *    Pulse length in milliseconds for the target /RESET pulse. | 
 *   
 *   
 *    | TX_RX_LED_PULSE_MS | 
 *    Makefile CDEFS | 
 *    Pulse length in milliseconds for the activity Tx/Rx LEDs. | 
 *   
 *   
 *    | PING_PONG_LED_PULSE_MS | 
 *    Makefile CDEFS | 
 *    Pulse length in milliseconds for the enumeration LED ping-poning between toggles. | 
 *   
 *  
 */