Important Considerations for Using Arduino with ISP Programmer

When programming the Arduino using an ISP, the bootloader on the board will be lost, so it is necessary to re-burn the bootloader. Since we need to burn the bootloader, what exactly is a bootloader? As you might expect, a bootloader is indeed a program, and since it needs to be burned into the microcontroller, it should be a .HEX file or similar.

But where does the bootloader file come from? It can be found in the hardware\arduino directory of the Arduino software installation. The “boards.txt” file in this folder is very important. Open the file and find the corresponding Arduino version. Since mine is “Arduino Uno”, I will focus on the section labeled “uno.name=Arduino Uno”. It may look messy, so be sure to look carefully.

Locate “uno.bootloader.low_fuses=0xff” which indicates that the low fuse bits are set to FF, “uno.bootloader.high_fuses=0xde” which indicates that the high fuse bits are set to DE, and “uno.bootloader.extended_fuses=0x05” which indicates that the extended fuse bits are set to 05. These three values are very important and are key to successfully burning the bootloader. As for what these three values specifically mean, I am not entirely sure, but when programming AVR microcontrollers, it is necessary to set the fuse bits correctly, and they should not be set randomly. This is one of the differences between AVR and 51 microcontrollers.

Important Considerations for Using Arduino with ISP Programmer

Use the progisp software to write these three fuse values into the AVR microcontroller, and then continue to browse the “boards.txt” file.

Important Considerations for Using Arduino with ISP Programmer

Important Considerations for Using Arduino with ISP Programmer

Important Considerations for Using Arduino with ISP Programmer

Important Considerations for Using Arduino with ISP Programmer

Important Considerations for Using Arduino with ISP Programmer

Important Considerations for Using Arduino with ISP Programmer

Find “uno.bootloader.path=optiboot” which indicates that the bootloader file to be burned is located in the bootloaders\option folder. The file name “uno.bootloader.file=optiboot_atmega328.hex” indicates that the file to be burned into the AVR microcontroller is optiboot_atmega328.hex. Use the progisp software to load this file and then directly write it into the AVR microcontroller, and an Arduino-compatible AVR will be ready.

Important Considerations for Using Arduino with ISP Programmer

Leave a Comment