Preview build — page text is a draft awaiting human review. Code badges come from real compiles. The flasher is real but not yet hardware-tested; the Playground is still a preview.
Upload error · avrdude

Fix “avrdude: verification error, first mismatch at byte 0x0000”

avrdude wrote your sketch but read back different bytes. Usually the wrong board/processor, a locked or bad bootloader, a dying ATmega or a flaky USB-serial link.

Arduino UnoArduino NanoArduino Mega 2560Arduino Pro MiniUpdated 3 Nov 2026

Community draft — report a mistake

What you see

OutputOutput
avrdude: writing flash (924 bytes):

Writing | ################################################## | 100% 0.15s

avrdude: 924 bytes of flash written
avrdude: verifying flash memory against C:\Users\me\AppData\Local\Temp\arduino\sketches\5E1F\Blink.ino.hex:

Reading | ################################################## | 100% 0.12s

avrdude: verification error, first mismatch at byte 0x0000
         0x0c != 0x62
avrdude: verification error; content mismatch
Failed uploading: uploading error: exit status 1

After writing your sketch, avrdude reads the flash back and compares it byte by byte with the .hex file. “Verification error” means they differ, so the board isn’t running what you uploaded.

Most of the time the cause is a mismatch between the chip and the board settings, or a protected bootloader that ignored the write. Pick the exact board, and if that doesn’t help, re-burn the bootloader.

Quick fix — try in order

  1. 1

    Select the exact board and processor

    Uploading Uno settings to an ATmega168 Nano, or 328P settings to an LGT8F328P or 328PB clone, writes to the wrong page layout. Check the chip marking and match Tools → Board and Processor.

  2. 2

    Try a different cable and USB port

    Corrupted bytes on the way back also fail verification. If the mismatch address changes each time, suspect the link.

  3. 3

    Re-burn the bootloader

    Using another Arduino as ISP (or a USBasp), run Tools → Burn Bootloader. This resets the fuses and lock bits; a lock bit left set makes reads return wrong data.

  4. 4

    Check the supply voltage

    Flash writes can fail on a Pro Mini or bare ATmega running below ~4.5 V at 16 MHz. Use a solid 5 V for programming.

Why it happens

What do the two numbers mean?

0x0c is what avrdude expected (from your .hex), 0x62 what it read back from the chip. Byte 0x0000 is the very start of flash — the reset vector — so the write didn't take at all.

0xff values read back

Reading 0xff means flash stayed erased — the write was ignored, typically because of lock bits or a bootloader protecting itself from the wrong upload.

Mismatch at a high address

If it fails near the end of flash, the sketch may overlap the bootloader area — the wrong Processor (Old Bootloader vs new) is selected.

Board-specific notes

Arduino Mega 2560 clone: Some Mega clones fail verification only with sketches over 64 KB because of an old bootloader bug. Burning the current bootloader fixes it.

↑↓ to move · Enter to open