Most of you might’ve used an Arduino board at some point in time. Have you ever faced an issue where your bootloader gets corrupted? Unable to upload any program or uploading a blank sketch? This post is about an issue,
avrdude: verification error, first mismatch at byte 0x0000
0x62 != 0x0c
that might have been caused due to voltage fluctuations.
This article shares the process of Burning the bootloader onto the corrupted Arduino UNO board by using another Arduino UNO board so that the faulty board is revived. The process can also be done by using different versions of Arduino boards.
What is a bootloader and why is it used?
It is the first program that runs on any computer during the start of the device. A bootloader is a program that is responsible to check the hardware of the device, memory, i/o devices and other hardware components. Upon successful verification, it loads the operating system image onto the memory and gives over the control to it. It is essential as it ensures that operating system is loaded correctly and verifies the functionality of the device. Without the bootloader, the device wouldnβt know how to start up and would not be able to run applications.
In Atmel chips, the Flash program memory can be programmed via the In-Circuit Serial Programming (ICSP) SPI bus or by sending serial data to the On-Chip Boot program, which is located in the Boot Flash section of the memory and commonly referred to as the Boot Loader. To program the chip using the ICSP port, a special converter module is required to translate USB data to SPI, which can be obtained from Atmel or third-party vendors.
To simplify programming and eliminate the need for a special module, Arduinos are designed to be programmed via a serial port using the Boot Loader program. This is usually done through the USB port on modern computers. A special chip on the Arduino translates complex USB data into simple serial data, which is then fed to the main processor to install programs instead of using SPI. The Boot Loader code receives the serial data and uses it to install and execute programs. Additionally, a USB-Serial link allows the Arduino to send data back to the host computer for display on a console screen.
The Boot Loader program is typically stored in the chip via the SPI bus before it is shipped to the customer. It must be in place to program the Arduino using a standard USB cable, such as when using the Arduino IDE. When the chip starts up, the Boot Loader is executed and can receive data from a serial port. The host computer sends the user’s program by USB to the Arduino, which translates it to serial data and transmits it to the main chip where the Boot Loader code receives and stores it. The Boot Loader then executes the user’s code, which starts automatically when the chip is powered up.
To install or re-install the Boot Loader code via the SPI port, a special USB module is used. It is even possible to set up a second Arduino board to perform as an SPI programmer, as described later.
The error:
avrdude: verification error, first mismatch at byte 0x0000
0x62 != 0x0c
If this occurs, the resetting the bootloader is the only way.
In general, the bootloader should never fail. In case it does, the common suspected reason is voltage fluctuations where low voltage seems to be the common problem.
How do you fix the corrupted bootloader on your Arduino?
There are many ways to do it. From burning the bootloader through another Arduino to purchasing a new processor. We shall see how the corrupted bootloader can be fixed through another Arduino.
The Arduino that is being programmed/the Arduino that has a corrupted bootloader –> Target Board
The new Arduino/the Arduino that is being used as a programmer Γ Programmer Board Connect the MOSI, MISO, SCK and GND of both Arduinos together. They are present in the ICSP or Digital pins.
The following diagram illustrates the pin connections (through Digital Pins)
Pin 11- MOSI
Pin 12- MISO
Pin 13- SCK
GND-GND
RESET Pin on ICSP of Target to Pin 10 of Programmer Board



Steps to burn:
- Connect the Programmer Arduino to you computer via the USB.
- Open the Arduino IDE and from Tools–>Board select Arduino Uno
- Select the port from Tools–>Port
- From the Examples, Open the ArduinoISP Arduino program and upload it on the Programmer Arduino. It is now ready to use as an ICSP burner device.
- From ToolsΓ Programmer, choose Arduino as ISP.
- From Tools–>Burn Bootloader, doing so will start the burn process. It will take around a minute to burn.
Your target Arduino is ready now. You can run a sample blink program after the burn process and remove the connections to test.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
An Article by: Yashwanth Naidu Tikkisetty
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
