diff --git a/LUFA.pnproj b/LUFA.pnproj
index a787a3535b..c608e8dfc5 100644
--- a/LUFA.pnproj
+++ b/LUFA.pnproj
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt
index 05c74deca2..bd3b38f472 100644
--- a/LUFA/ManPages/ChangeLog.txt
+++ b/LUFA/ManPages/ChangeLog.txt
@@ -11,7 +11,7 @@
* New:
* - Added activity LED indicators to the AVRISP project to indicate when the device is busy processing a command
* - The USB target family and allowable USB mode tokens are now public and documented (USB_CAN_BE_*, USB_SERIES_*_AVR)
- * - Added new XPLAIN USB to Serial Bridge project (thanks to John Steggall)
+ * - Added new XPLAIN USB to Serial Bridge project (thanks to John Steggall for initial proof-of-concept)
* - Added new RNDIS Ethernet Host LowLevel demo
* - Added new RNDIS Ethernet Host Class Driver
* - Added new RNDIS Ethernet Host ClassDriver demo
diff --git a/Projects/AVRISP/AVRISP.txt b/Projects/AVRISP/AVRISP.txt
index 0ccf72ace9..670c168a7a 100644
--- a/Projects/AVRISP/AVRISP.txt
+++ b/Projects/AVRISP/AVRISP.txt
@@ -108,8 +108,43 @@
* Connections to the device are simple for SPI programming:
*
*
- * PDI Programming is not yet fully implemented. |
+ *
+ * Programmer Pin: |
+ * Target Device Pin: |
+ * ISP 6 Pin Layout: |
+ *
+ *
+ * MISO |
+ * DATA |
+ * 1 |
+ *
+ *
+ * ADCx 1 |
+ * VTARGET |
+ * 2 |
+ *
+ *
+ * N/A |
+ * N/A |
+ * 3 |
+ *
+ *
+ * N/A |
+ * N/A |
+ * 4 |
+ *
+ *
+ * PORTx.y 2 |
+ * CLOCK |
+ * 5 |
+ *
+ *
+ * GND |
+ * GND |
+ * 6 |
+ *
*
+ *
* \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.
@@ -135,7 +170,7 @@
* Makefile CDEFS |
* Mask for the programmer's target RESET line on the chosen port. Must not be the AVR's /SS pin, as the
* target pins are tri-stated when not in use, and low signals on the /SS pin will force SPI slave mode when the
- * pin is configured as an input. |
+ * pin is configured as an input. When in PDI programming mode, this is the target clock pin.
*
*
* VTARGET_ADC_CHANNEL |
diff --git a/Projects/XPLAINBridge/Lib/SoftUART.S b/Projects/XPLAINBridge/Lib/SoftUART.S
deleted file mode 100644
index 673067b84e..0000000000
--- a/Projects/XPLAINBridge/Lib/SoftUART.S
+++ /dev/null
@@ -1,464 +0,0 @@
-/*
-
- uart_soft
-
- v0.2
-
- copyright John Steggall 2009
-
-*/
-
-
-/*
- Copyright 2009 John Steggall (steggall.j@gmail.com)
-
- Permission to use, copy, modify, and distribute this software
- and its documentation for any purpose and without fee is hereby
- granted, 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.
-*/
-
-#include
-#include "SoftUARTConf.h"
-
-
-#define SFT_TX_EN 7
-
-#define SF_UART_TX 1
-#define SF_UART_RX 2
-
- .section .data
-
-rxdata:
- .byte 0
-txShifter:
- .byte 0
-txBitcount:
- .byte 0
-rxShifter:
- .byte 0
-rxBitcount:
- .byte 0
-
- .global status
-status:
- .byte 0
-
- .section .text
-
-
- .global RX_PIN_INT
-
-/*********************************************
- * External interrupt
- *
- * RX pin has gone low.
- */
-RX_PIN_INT:
- push r16
- lds r16,SREG
- push r16
-
-#if (RXPORT>=32)
- lds r16,RXPORT
- sbrc r16,0 // anti glitch
-
-#else
- sbic RXPORT,0
-#endif
-
- rjmp ignore
- nop
- nop
- nop
- nop
-
-#if (RXPORT>=32)
- lds r16,RXPORT
- sbrc r16,0 // anti glitch
-
-#else
- sbic RXPORT,0
-#endif
-
- rjmp ignore
-
- push r17
-
- // grab timer value
- lds r16,TC_COUNTL
- lds r17,TC_COUNTH
-
- // set trigger for RX timer (will need to add a little more though)
- sts TC_RX_COMPH,r17
- sts TC_RX_COMPL,r16
-
- pop r17
-
- // set bitcount to 0
- ldi r16,0
- sts rxBitcount,r16
-
-
- // turn off interrupt, will get annoying.
- cbi EXTI_MASK_REG,EXTI_MASK_BIT
-
- // turn on interrupt on compare match
-
- sbi TC_INTFLAG_REG,TC_RX_IF_BIT
-
- lds r16,TC_INT_MASK_REG
- ori r16,(1<=32)
- lds r17, TXPORT
- sbrs r16,0
- andi r17,~(1<64
- lds r16,RXPORT
- andi r16,~(1<=32)
- lds r16,RXPORT
- sbrs r16,RXPIN
-#else
- sbic RXPORT,RXPIN
-
-#endif
-
- inc r17
- dec r18
- nop
- nop
- nop
- nop
- brne loopGetBit
-
-#ifdef DEBUG
-
-#if RXPORT>64
- lds r16,RXPORT
- ori r16,1<=32)
- lds r16,RXPORT
- sbrc r16,RXPIN
-
-#else
- sbic RXPORT,RXPIN
-
-#endif
-
- ori r17,0x02 // set flag if stop bit was high
- sts status,r17
-
- lds r16,rxShifter // get contents of shifter
- sbrc r17,1 // check if we just received a valid byte
- sts rxdata,r16 // if valid rxdata = shifter
-
- // switch interrupt back on to get another go
-
- sbi EXTI_FLAG_REG,EXTI_MASK_BIT // clear interrupt flag
- sbi EXTI_MASK_REG,EXTI_MASK_BIT // enable external interrupt 0 (RX)
-
- // switch off rx bit timer
- lds r16,TC_INT_MASK_REG
- andi r16,~(1<=32)
- lds r18,TXPORT
- ori r18,0x02
- sts TXPORT,r18
-
- lds r18,TXDIR_REG
- ori r18,0x02
- sts TXDIR_REG,r18
-
-#else
- sbi TXPORT,TXPIN
- sbi TXDIR_REG,TXPIN
-
-#endif
-
- ldi r18,(1<=32)
- lds r20, TXPORT
- andi r20,~(1<