/** \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 XPLAIN UART Bridge/PDI Programmer Project
 *
 *  \section Sec_Compat Project Compatibility:
 *
 *  The following list indicates what microcontrollers are compatible with this project.
 *
 *  \li AT90USB1287
 *
 *  \section Sec_Info USB Information:
 *
 *  The following table gives a rundown of the USB utilization of this project.
 *
 *  
 *   
 *    | USB Mode:* | 1) Device* | 2) Device* | 
 *   
 *    | USB Class:* | 1) Communications Device Class (CDC)* | 2) Vendor Specific Class* | 
 *   
 *    | USB Subclass:* | 1) Abstract Control Model (ACM)* | 2) N/A* | 
 *   
 *    | Relevant Standards:* | 1) USBIF CDC Class Standard* | 2) Atmel AVRISP MKII Protocol Specification* | 
 *   
 *    | Supported USB Speeds:* | 1) Full Speed Mode* | 2) Full Speed Mode* | 
 *  
 *
 *  \section Sec_Description Project Description:
 *
 *  This project serves a dual purpose. When loaded into the USB AVR on the XPLAIN board, it will act as either a USB to Serial
 *  converter for the XPLAIN's hardware USART (at a speed of 9600 baud), or an AVRStudio compatible PDI programmer for the XMEGA.
 *  This project replaces the firmware preloaded onto the XPLAIN's onboard AT90USB1287 microcontroller.
 *
 *  When power to the board is applied, the TDI pin (pin 9) of the USB AVR's JTAG port is read. If the pin is left high, the device
 *  will enumerate as a regular COM port on the host, which can then be opened and data exchanged between the XMEGA and Host as if
 *  the XMEGA was connected directly to the host's serial port. If the pin is pulled low by shorting it to GND (pin 10), the device
 *  will enumerate as an AVRISP-MKII to the host, so that the XMEGA can be reprogrammed by AVRStudio or other compatible software
 *  such as avrdude by connecting to the board as if it was an Atmel AVRISP-MKII programmer.
 *
 *  After running this project in serial bridge mode for the first time on a new computer, you will need to supply the .INF file
 *  located in this project project's directory as the device's driver when running under Windows. This will enable Windows to use
 *  its inbuilt CDC virtual serial drivers, negating the need for custom drivers for the device. Other Operating Systems should
 *  automatically use their own inbuilt CDC-ACM drivers.
 *
 *  In serial bridge mode, the UART baud rate can be altered through the host terminal software to select a new baud rate - the default
 *  baud is 9600. Note that parity, data bits and stop bits are fixed at none, eight and one respectively can cannot be altered. Changes
 *  to the connection's parity, data bits or stop bits are ignored by the firmware. As the serial link between the controllers on the
 *  XPLAIN is software emulated by the USB AVR, not all baud rates will work correctly.
 *
 *  This project relies on files from the LUFA AVRISP-MKII project for compilation.
 *
 *  \section Sec_Options Project Options
 *
 *  The following defines can be found in this project, which can control the project behaviour when defined, or changed in value.
 *
 *  
 *   
 *    | Define Name:* | Location:* | Description:* | 
 *   
 *    | FIRMWARE_VERSION_MINOR* | AppConfig.h* | 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.* | 
 *  
 */