This article guides users to load the Bootloader for the Atmega328P microcontroller using the AVRISP mkII load. Load Bootloader in case of Arduino board UNO R3 using new Atmega328P without bootloader or bootloader on faulty microcontroller can not use Arduino programming environment as Arduino IDE to compile and load to Arduino board.

  1. Introduction of Board Arduino UNO R3

 Arduino UNO R3 is a microcontroller board based on the ATmega328P, it has 14 digital I/O pins, inside 6 pins can be used as PWM (Pulse-width modulation) outputs, 6 Analog inputs, a 16MHz quartz crystal, a USB connection, An ICSP Header...  


   2. Introduction to mkII AVR loading circuit

AVR mkII is a device used to load code for Atmel's 8-bit AVR microcontroller using the standard ISP or PDI interface. Using AVR Studio software to load, we can load programs for microcontrollers tinyAVR and megaAVR using ISP interface, in addition tinyAVR is also loaded via TPI interface and AVR XMEGA microcontroller series using communication PDI.

  3. How to load Bootloader

  Step 1: Prepair

                        + AVRISP mkII input circuit.

  • Software:  + AVR Studio. 
  Step 2: Install AVR Studio and USB Driver
 Download AVR Studio software at:


  • Install software
        Open the file AvrStudio4.19Setup.exe and download the installation. After installing AVR Studio the software will ask if you have USB Driver installed, and you install USB Drvier always have software can connect to the AVRISP mkII.

         Interface of AVR Studio software after installation

Step 3: Connect the hardware


Connect to PC via USB on AVRISP mkII input.

   Step 4: Load Bootloader for Arduino UNO R3

   Open the AVR Studio software and proceed to connect to the AVRISP loading circuit. MkII:
                                                                                     Go to Tools -> Program AVR -> select Connect

  • In the platform column you select AVRISP mkII then select Connect.
  • The Main column you choose for the microcontroller on the Arduino board UNO R3 is ATmega328P.
  • Select Read Signature.
  • Select Atmega328P as the microcontroller on the Arduino board UNO R3.
    These are the settings for the Atmega328P microcontroller, if you use an Arduino board that uses other microcontrollers, then in the AVR part name you select the corresponding  microcontroller on the board.
  • You omit the Auto read option and change the corresponding parameters for the Fuses column.

      In the Program column you select the path to the bootloader file for the Arduino board. UNO R3 is the file: optiboot_atmega328.hex. You can download this file when installing the Arduino IDE ( For example, if you installed version 1.0.6 arduino, the file Bootloader in the path:


       Note: For non Arduino Arduino boards, you can go to:   to find out which bootloader files are suitable for the Arduino board. mine.


  • Select file : optiboot_atmega328.hex --> Open.
  • Select Program.

    Now that you have successfully loaded the bootloader for your arduino board, you can now use the Arduino programming environment Arduino IDE to compile and load code for the Arduino board.