-
Notifications
You must be signed in to change notification settings - Fork 136
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[bug #61169] Bad EEPROM read on mega2560 R3 Arduino board #515
Comments
I can confirm that reading from EEPROM is troublesome using the "Wiring" bootloader the Arduino Mega 2560 ships with. My tests shows that writing works fine, but it's not able to read properly: Original hex file written to EEPROM:
Avrdude eeprom write and eeprom read command:
I've read the EEPROM contents with a dedicated programmer, and I can confirm that the contents are correct, it's just the bootloader that can't read it properly. Not sure if this is cause by the bootloader or Avrdude. |
I'm very confident this is an issue with the stk500v2 Arduino bootloader, and not Avrdude. Please correct me of I'm wrong about this. USBasp write to EEPROM:
USBasp read from EEPROM:
Dragon ISP read from EEPROM:
STK500v2 bootloader read from EEPROM:
|
I tend to agree that this is most likely an issue with the bootloader and not avrdude. @stefanrueger has raised quite some issues related to various bootloaders with EEPROM. |
I can reproduce the issue as well. I use AVR Dragon to write the EEPROM as above and then read it back using AVR Dragon to confirm the contents are correct. Then I use the Arduino Mega2560 (clone version with CH340) bootloader to read it back to reproduce the issue. Details of the Mega2560 bootloader readback of the EEPROM
|
So for now the workaround is to use a programmer and not the bootloader to read EEPROM. |
Looks like this is a long standing problem of the Arduino Mega2560 bootloader. Potential fix: |
arduino/ArduinoCore-avr#24 (comment) Answered by Arduino project's facchinm in June 2018. I guess this will not be fixed any time soon by Arduino.
|
Shane santner@gmail.com
Thu 16 Sep 2021 02:53:37 PM UTC
Programmer hardware: wiring/COM
I have a mega2560 R3 arduino board. I created a simple sketch from the Arduino IDE from file->Examples->EEPROM->eeprom_clear and then modified it to write 0x00112233445566778899aabbccddeeff repeating to the eeprom memory. After writing out these values and then using avrdude to read them back I get 0x00112233445566770011223344556677 instead. I have a custom programmer that read back the expected values correctly.
The avrdude command I am using for reading out the eeprom is:
avrdude -p atmega2560 -c wiring -P COM4 -b115200 -U eeprom:r:dump.bin
This issue was migrated from https://savannah.nongnu.org/bugs/?61169
The text was updated successfully, but these errors were encountered: