How to connect two Arduino Nano boards to burn (flash) bootloader

Bootloader is also known as boot manager and bootstrap loader. Bootloader is a small program responsible for booting a computer. In case of Arduino microcontroller, bootloader is a small piece of software which allows uploading of sketches into the Arduino board. It is preprogrammed on the microcontrollers on Arduino boards. If it has been corrupted, it can be restored by a process called burning, flashing or programming a new bootloader on to the board.

According to the manufacturer’s website, easiest way to burn the boot loader to classic boards which include UNO, Mega and Nano is using a second Arduino board as a programmer. Six male-to-male jumper wires are used to connect the digital and power pins of one board to the corresponding pins of the second board. The programmer board is connected to the computer and burning is done using the Arduino Integrated Development Environment (IDE), which should be already installed on the computer.

Fixed two Arduino Nano microcontrollers on a solderless breadboard and connected the USB Type A to USB Type B mini to one of them. Board connected to the computer using USB cable will be the programmer board and the other one the target board. Then I connected the 5V pins of both boards together using a red jumper wire. They are labelled as such on the devices. Next the GND pins of both devices were connected together using black jumper wires.

When I connected the Type A USB pin of the cable to a power bank as a trial, PWR and L LEDs of both boards lit up. Of these, the L LEDs were blinking slowly as usual.

Pin between 5V and GND is the RESET pin. Pin 10 (D10) of the programmer board was connected to the RESET pin of the target board using a white jumper wire.

Then pin 11 (D11) of both boards were connected together using a blue jumper wire. That is the Controller Out, Peripheral In (COPI), and it is the pin that the Arduino uses to send data to a peripheral device.

Next pin 12 (D12) of both boards were connected using a green jumper wire. It is Controller In, Peripheral Out (CIPO), the pin that transmits data from a peripheral device to the Arduino controller.

This was followed by interconnecting pin 13 (D13) of both devices with grey jumper wire. That is the Serial Clock (SCK) pin used to synchronize data transmission between the Arduino and the peripheral device. Once the boards are connected together we can proceed with burning the bootloader in Arduino IDE.

Programmer board was connected to the laptop with Arduino IDE software installed. PWR LED is lit and the L LED is blinking slowly. Now the programmer board and target boards are ready for burning or flashing the bootloader in the target Arduino Nano board.