I'm trying to burn an Arduino bootloader on an Arduino UNO
board with the Atmel-ICE
probe. Unfortunately, avrdude
throws an error message when verifying the bytes.
1. Hardware setup
I'm working on a 64-bit Windows 10 PC. The Atmel-ICE
is connected to my USB port and to the Arduino UNO
board:
2. Atmel-ICE driver
At first I thought that the Atmel-ICE
doesn't require installation, because Windows recognizes it as an HID-device. However, I quickly learned that avrdude
- launched by the Arduino IDE - needs another driver to interact with the Atmel-ICE
. Therefore, I installed the libusb-win32
driver with Zadig (just as suggested on the GitHub thread Unable to program AVR chips via Atmel ICE with IDE 1.6.7 · Issue #4368 · arduino/Arduino · GitHub):
The driver installation succeeded, and I observe a change in the Windows Device Manager. The Atmel-ICE
probe no longer appears as an HID-device but as a libusb-win32
device instead:
I believe the Atmel-ICE
is now ready to be used with avrdude
.
3. Software setup
I'm running a fresh-installed Arduino IDE (version 1.8.13) on a Windows 10 PC. First I activate maximal verbosity for the console output (File
> Preferences
> Show verbose output
). Next, I select the probe: Tools
> Programmer
> Atmel-ICE (AVR)
Next I select my board: Tools
> Board
> Arduino AVR Boards
> Arduino UNO
Finally, I burn the bootloader: Tools
> Burn Bootloader
In the console output, I can see two avrdude
commands being launched.
3.1 First avrdude command
The first avrdude
command looks like this:
avrdude -CC:\Program Files (x86)\.../avrdude.conf
-v
-patmega328p
-catmelice_isp
-Pusb
-e
-Ulock:w:0x3F:m
-Uefuse:w:0xFD:m
-Uhfuse:w:0xDE:m
-Ulfuse:w:0xFF:m
I can't enter all the output here, because the forum doesn't accept more than 9000 characters per post. For the complete output, please check Unable to burn bootloader with Atmel-ICE in Arduino IDE 1.8.13 · Issue #11107 · arduino/Arduino · GitHub
3.2 Second avrdude command
The second avrdude
command is:
avrdude -CC:\Program Files (x86)\.../avrdude.conf
-v
-patmega328p
-catmelice_isp
-Pusb
-Uflash:w:C:\Program Files (x86)\.../optiboot_atmega328.hex:i
-Ulock:w:0x0F:m
I can't enter the complete output here (see note from previous paragraph)
3.3 The error message
avrdude
throws this error message:
avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
0xff != 0x0f
avrdude: verification error; content mismatch
What should I do to solve this?