How to Burn an Arduino Bootloader on an Atmega328

This site contains affiliate links to products. We may receive a commission for purchases made through these links.

If you’ve landed on this post, there is a high chance you’ve already used an Arduino board. Research shows that the Atmega328 microcontroller in an Arduino has a higher possibility of failing after a certain period or if the connection is not well set up.

Therefore, if you decide to reuse the Arduino board, it is essential to consider using a brand new Atmega328 IC together with a loaded bootloader. There are several reasons why you would consider burning the Bootloader on the Atmega328 microcontroller.

For instance, if you have your own Bootloader written and you also want to test it out or you want to learn more about how the microcontroller works.

Please Note: If you are new to this process, it is not recommended to tweak the Bootloader in Arduino.

How to Burn an Arduino Bootloader on an Atmega328

Bootloader – What Is It and How Do You Use It?

A Bootloader is simply a small code. It is basically a code set in the .hex format that you can find in the memory of a microcontroller. Thanks to a Bootloader, you can easily program an Arduino over serial port which is through the use of a USB.

The main objective of a Bootloader in an Arduino is to accept code from a computer and then place it in the microcontroller memory.

Why You Need a Bootloader

Typically, micro-controllers such as the Atmega328 are programmed by developers with fancy connections. Therefore, a Bootloader helps to take out complexities and provide you with an easier way of programming the microcontroller through the use of a USB.

Bootloaders are stored in a secure location of a microcontroller in the programmable flash memory and it normally takes just 1KB of memory, which is quite less.

Why It’s Important to Burn a Bootloader on Atmega328

It is required to use a special program if you plan on uploading programs onto a brand new Atmega328 microcontroller IC. You’re also supposed to set the fuse bits to ensure the process is done properly.

However, by using an Atmega328, you are able to program a microcontroller over a serial port i.e USB cable. After getting the Atmega328 microcontroller ready with a Bootloader, it becomes easier for you to use it in your Arduino board. The good news is that you can use it as a replacement or as the micro-controller if you aim to make a personal Arduino board.

Burning the Bootloader on Atmega328

There are several ways that you can use to burn a Bootloader on the Atmega32 IC. The first step involves using programmer hardware of the AVR. The second step is using an Arduino board that is working as the programmer, as well as the programmer and then burn your Bootloader on the targeted Atmega328 microcontroller.

In the example below, we will use Arduino as a programmer.

Some of the components that you need include:

  • Arduino UNO
  • LED
  • 5V power supply
  • Push button
  • 16MHz crystal
  • 10KΩ resistor
  • 330Ω resistor
  • Connecting wires
  • 22PF x 2 ceramic capacitors
  • Atmega328 microcontroller IC
  • Breadboard

The Process of Programming Bootloader on Atmega328

As we mentioned above, in this process, the Arduino Uno is being used as an AVR programmer. Therefore, in order to achieve that you will have to upload a specified special program onto the working Arduino Uno board usually known as the Arduino ASP.

Therefore, before you make any connections, there is a need to connect your working Arduino Uno to a PC through the use of a USB cable, and then select the right board as well as port, in the Arduino’s IDE.

Below is the process:

File > examples > Arduino ISP > Arduino ISP.

You can upload the code to your Arduino Uno so as to turn the board into an AVRISP programmer. Once you complete this step, it is crucial that you make the required connections, and then select the Arduino ISP option. After doing all that process, you’ll be ready and well set to burn your Bootloader.

All you have to do is just head over to “Tools” and then click on Burn Bootloader. The Targeted Atmega microcontroller will now be programmed together with the Bootloader.

Uploading the Sketches to the Atmega328 Microcontroller

After uploading the Bootloader on the Atmega328 micro-controller, you can further continue on with the process by uploading a test sketch to it. To do this properly, it is paramount for you to ensure that you retain the same connection like the one you had earlier, plus you can also open any sketch that you want such as a blinks sketch and any other.

It is also crucial to avoid changing any options, which means you have to ensure that the programmer is still set to the Arduino as the ISP. Once you ensure that all this is in properly set, go ahead and hold the SHIFT button on your PC’s keyboard and then click on the Upload icon shown on the screen.

This process will enable you to upload the sketch to the Atmega328 microcontroller IC through the use of an Arduino Uno as a programmer. After you complete this process, you can now disconnect the Arduino Uno from the Atmega328 microcontroller, and then use the Atmega328 IC as device on its own while running Blink sketch on it.

However, you should note that if you desire to upload code to the Arduino Uno, ensure that you switch back the programmer to AVRISP mkII.

The Bottom Line

This post has shown you how to burn an Arduino Bootloader on an Atmega328 microcontroller. We’ve also included extra information on how you can upload an Arduino sketch onto the Atmega328 with the Bootloader with the use of an Arduino Uno.

Our exhaustive article has been aimed at giving you the right information to help you burn Arduino Bootloader on Atmega328. The information is detailed such that you have what it takes to go through the process flawlessly. We hope our post has given you enough information about this topic, but you can learn more by conducting more research.

About The Author