Why the Arduino Uno is not an AVR ISP programmer?

With the same components of the Arduino UNO is it possible to make an AVR ISP programmer? In this case it would be unnecessary to use ATmega328 bootloader. To make this change it would be need to use de SPI of the ATmega. By the way, it would be possible use one ATtiny instade of the ATmega8U to make an USBtiny programmer cheaper and very usable, and the ISP header could be let to program any AVR.

Am I wrong?

Sure, in fact an Arduino can act as an ISP programmer, in conjunction with an example sketch that comes with the Arduino IDE, see this page.

Adafruit Industries makes an ISP programmer based on the ATtiny2313 that has worked very well for me.


The idea is not use another ISP programmer, but just the Arduino Hardware itself. All the components are there, it is just the question of connect the the USB interface (ATmega8U) to the ATmega328 and let the ISP header free to any other AVR. Some changes in the squematic will be necessary and some firmware update. The main point is save the bootloader and make the Arduino plataform more flexible. I would like to see the Arduino with the same behavior of a generic AVR ISP programmer and not need to buy one. To me, It is not nice to burn the bootloader one a virgin ATmega and have limitation of what kind of ATmega I can Burn. With the Arduino squematic the RX and Tx of the ATmega328 are used, and the bootloader is needed. With the ATmega8U connected to the SPI and the reset pin of the ATmega328, it can be programmed as ISP. No bootloader needed and ease uploading to virgin ATmegas. The only reason that I see to it not to be made is commercial questions. If I had time I would try make this changes by myself. I hope you got my point.

I've had that idea some time ago as well. I think I've read somewhere that the usb2serial firmware barely fits into the currently used usb chip. To still have the use of a 5V serial port, the firmware would either have to be switchable (jumper/switch) between ISP and serial mode OR implement something like the pololu programmer, which provides 2 serial ports over just one usb cable. One fakes an ISP programmer, the other one goes directly to the main chip. That would require a bigger chip (more flash). I think the additional cost would be insignificant, but would maybe eat up the price difference to the previously used FTDI chip.

The HUGE advantage of having in internal ISP is getting rid of the auto-reset problems. Quite frankly I'm sick and tired of reading posts like "upload doesn't work" and nobody deserves to suffer from that EVIL.

However, years ago I was complaining about the lack of a jumper/switch to disable auto-reset. Only a solder-bridge was added to the newer boards back then, supposedly a jumper would have 'confused' users. So I'm skeptical if we'll see this change happen in the official boards. Maybe the folks at SeeedStudio will make it happen.