A Mutable Log

Arduino Uno bootloader programming using JTAGICE mkII

Arduino Uno comes with an ATmega328 microcontroller. Like all AVR MCUs it can be programmed using an in-system programming interface (ISP or ICSP). This can be useful to upgrade the bootloader, or to completely replace it and use the full program space on the MCU.

I have a JTAGICE mkII at work that I use to program AVR32 MCUs. It supports programming the Arduino Uno using the wiring shown below.

Arduino Uno ICSP headers

The ATmega16U2 that drives the USB to serial interface - within orange rectangle in the figure above - can also be reprogrammed using the ICSP2 header.

The Arduino can also be programmed using the more affordable JTAGICE3.