What is HoodLoader2

The Arduino is a platform that provides the students ease in learning about circuits by making the interface of the different devices with microcontrollers easy. The Arduino provides a variety of boards having different specifications and based on their specification they can be used for different projects.

The most common boards that are used by the students are the Arduino Uno or Arduino Mega. Both of these have two microcontroller chips one of which is the 16u2 that is mostly used for serial communication. However, we can also program it using the HoodLoader2 also known as the BootLoader so here in this write up we have explained what HoodLoader2 is and how we can install it in Arduino.

What is a HoodLoader2 in Arduino

Hoodloader is the kind of a CDC bootloader that can be used to program the second microcontroller that is 16u2 in the Arduino Uno and Arduino Mega boards. The significance of using a HoodLoader2 is that we can use two microcontrollers in one board, and this increases the functionality of the Arduino boards as well.

What is 16u2 on an Arduino board?

The 16u2 is the Atmega chip present in the Arduino board that serves the purpose of establishing the connection of the USB port with the serial port of the controller. However, we can use this chip as the AVR microcontroller by reprograming it using the hoodloader. Moreover, by reprogramming the 16u 2 controller we can use it in different projects as it gives the option of using its 7 pins that can be used as inputs and outputs.

Arduino Uno icsp pinout

Before installing the hoodloader we must know the pinout of the header pins of the Arduino Uno. As we know there are 12 header pins for the ICSP 6 for the ATmega 3218p and 6 for the 16u 2 controller. we have given the pinout if the ICSP header pins of the Arduino in the tabular form an also we have provided the image in which all the header pins are labeled

Pin (starting from left side ) Description
MISO(Master In Slave Out) pin used to send the data to master using slave line
SCK The clock pin which syns the data transmission by the master
RESET Pin used for resetting
VCC Supply power to the controller
MOSI(Master Out Slave In ) Pin used by the master to send data to slave
GND Pin used for grounding the controller

How to install HoodLoader2 in Arduino

The process for installing the “HoodLoader ” is not quite difficult as it requires two or three steps, but great care is required while connecting the wires to the header pins of the ICSP of the Arduino board. Further there are three methods by which we can install the hoodloader in the Arduino board that are:

  • Using one Arduino board
  • Using two Arduino boards
  • Using the ICSP pins of the Arduino board

Here we will only explain the first method in which we have used a single Arduino Uno board.

Step 1: To install the hoodloader first we have to connect the Arduino Uno with the computer using the USB cable. One thing to be remembered is that you only select the respective Arduino board that will be Arduino Uno in our case and do not select the 16u2.

Step 2: Next you have to compile the code for installing the hoodloader in the Arduino IDE and you can get the respective code for Arduino by clicking here. Once you have successfully compiled the Arduino code, upload it to the Arduino Uno and wait about 30 seconds as the code is quite long and will take time to upload to the board.

Step 3: As soon as the code is uploaded disconnect your Arduino board from the computer and make connections according to the image given below.

We have connected the header pins of the Atmega328p with the ICSP header pins of the 16u2 controller by connecting MOSI pins of both the controllers with each other. Also the MISO and SCK pins of both controllers are connected with each other and the reset pin of the 16u2 is connected to pin 10. We have connected the capacitor having a value of 100pF on the reset pin of the Arduino Uno and ground.

After connecting the wires carefully by using the image above you will see the LED of the board will slowly blink for almost 10 seconds. Then you will see the LED will start to blink at faster speed after every 100ms this means that the HoodLoader2 is being flashed. The whole process lasts for only 30 seconds and if the LED blinks slowly after every second this means that the installation has failed, and the board will try again the whole process after 10 seconds.

The indication for the successful installation is that the LED will blink after every 100ms at faster speed. After successful installation pull out the values and vola you have installed the HoodLoader2 on your Arduino Uno.

Using the hoodloader now we can upload sketches to 16u2 and can use it as a standalone controller like we use the ATmega328p. Though it has limited functionality as we have only 7 seven pins for inputs and outputs.


To program the 16u2 microcontroller of the Arduino Uno or Arduino Mega board the HoodLoader2 is used which can give some extra functionality to the Arduino board. The process of installing the HoodLoader2 for Arduino Uno and Mega board is not so difficult if the steps are followed carefully. The whole process of installing the HoodLoader2 is explained in this guide.

About the author

Aaliyan Javaid

I am an electrical engineer and a technical blogger. My keen interest in embedded systems has led me to write and share my knowledge about them.