Based on Arduino UNO, I made one board named by “UNO++” that integrated with ISP and FTDI. I launched it on http://igg.me/at/leoyan-uno.
A, Overview: UNO++ = Arduino UNO + FTDI(USB to Serial) + ISP programmer
It has 3 modes: Normal, FTDI and ISP. I have modified the code of ATMEGA16U2, so that you can set up those modes by Serial Monitor instead of using switches.
1, Normal Mode:
In normal mode, UNO++ is an Arduino-UNO compatible board. The differences are as follows:
1)When uploading to UNO++, the RX header pin is disconnected from the ATMEGA328. So you don’t need to unplug your serial module from the header to upload programs to UNO++.
2)It is possible to enable and disable RESET-EN to ATMEGA328 via the Serial Monitor. There is no need to cut any trace or solder pads.
2, FTDI Mode
UNO++ can be used as a USB to Serial device. Arduino Pro Mini, LilyPad, etc can be connected directly to the FTDI socket.
3, ISP Mode
UNO++ uses the stk500v1 protocol to program AVR Mega chips. You can even program the bootloader into UNO++'s own ATMEGA328 by looping back an ISP cable, as the ATMEGA16U2 works independently from the ATMEGA328.