The hardware designer of Microchip’s ChipKIT Arduino thing gave us some more info in the forum:
I’m the engineer at Digilent who designed the chipKIT boards. The USB interface is done using the FTDI FT232R USB-UART chip. This is the chip used on earlier Arduino boards. The newer Uno and Mega2560 use the ATmega8U2. The serial interface is used by the IDE to talk to the boot loader on the board.
We considered several options for the USB interface: FT232R, Microchip MCP2200, ATmega8U2 running Arduino firmware, PIC18F running custom firmware. The primary determining factors were compatibility with the Arduino IDE, and development time.
PIC18F running custom firmware added too much dev time and risk to the project MCP2200 wasn’t compatible with the IDE. The Arduino system depends on a side effect of the FTDI chip to reset the micro controller. The DSR line gets driven low when the comm connection is opened and this is used to do reset. The MCP2200 doesn’t do this. We decided not to use the ATmega8 and Arduino firmware out of concern that it would appear we were ripping it off.
So we were left with the FT232R as the best option.
The board dimensions, placement of mounting holes and connectors was done to match the Arduino boards as closely as possible. I tried to make the chipKIT boards as physically and electrically compatible with the Arduino boards as I could. There are some fundamental differences that make complete compatibility impossible. (e.g. 5V vs 3.3V operation, number of output compares, different overloading of peripheral functions on pins, etc) I’ve designed several boards using AVR parts and several boards using PIC32 parts, and I came up with what I thought was the best compromise. I spent a lot of hours studying the Arduino schematics and the chip data sheets.
The biggest challenge going forward is porting library code. Unfortunately most Arduino libraries contain AVR hardware specific code. Rewriting all of that code takes time.
Thanks Gene! Via the forum.