diff --git a/LUFA/CodeTemplates/DriverStubs/Dataflash.h b/LUFA/CodeTemplates/DriverStubs/Dataflash.h
index 814eb6d1a355e4b755363be37833bf73aaccd074..1e451b13a33a7cceb47bc17c93df9c84954ccf76 100644
--- a/LUFA/CodeTemplates/DriverStubs/Dataflash.h
+++ b/LUFA/CodeTemplates/DriverStubs/Dataflash.h
@@ -80,7 +80,7 @@
 
 		/* Inline Functions: */
 			/** Initialises the dataflash driver so that commands and data may be sent to an attached dataflash IC.
-			 *  The AVR's SPI driver MUST be initialized before any of the dataflash commands are used.
+			 *  The microcontroller's SPI driver MUST be initialized before any of the dataflash commands are used.
 			 */
 			static inline void Dataflash_Init(void)
 			{
diff --git a/LUFA/CodeTemplates/DriverStubs/Joystick.h b/LUFA/CodeTemplates/DriverStubs/Joystick.h
index c5c36268e2b5a8e192f4200c9b4fb3c43098ec5d..bfde26bb6dc24a0265f992664cfd641fc4fbe1d2 100644
--- a/LUFA/CodeTemplates/DriverStubs/Joystick.h
+++ b/LUFA/CodeTemplates/DriverStubs/Joystick.h
@@ -36,8 +36,7 @@
    inside the application's folder.
 
    This stub is for the board-specific component of the LUFA Joystick
-   driver, a small surface mount four-way (plus button) digital joystick
-   on most USB AVR boards.
+   driver, for a digital four-way (plus button) joystick.
 */
 
 #ifndef __JOYSTICK_USER_H__
diff --git a/LUFA/CodeTemplates/DriverStubs/LEDs.h b/LUFA/CodeTemplates/DriverStubs/LEDs.h
index 2bd5e5ca1fee573358ec7b53b39d540de7d03bb1..e698c9db6d9c6fe9bcff5729bd117b9572bbefaa 100644
--- a/LUFA/CodeTemplates/DriverStubs/LEDs.h
+++ b/LUFA/CodeTemplates/DriverStubs/LEDs.h
@@ -36,7 +36,7 @@
    inside the application's folder.
 
    This stub is for the board-specific component of the LUFA LEDs driver,
-   for the LEDs (up to four) mounted on most USB AVR boards.
+   for the LEDs (up to four) mounted on most development boards.
 */
 
 #ifndef __LEDS_USER_H__
diff --git a/LUFA/Common/Attributes.h b/LUFA/Common/Attributes.h
index ad6882769d8b52f136e4e4e68d0e26df034538c0..8c4006990105753e5317422c40d7e886bde365ec 100644
--- a/LUFA/Common/Attributes.h
+++ b/LUFA/Common/Attributes.h
@@ -29,7 +29,7 @@
 */
 
 /** \file
- *  \brief AVR-GCC special function/variable attribute macros.
+ *  \brief GCC special function/variable attribute macros.
  *
  *  \copydetails Group_GCCAttributes
  *
@@ -39,7 +39,7 @@
 
 /** \ingroup Group_Common
  *  \defgroup Group_GCCAttributes Function/Variable Attributes
- *  \brief AVR-GCC special function/variable attribute macros.
+ *  \brief GCC special function/variable attribute macros.
  *
  *  This module contains macros for applying GCC specific attributes to functions and variables to control various
  *  optimiser and code generation features of the compiler. Attributes may be placed in the function prototype
diff --git a/LUFA/Common/Common.h b/LUFA/Common/Common.h
index 57bebeda4785b90cb870d18c9b572a7e49541a8a..114f566b24d21cb2b5addb75192cebd672f22c52 100644
--- a/LUFA/Common/Common.h
+++ b/LUFA/Common/Common.h
@@ -144,10 +144,11 @@
 				#define JTAG_DEBUG_BREAK()      __asm__ __volatile__ ("BREAK" ::)
 
 				#if !defined(pgm_read_ptr) || defined(__DOXYGEN__)
-					/** Reads a pointer out of PROGMEM space. This is currently a wrapper for the avr-libc \c pgm_read_ptr()
-					 *  macro with a \c void* cast, so that its value can be assigned directly to a pointer variable or used
-					 *  in pointer arithmetic without further casting in C. In a future avr-libc distribution this will be
-					 *  part of the standard API and will be implemented in a more formal manner.
+					/** Reads a pointer out of PROGMEM space on the AVR8 architecture. This is currently a wrapper for the
+					 *  avr-libc \c pgm_read_ptr() macro with a \c void* cast, so that its value can be assigned directly
+					 *  to a pointer variable or used in pointer arithmetic without further casting in C. In a future
+					 *  avr-libc distribution this will be part of the standard API and will be implemented in a more formal
+					 *  manner.
 					 *
 					 *  \param[in] Addr  Address of the pointer to read.
 					 *
@@ -165,8 +166,8 @@
 				#define JTAG_DEBUG_ASSERT(Condition)    MACROS{ if (!(Condition)) { JTAG_DEBUG_BREAK(); } }MACROE
 
 				/** Macro for testing condition "x" and writing debug data to the stdout stream if \c false. The stdout stream
-				 *  must be pre-initialized before this macro is run and linked to an output device, such as the AVR's USART
-				 *  peripheral.
+				 *  must be pre-initialized before this macro is run and linked to an output device, such as the microcontroller's
+				 *  USART peripheral.
 				 *
 				 *  The output takes the form "{FILENAME}: Function {FUNCTION NAME}, Line {LINE NUMBER}: Assertion {Condition} failed."
 				 *
@@ -179,7 +180,7 @@
 				                                                __FILE__, __func__, __LINE__, #Condition); } }MACROE
 			#endif
 			
-			/** Forces GCC to use pointer indirection (via the AVR's pointer register pairs) when accessing the given
+			/** Forces GCC to use pointer indirection (via the device's pointer register pairs) when accessing the given
 			 *  struct pointer. In some cases GCC will emit non-optimal assembly code when accessing a structure through
 			 *  a pointer, resulting in a larger binary. When this macro is used on a (non \c const) structure pointer before
 			 *  use, it will force GCC to use pointer indirection on the elements rather than direct store and load
diff --git a/LUFA/Drivers/Board/Dataflash.h b/LUFA/Drivers/Board/Dataflash.h
index 0158e02003b2facb0527bca36fd92d7b5b2abe90..4ed77a3746913da47821df05244770d10cd8fd07 100644
--- a/LUFA/Drivers/Board/Dataflash.h
+++ b/LUFA/Drivers/Board/Dataflash.h
@@ -151,7 +151,7 @@
 		/* Inline Functions: */
 			/** Initialises the dataflash driver so that commands and data may be sent to an attached dataflash IC.
 			 *
-			 *  \note The AVR's SPI driver must be initialized before any of the dataflash commands are used.
+			 *  \note The microcontroller's SPI driver must be initialized before any of the dataflash commands are used.
 			 */
 			static inline void Dataflash_Init(void);
 
diff --git a/LUFA/Drivers/Board/EVK527/Dataflash.h b/LUFA/Drivers/Board/EVK527/Dataflash.h
index d9f20d52dab502c1df7b022aceabc65a39d11a82..2f0ad5724cb3bddaaeeed6d97832b350de77fd49 100644
--- a/LUFA/Drivers/Board/EVK527/Dataflash.h
+++ b/LUFA/Drivers/Board/EVK527/Dataflash.h
@@ -83,7 +83,7 @@
 
 		/* Inline Functions: */
 			/** Initialises the dataflash driver so that commands and data may be sent to an attached dataflash IC.
-			 *  The AVR's SPI driver MUST be initialized before any of the dataflash commands are used.
+			 *  The microcontroller's SPI driver MUST be initialized before any of the dataflash commands are used.
 			 */
 			static inline void Dataflash_Init(void)
 			{
diff --git a/LUFA/Drivers/Board/STK525/Dataflash.h b/LUFA/Drivers/Board/STK525/Dataflash.h
index 687b194bd094e8da6508641d58e0ca0d3ab22dfd..3d1cffaa530b06e60d0a546b4253f3917f83f6cc 100644
--- a/LUFA/Drivers/Board/STK525/Dataflash.h
+++ b/LUFA/Drivers/Board/STK525/Dataflash.h
@@ -83,7 +83,7 @@
 
 		/* Inline Functions: */
 			/** Initialises the dataflash driver so that commands and data may be sent to an attached dataflash IC.
-			 *  The AVR's SPI driver MUST be initialized before any of the dataflash commands are used.
+			 *  The microcontroller's SPI driver MUST be initialized before any of the dataflash commands are used.
 			 */
 			static inline void Dataflash_Init(void)
 			{
diff --git a/LUFA/Drivers/Board/STK526/Dataflash.h b/LUFA/Drivers/Board/STK526/Dataflash.h
index 626946a0e7da288751c6583bf7415f4c290258d1..6688358bedb880ea534ef3f11e53022f2c8c06f9 100644
--- a/LUFA/Drivers/Board/STK526/Dataflash.h
+++ b/LUFA/Drivers/Board/STK526/Dataflash.h
@@ -83,7 +83,7 @@
 
 		/* Inline Functions: */
 			/** Initialises the dataflash driver so that commands and data may be sent to an attached dataflash IC.
-			 *  The AVR's SPI driver MUST be initialized before any of the dataflash commands are used.
+			 *  The microcontroller's SPI driver MUST be initialized before any of the dataflash commands are used.
 			 */
 			static inline void Dataflash_Init(void)
 			{
diff --git a/LUFA/Drivers/Board/USBKEY/Dataflash.h b/LUFA/Drivers/Board/USBKEY/Dataflash.h
index 19040cf5c81703c06359b6886c376755d1839a30..e54f0d838816d9643f60e2ab6ec6ae767b92d191 100644
--- a/LUFA/Drivers/Board/USBKEY/Dataflash.h
+++ b/LUFA/Drivers/Board/USBKEY/Dataflash.h
@@ -86,7 +86,7 @@
 
 		/* Inline Functions: */
 			/** Initialises the dataflash driver so that commands and data may be sent to an attached dataflash IC.
-			 *  The AVR's SPI driver MUST be initialized before any of the dataflash commands are used.
+			 *  The microcontroller's SPI driver MUST be initialized before any of the dataflash commands are used.
 			 */
 			static inline void Dataflash_Init(void)
 			{
diff --git a/LUFA/Drivers/Board/XPLAIN/Dataflash.h b/LUFA/Drivers/Board/XPLAIN/Dataflash.h
index 069512aeca2a19cbca92ca170614d2dc1f263e43..ed4ab6a18231a343001fa878c5c00b6251000200 100644
--- a/LUFA/Drivers/Board/XPLAIN/Dataflash.h
+++ b/LUFA/Drivers/Board/XPLAIN/Dataflash.h
@@ -89,7 +89,7 @@
 
 		/* Inline Functions: */
 			/** Initialises the dataflash driver so that commands and data may be sent to an attached dataflash IC.
-			 *  The AVR's SPI driver MUST be initialized before any of the dataflash commands are used.
+			 *  The microcontroller's SPI driver MUST be initialized before any of the dataflash commands are used.
 			 */
 			static inline void Dataflash_Init(void)
 			{
diff --git a/LUFA/Drivers/USB/Class/Device/CDC.h b/LUFA/Drivers/USB/Class/Device/CDC.h
index 9eb7b48fc6284be883b2ca892214fcf6653b3ea2..8b4e2da8e09bbf4f2569eb725cbc88fd5ae9a5af 100644
--- a/LUFA/Drivers/USB/Class/Device/CDC.h
+++ b/LUFA/Drivers/USB/Class/Device/CDC.h
@@ -295,7 +295,7 @@
 			void CDC_Device_SendControlLineStateChange(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);
 
 			/** Creates a standard character stream for the given CDC Device instance so that it can be used with all the regular
-			 *  functions in the avr-libc <stdio.h> library that accept a \c FILE stream as a destination (e.g. \c fprintf). The created
+			 *  functions in the standard <stdio.h> library that accept a \c FILE stream as a destination (e.g. \c fprintf). The created
 			 *  stream is bidirectional and can be used for both input and output functions.
 			 *
 			 *  Reading data from this stream is non-blocking, i.e. in most instances, complete strings cannot be read in by a single
diff --git a/LUFA/Drivers/USB/Class/Host/CDC.h b/LUFA/Drivers/USB/Class/Host/CDC.h
index 8e799709e6cf55d0d6729bd6b3254678f8c193cb..b679d1023160bdb2c5534f4b2f06c0e06c18ef53 100644
--- a/LUFA/Drivers/USB/Class/Host/CDC.h
+++ b/LUFA/Drivers/USB/Class/Host/CDC.h
@@ -285,7 +285,7 @@
 			uint8_t CDC_Host_Flush(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);
 
 			/** Creates a standard character stream for the given CDC Device instance so that it can be used with all the regular
-			 *  functions in the avr-libc \c <stdio.h> library that accept a \c FILE stream as a destination (e.g. \c fprintf). The created
+			 *  functions in the standard \c <stdio.h> library that accept a \c FILE stream as a destination (e.g. \c fprintf). The created
 			 *  stream is bidirectional and can be used for both input and output functions.
 			 *
 			 *  Reading data from this stream is non-blocking, i.e. in most instances, complete strings cannot be read in by a single
diff --git a/LUFA/Drivers/USB/Core/Events.h b/LUFA/Drivers/USB/Core/Events.h
index c0a322b2619a2db1de50e45f02ec86901a94ef1c..18814715e367378ea262d4ec48a311bfe670eeff 100644
--- a/LUFA/Drivers/USB/Core/Events.h
+++ b/LUFA/Drivers/USB/Core/Events.h
@@ -183,7 +183,7 @@
 			 *  This event is time-critical; exceeding OS-specific delays within this event handler (typically of around
 			 *  two seconds) will prevent the device from enumerating correctly.
 			 *
-			 *  \note For the smaller series 2 USB AVRs with limited USB controllers, VBUS is not available to the USB controller.
+			 *  \note For the microcontrollers with limited USB controller functionality, VBUS sensing is not available.
 			 *        this means that the current connection state is derived from the bus suspension and wake up events by default,
 			 *        which is not always accurate (host may suspend the bus while still connected). If the actual connection state
 			 *        needs to be determined, VBUS should be routed to an external pin, and the auto-detect behaviour turned off by
diff --git a/LUFA/Drivers/USB/Core/StdDescriptors.h b/LUFA/Drivers/USB/Core/StdDescriptors.h
index d2a9bee0ed98c2563f483ea772ef7ff7e0113a3d..8599f47aa138ea02af36620b13b54c8cd240c90c 100644
--- a/LUFA/Drivers/USB/Core/StdDescriptors.h
+++ b/LUFA/Drivers/USB/Core/StdDescriptors.h
@@ -303,7 +303,7 @@
 				uint8_t  SerialNumStrIndex; /**< String index for the product's globally unique hexadecimal
 				                             *   serial number, in uppercase Unicode ASCII.
 				                             *
-				                             *  \note On some AVR models, there is an embedded serial number
+				                             *  \note On some microcontroller models, there is an embedded serial number
 				                             *        in the chip which can be used for the device serial number.
 				                             *        To use this serial number, set this to USE_INTERNAL_SERIAL.
 				                             *        On unsupported devices, this will evaluate to 0 and will cause
@@ -351,7 +351,7 @@
 				uint8_t iSerialNumber; /**< String index for the product's globally unique hexadecimal
 				                        *   serial number, in uppercase Unicode ASCII.
 				                        *
-				                        *  \note On some AVR models, there is an embedded serial number
+				                        *  \note On some microcontroller models, there is an embedded serial number
 				                        *        in the chip which can be used for the device serial number.
 				                        *        To use this serial number, set this to USE_INTERNAL_SERIAL.
 				                        *        On unsupported devices, this will evaluate to 0 and will cause
diff --git a/LUFA/Drivers/USB/Core/USBMode.h b/LUFA/Drivers/USB/Core/USBMode.h
index ff95ce3d51ed262e9a8b8420831a5f40fc37fceb..1cb1328124b50059e46a26ca25bf3bec80929fac 100644
--- a/LUFA/Drivers/USB/Core/USBMode.h
+++ b/LUFA/Drivers/USB/Core/USBMode.h
@@ -82,17 +82,17 @@
 		 */
 		#define USB_SERIES_7_AVR
 
-		/** Indicates that the target AVR microcontroller and compilation settings allow for the
+		/** Indicates that the target microcontroller and compilation settings allow for the
 		 *  target to be configured in USB Device mode when defined.
 		 */
 		#define USB_CAN_BE_DEVICE
 
-		/** Indicates that the target AVR microcontroller and compilation settings allow for the
+		/** Indicates that the target microcontroller and compilation settings allow for the
 		 *  target to be configured in USB Host mode when defined.
 		 */
 		#define USB_CAN_BE_HOST
 
-		/** Indicates that the target AVR microcontroller and compilation settings allow for the
+		/** Indicates that the target microcontroller and compilation settings allow for the
 		 *  target to be configured in either USB Device or Host mode when defined.
 		 */
 		#define USB_CAN_BE_BOTH
@@ -101,37 +101,48 @@
 			#if (defined(__AVR_AT90USB162__) || defined(__AVR_AT90USB82__)  || \
 			     defined(__AVR_ATmega32U2__) || defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega8U2__))
 				#define USB_SERIES_2_AVR
+				#define USB_CAN_BE_DEVICE
 			#elif (defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega16U4__))
 				#define USB_SERIES_4_AVR
+				#define USB_CAN_BE_DEVICE
 			#elif (defined(__AVR_ATmega32U6__) || defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__))
 				#define USB_SERIES_6_AVR
+				#define USB_CAN_BE_DEVICE
 			#elif (defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB1287__))
 				#define USB_SERIES_7_AVR
+				#define USB_CAN_BE_DEVICE
+				#define USB_CAN_BE_HOST
+			#endif
+			
+			#if (defined(USB_CAN_BE_DEVICE) && defined(USB_CAN_BE_HOST))
+				#define USB_CAN_BE_BOTH
 			#endif
 
-			#if !defined(USB_SERIES_7_AVR)
-				#if defined(USB_HOST_ONLY)
-					#error USB_HOST_ONLY is not available for the currently selected USB AVR model.
-				#endif
-
-				#if !defined(USB_DEVICE_ONLY)
-					#define USB_DEVICE_ONLY
+			#if defined(USB_HOST_ONLY)
+				#if !defined(USB_CAN_BE_HOST)
+					#error USB_HOST_ONLY is not available for the currently selected microcontroller model.
+				#else
+					#undef USB_CAN_BE_DEVICE
+					#undef USB_CAN_BE_BOTH
 				#endif
 			#endif
 
-			#if (!defined(USB_DEVICE_ONLY) && !defined(USB_HOST_ONLY))
-				#define USB_CAN_BE_BOTH
-				#define USB_CAN_BE_HOST
-				#define USB_CAN_BE_DEVICE
-			#elif defined(USB_HOST_ONLY)
-				#define USB_CAN_BE_HOST
-			#elif defined(USB_DEVICE_ONLY)
-				#define USB_CAN_BE_DEVICE
+			#if defined(USB_DEVICE_ONLY)
+				#if !defined(USB_CAN_BE_DEVICE)
+					#error USB_DEVICE_ONLY is not available for the currently selected microcontroller model.
+				#else
+					#undef USB_CAN_BE_HOST
+					#undef USB_CAN_BE_BOTH
+				#endif
 			#endif
-
+			
 			#if (defined(USB_HOST_ONLY) && defined(USB_DEVICE_ONLY))
 				#error USB_HOST_ONLY and USB_DEVICE_ONLY are mutually exclusive.
 			#endif
+
+			#if (!defined(USB_CAN_BE_DEVICE) && !defined(USB_CAN_BE_HOST))
+				#error The currently selected architecture is not supported under the USB component of the library.
+			#endif
 	#endif
 
 #endif
diff --git a/LUFA/Drivers/USB/Core/USBTask.h b/LUFA/Drivers/USB/Core/USBTask.h
index b5cf381aaf3036cb35450874a94488f383ff5420..f2ed7b7ba0e97b57a7d69dd3b0c8bd6f20fcb0e3 100644
--- a/LUFA/Drivers/USB/Core/USBTask.h
+++ b/LUFA/Drivers/USB/Core/USBTask.h
@@ -98,8 +98,8 @@
 					 *  the library internally.
 					 *
 					 *  To reduce program size and speed up checks of this global on the AVR8 architecture, it can be
-					 *  placed into one of the AVR's GPIOR hardware registers instead of RAM by defining the
-					 *  HOST_STATE_AS_GPIOR token to a value between 0 and 2 in the project makefile and passing it to
+					 *  placed into one of the AVR's \c GPIOR hardware registers instead of RAM by defining the
+					 *  \c HOST_STATE_AS_GPIOR token to a value between 0 and 2 in the project makefile and passing it to
 					 *  the compiler via the -D switch. When defined, the corresponding GPIOR register should not be used
 					 *  in the user application except implicitly via the library APIs.
 					 *
@@ -127,8 +127,8 @@
 					 *  (see \ref EVENT_USB_Device_Connect() and \ref EVENT_USB_Device_Disconnect() events).
 					 *
 					 *  To reduce program size and speed up checks of this global on the AVR8 architecture, it can be
-					 *  placed into one of the AVR's GPIOR hardware registers instead of RAM by defining the
-					 *  DEVICE_STATE_AS_GPIOR token to a value between 0 and 2 in the project makefile and passing it to
+					 *  placed into one of the AVR's \c GPIOR hardware registers instead of RAM by defining the
+					 *  \c DEVICE_STATE_AS_GPIOR token to a value between 0 and 2 in the project makefile and passing it to
 					 *  the compiler via the -D switch. When defined, the corresponding GPIOR register should not be used
 					 *  in the user application except implicitly via the library APIs.
 					 *
diff --git a/LUFA/Drivers/USB/USB.h b/LUFA/Drivers/USB/USB.h
index 6dba17f6417d992dbb3004aafdfec86de467ed04..2c590968a4499194420af1d5003d5b0af3d5d4a8 100644
--- a/LUFA/Drivers/USB/USB.h
+++ b/LUFA/Drivers/USB/USB.h
@@ -364,11 +364,6 @@
 		#include "../../Common/Common.h"
 		#include "Core/USBMode.h"
 
-	/* Preprocessor Checks: */
-		#if (!defined(USB_CAN_BE_DEVICE) && !defined(USB_CAN_BE_HOST))
-			#error The currently selected architecture is not supported under the USB component of the library.
-		#endif
-
 	/* Includes: */
 		#include "Core/USBTask.h"
 		#include "Core/Events.h"
diff --git a/LUFA/ManPages/DeviceSupport.txt b/LUFA/ManPages/DeviceSupport.txt
index 7e641016b1b06bb8fa2737a4c76b4c73db039dce..c98797382ca058adb468ed637b88037aeac86670 100644
--- a/LUFA/ManPages/DeviceSupport.txt
+++ b/LUFA/ManPages/DeviceSupport.txt
@@ -7,7 +7,9 @@
 /**
  *  \page Page_DeviceSupport Device and Hardware Support
  *
- *  Currently supported AVR models:
+ *  \section Sec_AVR8_Support Atmel 8-Bit AVR (AVR8)
+ *
+ *  Currently supported AVR8 models:
  *   - AT90USB82 (USB Device Only)
  *   - ATMEGA8U2 (USB Device Only)
  *   - AT90USB162 (USB Device Only)
@@ -44,6 +46,7 @@
  *   - Minimus USB
  *   - Olimex AVR-USB-162
  *   - PJRC Teensy (all revisions and versions)
+ *   - Sparkfun U2 Breakout Board
  *   - TCNISO Blackcat USB JTAG
  *   - Tempusdictum Benito
  *   - Tom's USBTINY-MKII (all revisions and versions)
diff --git a/LUFA/ManPages/FutureChanges.txt b/LUFA/ManPages/FutureChanges.txt
index 8212e027f1168cc17fec0b4bbc4be1621bf72bda..72c666f584cf9aeafec76d86cc4ceb6b15620f76 100644
--- a/LUFA/ManPages/FutureChanges.txt
+++ b/LUFA/ManPages/FutureChanges.txt
@@ -18,7 +18,6 @@
   *      -# Change makefiles to allow for absolute LUFA location to be used
   *      -# Re-add interrupt Pipe/Endpoint support
   *      -# Investigate dynamically created device descriptors
-  *      -# Re-add in software PDI/TPI support into the AVRISP-MKII project
   *      -# Add makefile includes to reduce boilerplate in user makefiles
   *  - Documentation/Support
   *      -# Add detailed overviews of how each demo works