Skip to main content

Using AVR ISP MKII to upload firmware to Arduino

What is AVR ISP MKII?

The AVRISP mkII is a USB-based In-System Programmer (ISP) used to program Atmel (now Microchip) AVR microcontrollers. It's designed for developers and hobbyists to upload firmware to AVR-based chips directly on a circuit board without needing to remove the chip.

ATAVRISP2-1908688492.jpg

In this tutorial, we will burn the bootloader to an Arduino UNO (re-upload the firmware to the ATmega328P chip on UNO).

Supported Microcontrollers

It is compatible with a wide range of AVR microcontrollers, including the popular ATmega and ATtiny series.

  1. Arduino Uno
  2. Arduino Nano
  3. Arduino Leonardo
  4. Arduino Mega 2560

However, it is not compatible with microcontrollers with ARM-based chips or ESP microcontrollers, such as

  1. Arduino Due
  2. Arduino Zero
  3. Arduino MKR series
  4. Arduino Nano 33 series

Software Compatibility

Works with Atmel Studio (formerly AVR Studio), Arduino IDE and other tools supporting AVR programming. In this tutorial, we will be using Arduino IDE.

Connection

  • AVR ISP MKII to the computer using USB B cable
  • 5V power supply for Arduino UNO (target Arduino), can be via USB port
  • AVR ISP MKII 6-pin connector to Arduino ICSP pins (at the bottom usually)

Arduino+UNO+Pinout-1338624350.png

Status LEDs

General speaking, Green = Everything is OK. Red = There is an issue.

Below is some common examples:

Everything works fine: AVR_greenLight.jpg

Missing power supply for target Arduino: AVR_redLight.jpg

6-pin connection wrong direction: AVR_redLight_2.jpg

Burn bootloader with Arduino IDE

  1. Board: Choose your target Arduino
  2. Leave the Port empty
  3. Click Burn Bootloader
  4. Done!

arduinoIDEburnbootloader.png