The 8U2 USB chip is running modified software - essentially the standard USBserial code, merged with a heavily modified version of the ArduinoISP sketch. The nice thing is that it can switch between normal operation and ISP just by adding or removing a jumper.

If anybody is interested in trying out this code, let me know and I'll tidy it up and write some instructions. You'll need an Uno R2 (R1 will not work; R3 is probably ok but I don't have one to test) and either an ISP programmer or another Arduino. Some soldering is required (to add the extra header pins). You'll also need to be fairly confident about reprogramming the 8U2 - as always with ISP, there's potential for bricking the device if anything goes wrong.

Looks like a slick mod to the Arduino - What ISP do you tell AVRDude you are using?

I could see making a cable that when plugged in puts the 8U2 in ISP mode and when removed it works in normal Arduino mode.A 10 pin connector on the one end witht he 2 pins shorted. A six pin connector on the other end.

This might be a good addition to the Arduino design. And it could be used without having to load a sketch in your Arduino chip.

Tim7 - Could you also reverse this? Could you download a program to the 328 that could then reprogram the 8U2? Are the signals available on pins to do this?This would be something like what the optiLoader does?

The version I posted 2 days ago might not have worked with the normal Uno USB driver. If anybody actually tried it and ran into this problem, I apologize! I have corrected the problem, and added the source code. The link is the same as before.