Skip to content
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

Closed
avrs-admin opened this issue Dec 11, 2021 · 7 comments
Closed

[bug #61169] Bad EEPROM read on mega2560 R3 Arduino board #515

avrs-admin opened this issue Dec 11, 2021 · 7 comments
Labels
invalid This doesn't seem right

Comments

@avrs-admin
Copy link

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

@MCUdude
Copy link
Collaborator

MCUdude commented Mar 20, 2022

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:

:20000000EFCDAB8967452301EFCDAB8967452301EFCDAB8967452301EFCDAB8967452301E0
:20002000EFCDAB8967452301EFCDAB8967452301EFCDAB8967452301EFCDAB8967452301C0
:20004000EFCDAB8967452301EFCDAB8967452301EFCDAB8967452301EFCDAB8967452301A0
:20006000EFCDAB8967452301EFCDAB8967452301EFCDAB8967452301EFCDAB896745230180
:20008000EFCDAB8967452301EFCDAB8967452301EFCDAB8967452301EFCDAB896745230160
:2000A000EFCDAB8967452301EFCDAB8967452301EFCDAB8967452301EFCDAB896745230140
:2000C000EFCDAB8967452301EFCDAB8967452301EFCDAB8967452301EFCDAB896745230120
:2000E000EFCDAB8967452301EFCDAB8967452301EFCDAB8967452301EFCDAB896745230100
:20010000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
:20012000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
:20014000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF
:20016000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F
:20018000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F
:2001A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F
:2001C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F
:2001E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F
:20020000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE
:20022000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE
:20024000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE
:20026000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E
:20028000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E
:2002A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E
:2002C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E
:2002E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E
:20030000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
:20032000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD
:20034000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD
:20036000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D
:20038000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D
:2003A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D
:2003C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D
:2003E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D
:20040000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC
:20042000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC
:20044000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC
:20046000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C
:20048000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C
:2004A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C
:2004C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C
:2004E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C
:20050000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB
:20052000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB
:20054000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB
:20056000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B
:20058000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B
:2005A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B
:2005C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B
:2005E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B
:20060000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA
:20062000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA
:20064000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA
:20066000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A
:20068000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A
:2006A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A
:2006C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A
:2006E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A
:20070000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9
:20072000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9
:20074000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9
:20076000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99
:20078000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79
:2007A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59
:2007C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39
:2007E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19
:20080000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8
:20082000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8
:20084000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8
:20086000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98
:20088000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78
:2008A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58
:2008C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38
:2008E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18
:20090000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
:20092000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7
:20094000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7
:20096000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97
:20098000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77
:2009A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57
:2009C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37
:2009E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17
:200A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6
:200A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6
:200A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6
:200A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96
:200A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76
:200AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56
:200AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36
:200AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16
:200B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5
:200B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5
:200B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5
:200B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95
:200B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75
:200BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55
:200BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35
:200BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15
:200C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4
:200C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4
:200C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4
:200C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94
:200C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74
:200CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54
:200CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34
:200CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14
:200D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3
:200D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3
:200D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3
:200D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93
:200D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73
:200DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53
:200DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33
:200DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13
:200E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2
:200E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2
:200E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2
:200E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92
:200E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72
:200EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52
:200EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32
:200EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12
:200F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1
:200F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1
:200F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1
:200F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91
:200F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71
:200FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51
:200FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31
:200FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11
:00000001FF

Avrdude eeprom write and eeprom read command:

$ ./avrdude  -C avrdude.conf -p atmega2560 -c wiring -P /dev/cu.usbmodem14101 -v -Ueeprom:w:eedump.hex:i

avrdude: Version 6.99-20211218
         Copyright (c) Brian Dean, http://www.bdmicro.com/
         Copyright (c) Joerg Wunsch

         System wide configuration file is "avrdude.conf"
         User configuration file is "/Users/hans/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/cu.usbmodem14101
         Using Programmer              : wiring
         AVR Part                      : ATmega2560
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PA0
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         Serial program mode           : yes
         Parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                           Block Poll               Page                       Polled
           Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom                 65    10     8    0 no       4096    8      0  9000  9000 0x00 0x00
           flash                  65    10   256    0 yes    262144  256   1024  4500  4500 0x00 0x00
           lfuse                   0     0     0    0 no          1    1      0  9000  9000 0x00 0x00
           hfuse                   0     0     0    0 no          1    1      0  9000  9000 0x00 0x00
           efuse                   0     0     0    0 no          1    1      0  9000  9000 0x00 0x00
           lock                    0     0     0    0 no          1    1      0  9000  9000 0x00 0x00
           calibration             0     0     0    0 no          1    1      0     0     0 0x00 0x00
           signature               0     0     0    0 no          3    1      0     0     0 0x00 0x00

         Programmer Type : Wiring
         Description     : Wiring
         Programmer Model: AVRISP
         Hardware Version: 15
         Firmware Version Master : 2.10
         Vtarget         : 0.0 V
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e9801 (probably m2560)
avrdude: reading input file "eedump.hex"
avrdude: writing eeprom (4096 bytes):

Writing | ################################################## | 100% 16.78s

avrdude: 4096 bytes of eeprom written
avrdude: verifying eeprom memory against eedump.hex:

Reading | ################################################## | 100% 4.19s

avrdude: verification error, first mismatch at byte 0x0080
         0xff != 0xef
avrdude: verification error; content mismatch

avrdude done.  Thank you.

$ ./avrdude  -C avrdude.conf -p atmega2560 -c wiring -P /dev/cu.usbmodem14101 -v -Ueeprom:r:-:i

avrdude: Version 6.99-20211218
         Copyright (c) Brian Dean, http://www.bdmicro.com/
         Copyright (c) Joerg Wunsch

         System wide configuration file is "avrdude.conf"
         User configuration file is "/Users/hans/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/cu.usbmodem14101
         Using Programmer              : wiring
         AVR Part                      : ATmega2560
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PA0
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         Serial program mode           : yes
         Parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                           Block Poll               Page                       Polled
           Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom                 65    10     8    0 no       4096    8      0  9000  9000 0x00 0x00
           flash                  65    10   256    0 yes    262144  256   1024  4500  4500 0x00 0x00
           lfuse                   0     0     0    0 no          1    1      0  9000  9000 0x00 0x00
           hfuse                   0     0     0    0 no          1    1      0  9000  9000 0x00 0x00
           efuse                   0     0     0    0 no          1    1      0  9000  9000 0x00 0x00
           lock                    0     0     0    0 no          1    1      0  9000  9000 0x00 0x00
           calibration             0     0     0    0 no          1    1      0     0     0 0x00 0x00
           signature               0     0     0    0 no          3    1      0     0     0 0x00 0x00

         Programmer Type : Wiring
         Description     : Wiring
         Programmer Model: AVRISP
         Hardware Version: 15
         Firmware Version Master : 2.10
         Vtarget         : 0.0 V
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e9801 (probably m2560)
avrdude: reading eeprom memory:

Reading | ################################################## | 100% 4.28s

avrdude: writing output file "<stdout>"
:20000000EFCDAB8967452301EFCDAB8967452301EFCDAB8967452301EFCDAB8967452301E0
:20002000EFCDAB8967452301EFCDAB8967452301EFCDAB8967452301EFCDAB8967452301C0
:20004000EFCDAB8967452301EFCDAB8967452301EFCDAB8967452301EFCDAB8967452301A0
:20006000EFCDAB8967452301EFCDAB8967452301EFCDAB8967452301EFCDAB896745230180
:20008000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80
:2000A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60
:2000C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40
:2000E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20
:20010000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
:20012000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
:20014000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF
:20016000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F
:20018000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F
:2001A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F
:2001C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F
:2001E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F
:20020000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE
:20022000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE
:20024000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE
:20026000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E
:20028000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E
:2002A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E
:2002C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E
:2002E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E
:20030000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
:20032000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD
:20034000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD
:20036000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D
:20038000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D
:2003A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D
:2003C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D
:2003E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D
:20040000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC
:20042000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC
:20044000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC
:20046000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C
:20048000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C
:2004A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C
:2004C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C
:2004E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C
:20050000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB
:20052000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB
:20054000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB
:20056000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B
:20058000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B
:2005A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B
:2005C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B
:2005E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B
:20060000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA
:20062000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA
:20064000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA
:20066000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A
:20068000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A
:2006A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A
:2006C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A
:2006E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A
:20070000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9
:20072000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9
:20074000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9
:20076000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99
:20078000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79
:2007A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59
:2007C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39
:2007E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19
:20080000EFCDAB8967452301EFCDAB8967452301EFCDAB8967452301EFCDAB8967452301D8
:20082000EFCDAB8967452301EFCDAB8967452301EFCDAB8967452301EFCDAB8967452301B8
:20084000EFCDAB8967452301EFCDAB8967452301EFCDAB8967452301EFCDAB896745230198
:20086000EFCDAB8967452301EFCDAB8967452301EFCDAB8967452301EFCDAB896745230178
:20088000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78
:2008A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58
:2008C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38
:2008E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18
:20090000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
:20092000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7
:20094000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7
:20096000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97
:20098000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77
:2009A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57
:2009C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37
:2009E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17
:200A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6
:200A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6
:200A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6
:200A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96
:200A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76
:200AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56
:200AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36
:200AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16
:200B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5
:200B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5
:200B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5
:200B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95
:200B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75
:200BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55
:200BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35
:200BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15
:200C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4
:200C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4
:200C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4
:200C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94
:200C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74
:200CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54
:200CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34
:200CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14
:200D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3
:200D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3
:200D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3
:200D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93
:200D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73
:200DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53
:200DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33
:200DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13
:200E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2
:200E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2
:200E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2
:200E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92
:200E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72
:200EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52
:200EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32
:200EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12
:200F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1
:200F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1
:200F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1
:200F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91
:200F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71
:200FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51
:200FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31
:200FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11
:00000001FF

avrdude done.  Thank you.

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.

@MCUdude
Copy link
Collaborator

MCUdude commented May 29, 2022

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:

$ echo "write eeprom 0x00 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16" | ./avrdude -c usbasp -vvv -p atmega2560 -t 
executable_abspath = /Users/hans/Downloads/avrdude/src/avrdude
executable_abspath_len = 41
executable_dirpath = /Users/hans/Downloads/avrdude/src
executable_dirpath_len = 33
sys_config = /Users/hans/Downloads/avrdude/src/avrdude.conf
sys_config_found = true


avrdude: Version 6.99-20211218
         Copyright (c) Brian Dean, http://www.bdmicro.com/
         Copyright (c) Joerg Wunsch

         System wide configuration file is "/Users/hans/Downloads/avrdude/src/avrdude.conf"
         User configuration file is "/Users/hans/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : usb
         Using Programmer              : usbasp
avrdude: usbasp_open("usb")
avrdude: seen device from vendor ->www.fischl.de<-
avrdude: seen product ->USBasp<-
         AVR Part                      : ATmega2560
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PA0
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         Serial program mode           : yes
         Parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                           Block Poll               Page                       Polled
           Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom                 65    10     8    0 no       4096    8      0  9000  9000 0x00 0x00
                                           Block Poll               Page                       Polled
           Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           flash                  65    10   256    0 yes    262144  256   1024  4500  4500 0x00 0x00
                                           Block Poll               Page                       Polled
           Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           lfuse                   0     0     0    0 no          1    1      0  9000  9000 0x00 0x00
                                           Block Poll               Page                       Polled
           Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           hfuse                   0     0     0    0 no          1    1      0  9000  9000 0x00 0x00
                                           Block Poll               Page                       Polled
           Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           efuse                   0     0     0    0 no          1    1      0  9000  9000 0x00 0x00
                                           Block Poll               Page                       Polled
           Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           lock                    0     0     0    0 no          1    1      0  9000  9000 0x00 0x00
                                           Block Poll               Page                       Polled
           Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           calibration             0     0     0    0 no          1    1      0     0     0 0x00 0x00
                                           Block Poll               Page                       Polled
           Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           signature               0     0     0    0 no          3    1      0     0     0 0x00 0x00

         Programmer Type : usbasp
         Description     : USBasp, http://www.fischl.de/usbasp/

avrdude: usbasp_initialize()
avrdude: usbasp_spi_set_sck_period(0)
avrdude: auto set sck period (because given equals null)
avrdude: usbasp_program_enable()
avrdude: AVR device initialized and ready to accept instructions

Reading |                                                    | 0% 0.00savrdude: usbasp_spi_cmd(0x30, 0x00, 0x00, 0x00) => 0x00, 0x30, 0x00, 0x1e
avrdude: usbasp_spi_cmd(0x30, 0x00, 0x01, 0x00) => 0x00, 0x30, 0x00, 0x98
Reading | #################                                  | 33% 0.00savrdude: usbasp_spi_cmd(0x30, 0x00, 0x02, 0x00) => 0x00, 0x30, 0x00, 0x01
Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9801 (probably m2560)
>>> write eeprom 0x00 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 

Info: Writing 16 bytes starting from address 0x00

Writing |                                                    | 0% 0.00savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x00, 0x00) => 0x00, 0xa0, 0x00, 0x01
avrdude: usbasp_spi_cmd(0xa0, 0x00, 0x00, 0x00) => 0x00, 0xa0, 0x00, 0x01
avrdude: usbasp_spi_cmd(0xa0, 0x00, 0x01, 0x00) => 0x00, 0xa0, 0x00, 0x02
avrdude: usbasp_spi_cmd(0xa0, 0x00, 0x01, 0x00) => 0x00, 0xa0, 0x00, 0x02
Writing | ###                                                | 6% 0.00savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x02, 0x00) => 0x00, 0xa0, 0x00, 0x03
avrdude: usbasp_spi_cmd(0xa0, 0x00, 0x02, 0x00) => 0x00, 0xa0, 0x00, 0x03
Writing | ######                                             | 12% 0.00savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x03, 0x00) => 0x00, 0xa0, 0x00, 0x04
avrdude: usbasp_spi_cmd(0xa0, 0x00, 0x03, 0x00) => 0x00, 0xa0, 0x00, 0x04
Writing | #########                                          | 18% 0.00savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x04, 0x00) => 0x00, 0xa0, 0x00, 0x05
avrdude: usbasp_spi_cmd(0xa0, 0x00, 0x04, 0x00) => 0x00, 0xa0, 0x00, 0x05
Writing | #############                                      | 25% 0.01savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x05, 0x00) => 0x00, 0xa0, 0x00, 0x06
avrdude: usbasp_spi_cmd(0xa0, 0x00, 0x05, 0x00) => 0x00, 0xa0, 0x00, 0x06
Writing | ################                                   | 31% 0.01savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x06, 0x00) => 0x00, 0xa0, 0x00, 0x07
avrdude: usbasp_spi_cmd(0xa0, 0x00, 0x06, 0x00) => 0x00, 0xa0, 0x00, 0x07
Writing | ###################                                | 37% 0.01savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x07, 0x00) => 0x00, 0xa0, 0x00, 0x08
avrdude: usbasp_spi_cmd(0xa0, 0x00, 0x07, 0x00) => 0x00, 0xa0, 0x00, 0x08
Writing | ######################                             | 43% 0.01savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x08, 0x00) => 0x00, 0xa0, 0x00, 0x09
avrdude: usbasp_spi_cmd(0xa0, 0x00, 0x08, 0x00) => 0x00, 0xa0, 0x00, 0x09
Writing | #########################                          | 50% 0.01savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x09, 0x00) => 0x00, 0xa0, 0x00, 0x0a
avrdude: usbasp_spi_cmd(0xa0, 0x00, 0x09, 0x00) => 0x00, 0xa0, 0x00, 0x0a
Writing | ############################                       | 56% 0.01savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x0a, 0x00) => 0x00, 0xa0, 0x00, 0x0b
avrdude: usbasp_spi_cmd(0xa0, 0x00, 0x0a, 0x00) => 0x00, 0xa0, 0x00, 0x0b
Writing | ###############################                    | 62% 0.01savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x0b, 0x00) => 0x00, 0xa0, 0x00, 0x0c
avrdude: usbasp_spi_cmd(0xa0, 0x00, 0x0b, 0x00) => 0x00, 0xa0, 0x00, 0x0c
Writing | ##################################                 | 68% 0.02savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x0c, 0x00) => 0x00, 0xa0, 0x00, 0x0d
avrdude: usbasp_spi_cmd(0xa0, 0x00, 0x0c, 0x00) => 0x00, 0xa0, 0x00, 0x0d
Writing | ######################################             | 75% 0.02savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x0d, 0x00) => 0x00, 0xa0, 0x00, 0x0e
avrdude: usbasp_spi_cmd(0xa0, 0x00, 0x0d, 0x00) => 0x00, 0xa0, 0x00, 0x0e
Writing | #########################################          | 81% 0.02savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x0e, 0x00) => 0x00, 0xa0, 0x00, 0x0f
avrdude: usbasp_spi_cmd(0xa0, 0x00, 0x0e, 0x00) => 0x00, 0xa0, 0x00, 0x0f
Writing | ############################################       | 87% 0.02savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x0f, 0x00) => 0x00, 0xa0, 0x00, 0x10
avrdude: usbasp_spi_cmd(0xa0, 0x00, 0x0f, 0x00) => 0x00, 0xa0, 0x00, 0x10
Writing | ################################################## | 100% 0.02s

avrdude: usbasp_close()

avrdude done.  Thank you.

Hanss-MacBook-Pro-2:src hans$ echo "write eeprom 0x00 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16" | ./avrdude -c usbasp -p atmega2560 -t 

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9801 (probably m2560)
>>> write eeprom 0x00 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 

Writing | ################################################## | 100% 0.02s


avrdude done.  Thank you.

USBasp read from EEPROM:

$ echo "read eeprom 0 0x40" | ./avrdude -c usbasp -vvv -p atmega2560 -t 
executable_abspath = /Users/hans/Downloads/avrdude/src/avrdude
executable_abspath_len = 41
executable_dirpath = /Users/hans/Downloads/avrdude/src
executable_dirpath_len = 33
sys_config = /Users/hans/Downloads/avrdude/src/avrdude.conf
sys_config_found = true


avrdude: Version 6.99-20211218
         Copyright (c) Brian Dean, http://www.bdmicro.com/
         Copyright (c) Joerg Wunsch

         System wide configuration file is "/Users/hans/Downloads/avrdude/src/avrdude.conf"
         User configuration file is "/Users/hans/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : usb
         Using Programmer              : usbasp
avrdude: usbasp_open("usb")
avrdude: seen device from vendor ->www.fischl.de<-
avrdude: seen product ->USBasp<-
         AVR Part                      : ATmega2560
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PA0
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         Serial program mode           : yes
         Parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                           Block Poll               Page                       Polled
           Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom                 65    10     8    0 no       4096    8      0  9000  9000 0x00 0x00
                                           Block Poll               Page                       Polled
           Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           flash                  65    10   256    0 yes    262144  256   1024  4500  4500 0x00 0x00
                                           Block Poll               Page                       Polled
           Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           lfuse                   0     0     0    0 no          1    1      0  9000  9000 0x00 0x00
                                           Block Poll               Page                       Polled
           Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           hfuse                   0     0     0    0 no          1    1      0  9000  9000 0x00 0x00
                                           Block Poll               Page                       Polled
           Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           efuse                   0     0     0    0 no          1    1      0  9000  9000 0x00 0x00
                                           Block Poll               Page                       Polled
           Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           lock                    0     0     0    0 no          1    1      0  9000  9000 0x00 0x00
                                           Block Poll               Page                       Polled
           Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           calibration             0     0     0    0 no          1    1      0     0     0 0x00 0x00
                                           Block Poll               Page                       Polled
           Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           signature               0     0     0    0 no          3    1      0     0     0 0x00 0x00

         Programmer Type : usbasp
         Description     : USBasp, http://www.fischl.de/usbasp/

avrdude: usbasp_initialize()
avrdude: usbasp_spi_set_sck_period(0)
avrdude: auto set sck period (because given equals null)
avrdude: usbasp_program_enable()
avrdude: AVR device initialized and ready to accept instructions

Reading |                                                    | 0% 0.00savrdude: usbasp_spi_cmd(0x30, 0x00, 0x00, 0x00) => 0x00, 0x30, 0x00, 0x1e
avrdude: usbasp_spi_cmd(0x30, 0x00, 0x01, 0x00) => 0x00, 0x30, 0x00, 0x98
Reading | #################                                  | 33% 0.00savrdude: usbasp_spi_cmd(0x30, 0x00, 0x02, 0x00) => 0x00, 0x30, 0x00, 0x01
Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9801 (probably m2560)
>>> read eeprom 0 0x40 

Reading |                                                    | 0% 0.00savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x00, 0x00) => 0x00, 0xa0, 0x00, 0x01
avrdude: usbasp_spi_cmd(0xa0, 0x00, 0x01, 0x00) => 0x00, 0xa0, 0x00, 0x02
Reading | #                                                  | 1% 0.00savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x02, 0x00) => 0x00, 0xa0, 0x00, 0x03
Reading | ##                                                 | 3% 0.00savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x03, 0x00) => 0x00, 0xa0, 0x00, 0x04
Reading | ##                                                 | 4% 0.00savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x04, 0x00) => 0x00, 0xa0, 0x00, 0x05
Reading | ###                                                | 6% 0.00savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x05, 0x00) => 0x00, 0xa0, 0x00, 0x06
Reading | ####                                               | 7% 0.00savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x06, 0x00) => 0x00, 0xa0, 0x00, 0x07
Reading | #####                                              | 9% 0.00savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x07, 0x00) => 0x00, 0xa0, 0x00, 0x08
Reading | #####                                              | 10% 0.01savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x08, 0x00) => 0x00, 0xa0, 0x00, 0x09
Reading | ######                                             | 12% 0.01savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x09, 0x00) => 0x00, 0xa0, 0x00, 0x0a
Reading | #######                                            | 14% 0.01savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x0a, 0x00) => 0x00, 0xa0, 0x00, 0x0b
Reading | ########                                           | 15% 0.01savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x0b, 0x00) => 0x00, 0xa0, 0x00, 0x0c
Reading | #########                                          | 17% 0.01savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x0c, 0x00) => 0x00, 0xa0, 0x00, 0x0d
Reading | #########                                          | 18% 0.01savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x0d, 0x00) => 0x00, 0xa0, 0x00, 0x0e
Reading | ##########                                         | 20% 0.01savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x0e, 0x00) => 0x00, 0xa0, 0x00, 0x0f
Reading | ###########                                        | 21% 0.01savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x0f, 0x00) => 0x00, 0xa0, 0x00, 0x10
Reading | ############                                       | 23% 0.01savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x10, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | #############                                      | 25% 0.01savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x11, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | #############                                      | 26% 0.01savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x12, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | ##############                                     | 28% 0.01savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x13, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | ###############                                    | 29% 0.01savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x14, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | ################                                   | 31% 0.01savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x15, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | ################                                   | 32% 0.02savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x16, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | #################                                  | 34% 0.02savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x17, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | ##################                                 | 35% 0.02savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x18, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | ###################                                | 37% 0.02savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x19, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | ####################                               | 39% 0.02savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x1a, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | ####################                               | 40% 0.02savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x1b, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | #####################                              | 42% 0.02savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x1c, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | ######################                             | 43% 0.02savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x1d, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | #######################                            | 45% 0.02savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x1e, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | #######################                            | 46% 0.02savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x1f, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | ########################                           | 48% 0.02savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x20, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | #########################                          | 50% 0.02savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x21, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | ##########################                         | 51% 0.02savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x22, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | ###########################                        | 53% 0.02savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x23, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | ###########################                        | 54% 0.02savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x24, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | ############################                       | 56% 0.02savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x25, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | #############################                      | 57% 0.03savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x26, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | ##############################                     | 59% 0.03savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x27, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | ##############################                     | 60% 0.03savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x28, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | ###############################                    | 62% 0.03savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x29, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | ################################                   | 64% 0.03savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x2a, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | #################################                  | 65% 0.03savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x2b, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | ##################################                 | 67% 0.03savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x2c, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | ##################################                 | 68% 0.03savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x2d, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | ###################################                | 70% 0.03savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x2e, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | ####################################               | 71% 0.03savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x2f, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | #####################################              | 73% 0.03savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x30, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | ######################################             | 75% 0.03savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x31, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | ######################################             | 76% 0.03savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x32, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | #######################################            | 78% 0.03savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x33, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | ########################################           | 79% 0.04savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x34, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | #########################################          | 81% 0.04savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x35, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | #########################################          | 82% 0.04savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x36, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | ##########################################         | 84% 0.04savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x37, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | ###########################################        | 85% 0.04savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x38, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | ############################################       | 87% 0.04savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x39, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | #############################################      | 89% 0.04savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x3a, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | #############################################      | 90% 0.04savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x3b, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | ##############################################     | 92% 0.04savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x3c, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | ###############################################    | 93% 0.04savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x3d, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | ################################################   | 95% 0.04savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x3e, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | ################################################   | 96% 0.04savrdude: usbasp_spi_cmd(0xa0, 0x00, 0x3f, 0x00) => 0x00, 0xa0, 0x00, 0xff
Reading | ################################################## | 100% 0.04s

0000  01 02 03 04 05 06 07 08  09 0a 0b 0c 0d 0e 0f 10  |........     ...|
0010  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
0020  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
0030  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|

avrdude: usbasp_close()

avrdude done.  Thank you.

Dragon ISP read from EEPROM:

$ echo "read eeprom 0 0x40" | ./avrdude -c dragon_isp -vvv -p atmega2560 -t 
executable_abspath = /Users/hans/Downloads/avrdude/src/avrdude
executable_abspath_len = 41
executable_dirpath = /Users/hans/Downloads/avrdude/src
executable_dirpath_len = 33
sys_config = /Users/hans/Downloads/avrdude/src/avrdude.conf
sys_config_found = true


avrdude: Version 6.99-20211218
         Copyright (c) Brian Dean, http://www.bdmicro.com/
         Copyright (c) Joerg Wunsch

         System wide configuration file is "/Users/hans/Downloads/avrdude/src/avrdude.conf"
         User configuration file is "/Users/hans/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : usb
         Using Programmer              : dragon_isp
avrdude: stk500v2_dragon_isp_open()
avrdude: usbdev_open(): Found AVRDRAGON, serno: 00A200000F1A
avrdude: jtagmkII_getsync()
avrdude: jtagmkII_getsync() attempt 1 of 10: Sending sign-on command: 
avrdude: jtagmkII_send(): sending 1 bytes

avrdude: jtagmkII_recv(): Got message seqno 65535 (command_sequence == 0)
avrdude: jtagmkII_recv(): got asynchronous event

avrdude: jtagmkII_recv(): Got message seqno 0 (command_sequence == 0)

Sign-on succeeded

JTAG ICE mkII sign-on message:
Communications protocol version: 1
M_MCU:
  boot-loader FW version:        255
  firmware version:              7.39
  hardware version:              1
S_MCU:
  boot-loader FW version:        255
  firmware version:              7.39
  hardware version:              2
Serial number:                   00:a2:00:00:0f:1a
Device ID:                       AVRDRAGON
avrdude: jtagmkII_setparm()
avrdude: jtagmkII_setparm(): Sending set parameter command (parm 0x03, 1 bytes): 
avrdude: jtagmkII_send(): sending 3 bytes

avrdude: jtagmkII_recv(): Got message seqno 1 (command_sequence == 1)

OK

avrdude: jtagmkII_getsync(): Sending get sync command: 
avrdude: jtagmkII_send(): sending 1 bytes

avrdude: jtagmkII_recv(): Got message seqno 2 (command_sequence == 2)

OK

         AVR Part                      : ATmega2560
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PA0
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         Serial program mode           : yes
         Parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                           Block Poll               Page                       Polled
           Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom                 65    10     8    0 no       4096    8      0  9000  9000 0x00 0x00
                                           Block Poll               Page                       Polled
           Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           flash                  65    10   256    0 yes    262144  256   1024  4500  4500 0x00 0x00
                                           Block Poll               Page                       Polled
           Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           lfuse                   0     0     0    0 no          1    1      0  9000  9000 0x00 0x00
                                           Block Poll               Page                       Polled
           Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           hfuse                   0     0     0    0 no          1    1      0  9000  9000 0x00 0x00
                                           Block Poll               Page                       Polled
           Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           efuse                   0     0     0    0 no          1    1      0  9000  9000 0x00 0x00
                                           Block Poll               Page                       Polled
           Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           lock                    0     0     0    0 no          1    1      0  9000  9000 0x00 0x00
                                           Block Poll               Page                       Polled
           Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           calibration             0     0     0    0 no          1    1      0     0     0 0x00 0x00
                                           Block Poll               Page                       Polled
           Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           signature               0     0     0    0 no          3    1      0     0     0 0x00 0x00

         Programmer Type : DRAGON_ISP
         Description     : Atmel AVR Dragon in ISP mode
avrdude: jtagmkII_getparm()
avrdude: jtagmkII_getparm(): Sending get parameter command (parm 0x06): 
avrdude: jtagmkII_send(): sending 2 bytes

avrdude: jtagmkII_recv(): Got message seqno 3 (command_sequence == 3)

parameter values:
0x78  0x12  

         Vtarget         : 4.7 V

avrdude: jtagmkII_send(): sending 5 bytes

avrdude: jtagmkII_recv(): Got message seqno 4 (command_sequence == 4)
         SCK period      : 32.12 us


avrdude: jtagmkII_send(): sending 15 bytes

avrdude: jtagmkII_recv(): Got message seqno 5 (command_sequence == 5)
avrdude: AVR device initialized and ready to accept instructions

Reading |                                                    | 0% 0.00savrdude: stk500isp_read_byte(.., signature, 0x0, ...)
avrdude: stk500isp_read_byte(): Sending read memory command: 
avrdude: jtagmkII_send(): sending 9 bytes

avrdude: jtagmkII_recv(): Got message seqno 6 (command_sequence == 6)
avrdude: stk500isp_read_byte(.., signature, 0x1, ...)
avrdude: stk500isp_read_byte(): Sending read memory command: 
avrdude: jtagmkII_send(): sending 9 bytes

avrdude: jtagmkII_recv(): Got message seqno 7 (command_sequence == 7)
Reading | #################                                  | 33% 0.10savrdude: stk500isp_read_byte(.., signature, 0x2, ...)
avrdude: stk500isp_read_byte(): Sending read memory command: 
avrdude: jtagmkII_send(): sending 9 bytes

avrdude: jtagmkII_recv(): Got message seqno 8 (command_sequence == 8)
Reading | ################################################## | 100% 0.15s

avrdude: Device signature = 0x1e9801 (probably m2560)
>>> read eeprom 0 0x40 

Reading |                                                    | 0% 0.00savrdude: stk500isp_read_byte(.., eeprom, 0x0, ...)

avrdude: jtagmkII_send(): sending 8 bytes

avrdude: jtagmkII_recv(): Got message seqno 9 (command_sequence == 9)

avrdude: jtagmkII_send(): sending 7 bytes

avrdude: jtagmkII_recv(): Got message seqno 10 (command_sequence == 10)
avrdude: stk500isp_read_byte(.., eeprom, 0x1, ...)
Reading | #                                                  | 1% 0.11savrdude: stk500isp_read_byte(.., eeprom, 0x2, ...)
Reading | ##                                                 | 3% 0.11savrdude: stk500isp_read_byte(.., eeprom, 0x3, ...)
Reading | ##                                                 | 4% 0.11savrdude: stk500isp_read_byte(.., eeprom, 0x4, ...)
Reading | ###                                                | 6% 0.11savrdude: stk500isp_read_byte(.., eeprom, 0x5, ...)
Reading | ####                                               | 7% 0.11savrdude: stk500isp_read_byte(.., eeprom, 0x6, ...)
Reading | #####                                              | 9% 0.11savrdude: stk500isp_read_byte(.., eeprom, 0x7, ...)
Reading | #####                                              | 10% 0.11savrdude: stk500isp_read_byte(.., eeprom, 0x8, ...)

avrdude: jtagmkII_send(): sending 8 bytes

avrdude: jtagmkII_recv(): Got message seqno 11 (command_sequence == 11)

avrdude: jtagmkII_send(): sending 7 bytes

avrdude: jtagmkII_recv(): Got message seqno 12 (command_sequence == 12)
Reading | ######                                             | 12% 0.22savrdude: stk500isp_read_byte(.., eeprom, 0x9, ...)
Reading | #######                                            | 14% 0.22savrdude: stk500isp_read_byte(.., eeprom, 0xa, ...)
Reading | ########                                           | 15% 0.22savrdude: stk500isp_read_byte(.., eeprom, 0xb, ...)
Reading | #########                                          | 17% 0.22savrdude: stk500isp_read_byte(.., eeprom, 0xc, ...)
Reading | #########                                          | 18% 0.22savrdude: stk500isp_read_byte(.., eeprom, 0xd, ...)
Reading | ##########                                         | 20% 0.22savrdude: stk500isp_read_byte(.., eeprom, 0xe, ...)
Reading | ###########                                        | 21% 0.22savrdude: stk500isp_read_byte(.., eeprom, 0xf, ...)
Reading | ############                                       | 23% 0.22savrdude: stk500isp_read_byte(.., eeprom, 0x10, ...)

avrdude: jtagmkII_send(): sending 8 bytes

avrdude: jtagmkII_recv(): Got message seqno 13 (command_sequence == 13)

avrdude: jtagmkII_send(): sending 7 bytes

avrdude: jtagmkII_recv(): Got message seqno 14 (command_sequence == 14)
Reading | #############                                      | 25% 0.33savrdude: stk500isp_read_byte(.., eeprom, 0x11, ...)
Reading | #############                                      | 26% 0.33savrdude: stk500isp_read_byte(.., eeprom, 0x12, ...)
Reading | ##############                                     | 28% 0.33savrdude: stk500isp_read_byte(.., eeprom, 0x13, ...)
Reading | ###############                                    | 29% 0.33savrdude: stk500isp_read_byte(.., eeprom, 0x14, ...)
Reading | ################                                   | 31% 0.33savrdude: stk500isp_read_byte(.., eeprom, 0x15, ...)
Reading | ################                                   | 32% 0.33savrdude: stk500isp_read_byte(.., eeprom, 0x16, ...)
Reading | #################                                  | 34% 0.33savrdude: stk500isp_read_byte(.., eeprom, 0x17, ...)
Reading | ##################                                 | 35% 0.33savrdude: stk500isp_read_byte(.., eeprom, 0x18, ...)

avrdude: jtagmkII_send(): sending 8 bytes

avrdude: jtagmkII_recv(): Got message seqno 15 (command_sequence == 15)

avrdude: jtagmkII_send(): sending 7 bytes

avrdude: jtagmkII_recv(): Got message seqno 16 (command_sequence == 16)
Reading | ###################                                | 37% 0.44savrdude: stk500isp_read_byte(.., eeprom, 0x19, ...)
Reading | ####################                               | 39% 0.44savrdude: stk500isp_read_byte(.., eeprom, 0x1a, ...)
Reading | ####################                               | 40% 0.44savrdude: stk500isp_read_byte(.., eeprom, 0x1b, ...)
Reading | #####################                              | 42% 0.44savrdude: stk500isp_read_byte(.., eeprom, 0x1c, ...)
Reading | ######################                             | 43% 0.44savrdude: stk500isp_read_byte(.., eeprom, 0x1d, ...)
Reading | #######################                            | 45% 0.44savrdude: stk500isp_read_byte(.., eeprom, 0x1e, ...)
Reading | #######################                            | 46% 0.44savrdude: stk500isp_read_byte(.., eeprom, 0x1f, ...)
Reading | ########################                           | 48% 0.44savrdude: stk500isp_read_byte(.., eeprom, 0x20, ...)

avrdude: jtagmkII_send(): sending 8 bytes

avrdude: jtagmkII_recv(): Got message seqno 17 (command_sequence == 17)

avrdude: jtagmkII_send(): sending 7 bytes

avrdude: jtagmkII_recv(): Got message seqno 18 (command_sequence == 18)
Reading | #########################                          | 50% 0.56savrdude: stk500isp_read_byte(.., eeprom, 0x21, ...)
Reading | ##########################                         | 51% 0.56savrdude: stk500isp_read_byte(.., eeprom, 0x22, ...)
Reading | ###########################                        | 53% 0.56savrdude: stk500isp_read_byte(.., eeprom, 0x23, ...)
Reading | ###########################                        | 54% 0.56savrdude: stk500isp_read_byte(.., eeprom, 0x24, ...)
Reading | ############################                       | 56% 0.56savrdude: stk500isp_read_byte(.., eeprom, 0x25, ...)
Reading | #############################                      | 57% 0.56savrdude: stk500isp_read_byte(.., eeprom, 0x26, ...)
Reading | ##############################                     | 59% 0.56savrdude: stk500isp_read_byte(.., eeprom, 0x27, ...)
Reading | ##############################                     | 60% 0.56savrdude: stk500isp_read_byte(.., eeprom, 0x28, ...)

avrdude: jtagmkII_send(): sending 8 bytes

avrdude: jtagmkII_recv(): Got message seqno 19 (command_sequence == 19)

avrdude: jtagmkII_send(): sending 7 bytes

avrdude: jtagmkII_recv(): Got message seqno 20 (command_sequence == 20)
Reading | ###############################                    | 62% 0.67savrdude: stk500isp_read_byte(.., eeprom, 0x29, ...)
Reading | ################################                   | 64% 0.67savrdude: stk500isp_read_byte(.., eeprom, 0x2a, ...)
Reading | #################################                  | 65% 0.67savrdude: stk500isp_read_byte(.., eeprom, 0x2b, ...)
Reading | ##################################                 | 67% 0.67savrdude: stk500isp_read_byte(.., eeprom, 0x2c, ...)
Reading | ##################################                 | 68% 0.67savrdude: stk500isp_read_byte(.., eeprom, 0x2d, ...)
Reading | ###################################                | 70% 0.67savrdude: stk500isp_read_byte(.., eeprom, 0x2e, ...)
Reading | ####################################               | 71% 0.67savrdude: stk500isp_read_byte(.., eeprom, 0x2f, ...)
Reading | #####################################              | 73% 0.67savrdude: stk500isp_read_byte(.., eeprom, 0x30, ...)

avrdude: jtagmkII_send(): sending 8 bytes

avrdude: jtagmkII_recv(): Got message seqno 21 (command_sequence == 21)

avrdude: jtagmkII_send(): sending 7 bytes

avrdude: jtagmkII_recv(): Got message seqno 22 (command_sequence == 22)
Reading | ######################################             | 75% 0.78savrdude: stk500isp_read_byte(.., eeprom, 0x31, ...)
Reading | ######################################             | 76% 0.78savrdude: stk500isp_read_byte(.., eeprom, 0x32, ...)
Reading | #######################################            | 78% 0.78savrdude: stk500isp_read_byte(.., eeprom, 0x33, ...)
Reading | ########################################           | 79% 0.78savrdude: stk500isp_read_byte(.., eeprom, 0x34, ...)
Reading | #########################################          | 81% 0.78savrdude: stk500isp_read_byte(.., eeprom, 0x35, ...)
Reading | #########################################          | 82% 0.78savrdude: stk500isp_read_byte(.., eeprom, 0x36, ...)
Reading | ##########################################         | 84% 0.78savrdude: stk500isp_read_byte(.., eeprom, 0x37, ...)
Reading | ###########################################        | 85% 0.78savrdude: stk500isp_read_byte(.., eeprom, 0x38, ...)

avrdude: jtagmkII_send(): sending 8 bytes

avrdude: jtagmkII_recv(): Got message seqno 23 (command_sequence == 23)

avrdude: jtagmkII_send(): sending 7 bytes

avrdude: jtagmkII_recv(): Got message seqno 24 (command_sequence == 24)
Reading | ############################################       | 87% 0.89savrdude: stk500isp_read_byte(.., eeprom, 0x39, ...)
Reading | #############################################      | 89% 0.89savrdude: stk500isp_read_byte(.., eeprom, 0x3a, ...)
Reading | #############################################      | 90% 0.89savrdude: stk500isp_read_byte(.., eeprom, 0x3b, ...)
Reading | ##############################################     | 92% 0.89savrdude: stk500isp_read_byte(.., eeprom, 0x3c, ...)
Reading | ###############################################    | 93% 0.89savrdude: stk500isp_read_byte(.., eeprom, 0x3d, ...)
Reading | ################################################   | 95% 0.89savrdude: stk500isp_read_byte(.., eeprom, 0x3e, ...)
Reading | ################################################   | 96% 0.89savrdude: stk500isp_read_byte(.., eeprom, 0x3f, ...)
Reading | ################################################## | 100% 0.89s

0000  01 02 03 04 05 06 07 08  09 0a 0b 0c 0d 0e 0f 10  |........     ...|
0010  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
0020  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
0030  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|


avrdude: jtagmkII_send(): sending 6 bytes

avrdude: jtagmkII_recv(): Got message seqno 25 (command_sequence == 25)
avrdude: stk500v2_jtagmkII_close()
avrdude: jtagmkII_close()
avrdude: jtagmkII_close(): Sending sign-off command: 
avrdude: jtagmkII_send(): sending 1 bytes

avrdude: jtagmkII_recv(): Got message seqno 26 (command_sequence == 26)

OK


avrdude done.  Thank you.

STK500v2 bootloader read from EEPROM:

$ echo "read eeprom 0 0x40" | ./avrdude -c wiring -P /dev/cu.usbmodem14201 -vvv -p atmega2560 -t 
executable_abspath = /Users/hans/Downloads/avrdude/src/avrdude
executable_abspath_len = 41
executable_dirpath = /Users/hans/Downloads/avrdude/src
executable_dirpath_len = 33
sys_config = /Users/hans/Downloads/avrdude/src/avrdude.conf
sys_config_found = true


avrdude: Version 6.99-20211218
         Copyright (c) Brian Dean, http://www.bdmicro.com/
         Copyright (c) Joerg Wunsch

         System wide configuration file is "/Users/hans/Downloads/avrdude/src/avrdude.conf"
         User configuration file is "/Users/hans/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/cu.usbmodem14201
         Using Programmer              : wiring
avrdude: wiring_open(): releasing DTR/RTS
avrdude: wiring_open(): asserting DTR/RTS
avrdude: stk500v2_getsync(): found AVRISP programmer
         AVR Part                      : ATmega2560
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PA0
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         Serial program mode           : yes
         Parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                           Block Poll               Page                       Polled
           Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom                 65    10     8    0 no       4096    8      0  9000  9000 0x00 0x00
                                           Block Poll               Page                       Polled
           Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           flash                  65    10   256    0 yes    262144  256   1024  4500  4500 0x00 0x00
                                           Block Poll               Page                       Polled
           Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           lfuse                   0     0     0    0 no          1    1      0  9000  9000 0x00 0x00
                                           Block Poll               Page                       Polled
           Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           hfuse                   0     0     0    0 no          1    1      0  9000  9000 0x00 0x00
                                           Block Poll               Page                       Polled
           Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           efuse                   0     0     0    0 no          1    1      0  9000  9000 0x00 0x00
                                           Block Poll               Page                       Polled
           Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           lock                    0     0     0    0 no          1    1      0  9000  9000 0x00 0x00
                                           Block Poll               Page                       Polled
           Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           calibration             0     0     0    0 no          1    1      0     0     0 0x00 0x00
                                           Block Poll               Page                       Polled
           Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           signature               0     0     0    0 no          3    1      0     0     0 0x00 0x00

         Programmer Type : Wiring
         Description     : Wiring
         Programmer Model: AVRISP
         Hardware Version: 15
         Firmware Version Master : 2.10
         Vtarget         : 0.0 V
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading |                                                    | 0% 0.00savrdude: stk500isp_read_byte(.., signature, 0x0, ...)
avrdude: stk500isp_read_byte(): Sending read memory command: avrdude: stk500isp_read_byte(.., signature, 0x1, ...)
Reading | #################                                  | 33% 0.01savrdude: stk500isp_read_byte(.., signature, 0x2, ...)
Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e9801 (probably m2560)
>>> read eeprom 0 0x40 

Reading |                                                    | 0% 0.00savrdude: stk500isp_read_byte(.., eeprom, 0x0, ...)
avrdude: stk500isp_read_byte(.., eeprom, 0x1, ...)
Reading | #                                                  | 1% 0.01savrdude: stk500isp_read_byte(.., eeprom, 0x2, ...)
Reading | ##                                                 | 3% 0.01savrdude: stk500isp_read_byte(.., eeprom, 0x3, ...)
Reading | ##                                                 | 4% 0.01savrdude: stk500isp_read_byte(.., eeprom, 0x4, ...)
Reading | ###                                                | 6% 0.01savrdude: stk500isp_read_byte(.., eeprom, 0x5, ...)
Reading | ####                                               | 7% 0.01savrdude: stk500isp_read_byte(.., eeprom, 0x6, ...)
Reading | #####                                              | 9% 0.01savrdude: stk500isp_read_byte(.., eeprom, 0x7, ...)
Reading | #####                                              | 10% 0.01savrdude: stk500isp_read_byte(.., eeprom, 0x8, ...)
Reading | ######                                             | 12% 0.02savrdude: stk500isp_read_byte(.., eeprom, 0x9, ...)
Reading | #######                                            | 14% 0.02savrdude: stk500isp_read_byte(.., eeprom, 0xa, ...)
Reading | ########                                           | 15% 0.02savrdude: stk500isp_read_byte(.., eeprom, 0xb, ...)
Reading | #########                                          | 17% 0.02savrdude: stk500isp_read_byte(.., eeprom, 0xc, ...)
Reading | #########                                          | 18% 0.02savrdude: stk500isp_read_byte(.., eeprom, 0xd, ...)
Reading | ##########                                         | 20% 0.02savrdude: stk500isp_read_byte(.., eeprom, 0xe, ...)
Reading | ###########                                        | 21% 0.02savrdude: stk500isp_read_byte(.., eeprom, 0xf, ...)
Reading | ############                                       | 23% 0.02savrdude: stk500isp_read_byte(.., eeprom, 0x10, ...)
Reading | #############                                      | 25% 0.02savrdude: stk500isp_read_byte(.., eeprom, 0x11, ...)
Reading | #############                                      | 26% 0.02savrdude: stk500isp_read_byte(.., eeprom, 0x12, ...)
Reading | ##############                                     | 28% 0.02savrdude: stk500isp_read_byte(.., eeprom, 0x13, ...)
Reading | ###############                                    | 29% 0.02savrdude: stk500isp_read_byte(.., eeprom, 0x14, ...)
Reading | ################                                   | 31% 0.02savrdude: stk500isp_read_byte(.., eeprom, 0x15, ...)
Reading | ################                                   | 32% 0.02savrdude: stk500isp_read_byte(.., eeprom, 0x16, ...)
Reading | #################                                  | 34% 0.02savrdude: stk500isp_read_byte(.., eeprom, 0x17, ...)
Reading | ##################                                 | 35% 0.02savrdude: stk500isp_read_byte(.., eeprom, 0x18, ...)
Reading | ###################                                | 37% 0.03savrdude: stk500isp_read_byte(.., eeprom, 0x19, ...)
Reading | ####################                               | 39% 0.03savrdude: stk500isp_read_byte(.., eeprom, 0x1a, ...)
Reading | ####################                               | 40% 0.03savrdude: stk500isp_read_byte(.., eeprom, 0x1b, ...)
Reading | #####################                              | 42% 0.03savrdude: stk500isp_read_byte(.., eeprom, 0x1c, ...)
Reading | ######################                             | 43% 0.03savrdude: stk500isp_read_byte(.., eeprom, 0x1d, ...)
Reading | #######################                            | 45% 0.03savrdude: stk500isp_read_byte(.., eeprom, 0x1e, ...)
Reading | #######################                            | 46% 0.03savrdude: stk500isp_read_byte(.., eeprom, 0x1f, ...)
Reading | ########################                           | 48% 0.03savrdude: stk500isp_read_byte(.., eeprom, 0x20, ...)
Reading | #########################                          | 50% 0.04savrdude: stk500isp_read_byte(.., eeprom, 0x21, ...)
Reading | ##########################                         | 51% 0.04savrdude: stk500isp_read_byte(.., eeprom, 0x22, ...)
Reading | ###########################                        | 53% 0.04savrdude: stk500isp_read_byte(.., eeprom, 0x23, ...)
Reading | ###########################                        | 54% 0.04savrdude: stk500isp_read_byte(.., eeprom, 0x24, ...)
Reading | ############################                       | 56% 0.04savrdude: stk500isp_read_byte(.., eeprom, 0x25, ...)
Reading | #############################                      | 57% 0.04savrdude: stk500isp_read_byte(.., eeprom, 0x26, ...)
Reading | ##############################                     | 59% 0.04savrdude: stk500isp_read_byte(.., eeprom, 0x27, ...)
Reading | ##############################                     | 60% 0.04savrdude: stk500isp_read_byte(.., eeprom, 0x28, ...)
Reading | ###############################                    | 62% 0.05savrdude: stk500isp_read_byte(.., eeprom, 0x29, ...)
Reading | ################################                   | 64% 0.05savrdude: stk500isp_read_byte(.., eeprom, 0x2a, ...)
Reading | #################################                  | 65% 0.05savrdude: stk500isp_read_byte(.., eeprom, 0x2b, ...)
Reading | ##################################                 | 67% 0.05savrdude: stk500isp_read_byte(.., eeprom, 0x2c, ...)
Reading | ##################################                 | 68% 0.05savrdude: stk500isp_read_byte(.., eeprom, 0x2d, ...)
Reading | ###################################                | 70% 0.05savrdude: stk500isp_read_byte(.., eeprom, 0x2e, ...)
Reading | ####################################               | 71% 0.05savrdude: stk500isp_read_byte(.., eeprom, 0x2f, ...)
Reading | #####################################              | 73% 0.05savrdude: stk500isp_read_byte(.., eeprom, 0x30, ...)
Reading | ######################################             | 75% 0.06savrdude: stk500isp_read_byte(.., eeprom, 0x31, ...)
Reading | ######################################             | 76% 0.06savrdude: stk500isp_read_byte(.., eeprom, 0x32, ...)
Reading | #######################################            | 78% 0.06savrdude: stk500isp_read_byte(.., eeprom, 0x33, ...)
Reading | ########################################           | 79% 0.06savrdude: stk500isp_read_byte(.., eeprom, 0x34, ...)
Reading | #########################################          | 81% 0.06savrdude: stk500isp_read_byte(.., eeprom, 0x35, ...)
Reading | #########################################          | 82% 0.06savrdude: stk500isp_read_byte(.., eeprom, 0x36, ...)
Reading | ##########################################         | 84% 0.06savrdude: stk500isp_read_byte(.., eeprom, 0x37, ...)
Reading | ###########################################        | 85% 0.06savrdude: stk500isp_read_byte(.., eeprom, 0x38, ...)
Reading | ############################################       | 87% 0.06savrdude: stk500isp_read_byte(.., eeprom, 0x39, ...)
Reading | #############################################      | 89% 0.06savrdude: stk500isp_read_byte(.., eeprom, 0x3a, ...)
Reading | #############################################      | 90% 0.06savrdude: stk500isp_read_byte(.., eeprom, 0x3b, ...)
Reading | ##############################################     | 92% 0.06savrdude: stk500isp_read_byte(.., eeprom, 0x3c, ...)
Reading | ###############################################    | 93% 0.06savrdude: stk500isp_read_byte(.., eeprom, 0x3d, ...)
Reading | ################################################   | 95% 0.06savrdude: stk500isp_read_byte(.., eeprom, 0x3e, ...)
Reading | ################################################   | 96% 0.06savrdude: stk500isp_read_byte(.., eeprom, 0x3f, ...)
Reading | ################################################## | 100% 0.06s

0000  01 02 03 04 05 06 07 08  ff ff ff ff ff ff ff ff  |................|
0010  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
0020  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
0030  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|


avrdude done.  Thank you.

@MCUdude MCUdude closed this as not planned Won't fix, can't repro, duplicate, stale May 29, 2022
@mcuee
Copy link
Collaborator

mcuee commented May 30, 2022

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.
Some examples:

@mcuee
Copy link
Collaborator

mcuee commented Jun 3, 2022

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
PS C:\work\avr\avrdude_test\avrdude-v7.0-windows-x64> echo "read eeprom 0 0x40" | ./avrdude -c wiring -P COM9 -vvv -p at
mega2560 -t
executable_abspath = C:/work/avr/avrdude_test/avrdude-v7.0-windows-x64/avrdude.exe
executable_abspath_len = 61
executable_dirpath = C:/work/avr/avrdude_test/avrdude-v7.0-windows-x64
executable_dirpath_len = 49
sys_config = C:/work/avr/avrdude_test/avrdude-v7.0-windows-x64/avrdude.conf
sys_config_found = true


avrdude.exe: Version 7.0
             Copyright (c) Brian Dean, http://www.bdmicro.com/
             Copyright (c) Joerg Wunsch

             System wide configuration file is "C:/work/avr/avrdude_test/avrdude-v7.0-windows-x64/avrdude.conf"

             Using Port                    : COM9
             Using Programmer              : wiring
avrdude.exe: wiring_open(): releasing DTR/RTS
avrdude.exe: wiring_open(): asserting DTR/RTS
avrdude.exe: ser_recv(): programmer is not responding
avrdude.exe: stk500v2_ReceiveMessage(): timeout
PS C:\work\avr\avrdude_test\avrdude-v7.0-windows-x64> echo "read eeprom 0 0x40" | ./avrdude -c wiring -P COM9 -vvv -p atmega2560 -t
executable_abspath = C:/work/avr/avrdude_test/avrdude-v7.0-windows-x64/avrdude.exe
executable_abspath_len = 61
executable_dirpath = C:/work/avr/avrdude_test/avrdude-v7.0-windows-x64
executable_dirpath_len = 49
sys_config = C:/work/avr/avrdude_test/avrdude-v7.0-windows-x64/avrdude.conf
sys_config_found = true


avrdude.exe: Version 7.0
             Copyright (c) Brian Dean, http://www.bdmicro.com/
             Copyright (c) Joerg Wunsch

             System wide configuration file is "C:/work/avr/avrdude_test/avrdude-v7.0-windows-x64/avrdude.conf"

             Using Port                    : COM9
             Using Programmer              : wiring
avrdude.exe: wiring_open(): releasing DTR/RTS
avrdude.exe: wiring_open(): asserting DTR/RTS
avrdude.exe: stk500v2_getsync(): found AVRISP programmer
             AVR Part                      : ATmega2560
             Chip Erase delay              : 9000 us
             PAGEL                         : PD7
             BS2                           : PA0
             RESET disposition             : dedicated
             RETRY pulse                   : SCK
             Serial program mode           : yes
             Parallel program mode         : yes
             Timeout                       : 200
             StabDelay                     : 100
             CmdexeDelay                   : 25
             SyncLoops                     : 32
             PollIndex                     : 3
             PollValue                     : 0x53
             Memory Detail                 :

                                               Block Poll               Page                       Polled
               Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
               ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
               eeprom                 65    10     8    0 no       4096    8      0  9000  9000 0x00 0x00
                                               Block Poll               Page                       Polled
               Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
               ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
               flash                  65    10   256    0 yes    262144  256   1024  4500  4500 0x00 0x00
                                               Block Poll               Page                       Polled
               Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
               ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
               lfuse                   0     0     0    0 no          1    1      0  9000  9000 0x00 0x00
                                               Block Poll               Page                       Polled
               Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
               ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
               hfuse                   0     0     0    0 no          1    1      0  9000  9000 0x00 0x00
                                               Block Poll               Page                       Polled
               Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
               ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
               efuse                   0     0     0    0 no          1    1      0  9000  9000 0x00 0x00
                                               Block Poll               Page                       Polled
               Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
               ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
               lock                    0     0     0    0 no          1    1      0  9000  9000 0x00 0x00
                                               Block Poll               Page                       Polled
               Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
               ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
               calibration             0     0     0    0 no          1    1      0     0     0 0x00 0x00
                                               Block Poll               Page                       Polled
               Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
               ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
               signature               0     0     0    0 no          3    1      0     0     0 0x00 0x00

             Programmer Type : Wiring
             Description     : Wiring
             Programmer Model: AVRISP
             Hardware Version: 15
             Firmware Version Master : 2.10
             Vtarget         : 0.0 V
             SCK period      : 0.1 us

avrdude.exe: AVR device initialized and ready to accept instructions

Reading |                                                    | 0% 0.00savrdude.exe: stk500isp_read_byte(.., signature, 0x0, ...)
avrdude.exe: stk500isp_read_byte(): Sending read memory command: avrdude.exe: stk500isp_read_byte(.., signature, 0x1, ...)
Reading | #################                                  | 33% 0.01savrdude.exe: stk500isp_read_byte(.., signature, 0x2, ...)
Reading | ################################################## | 100% 0.01s

avrdude.exe: Device signature = 0x1e9801 (probably m2560)
avrdude> >>> read eeprom 0 0x40

Reading |                                                    | 0% 0.00savrdude.exe: stk500isp_read_byte(.., eeprom, 0x0, ...)
avrdude.exe: stk500isp_read_byte(.., eeprom, 0x1, ...)
Reading | #                                                  | 1% 0.01savrdude.exe: stk500isp_read_byte(.., eeprom, 0x2, ...)
Reading | ##                                                 | 3% 0.01savrdude.exe: stk500isp_read_byte(.., eeprom, 0x3, ...)
Reading | ##                                                 | 4% 0.01savrdude.exe: stk500isp_read_byte(.., eeprom, 0x4, ...)
Reading | ###                                                | 6% 0.01savrdude.exe: stk500isp_read_byte(.., eeprom, 0x5, ...)
Reading | ####                                               | 7% 0.01savrdude.exe: stk500isp_read_byte(.., eeprom, 0x6, ...)
Reading | #####                                              | 9% 0.01savrdude.exe: stk500isp_read_byte(.., eeprom, 0x7, ...)
Reading | #####                                              | 10% 0.01savrdude.exe: stk500isp_read_byte(.., eeprom, 0x8, ...)
Reading | ######                                             | 12% 0.02savrdude.exe: stk500isp_read_byte(.., eeprom, 0x9, ...)
Reading | #######                                            | 14% 0.02savrdude.exe: stk500isp_read_byte(.., eeprom, 0xa, ...)
Reading | ########                                           | 15% 0.02savrdude.exe: stk500isp_read_byte(.., eeprom, 0xb, ...)
Reading | #########                                          | 17% 0.02savrdude.exe: stk500isp_read_byte(.., eeprom, 0xc, ...)
Reading | #########                                          | 18% 0.02savrdude.exe: stk500isp_read_byte(.., eeprom, 0xd, ...)
Reading | ##########                                         | 20% 0.02savrdude.exe: stk500isp_read_byte(.., eeprom, 0xe, ...)
Reading | ###########                                        | 21% 0.02savrdude.exe: stk500isp_read_byte(.., eeprom, 0xf, ...)
Reading | ############                                       | 23% 0.02savrdude.exe: stk500isp_read_byte(.., eeprom, 0x10, ...)
Reading | #############                                      | 25% 0.03savrdude.exe: stk500isp_read_byte(.., eeprom, 0x11, ...)
Reading | #############                                      | 26% 0.03savrdude.exe: stk500isp_read_byte(.., eeprom, 0x12, ...)
Reading | ##############                                     | 28% 0.03savrdude.exe: stk500isp_read_byte(.., eeprom, 0x13, ...)
Reading | ###############                                    | 29% 0.03savrdude.exe: stk500isp_read_byte(.., eeprom, 0x14, ...)
Reading | ################                                   | 31% 0.03savrdude.exe: stk500isp_read_byte(.., eeprom, 0x15, ...)
Reading | ################                                   | 32% 0.03savrdude.exe: stk500isp_read_byte(.., eeprom, 0x16, ...)
Reading | #################                                  | 34% 0.03savrdude.exe: stk500isp_read_byte(.., eeprom, 0x17, ...)
Reading | ##################                                 | 35% 0.03savrdude.exe: stk500isp_read_byte(.., eeprom, 0x18, ...)
Reading | ###################                                | 37% 0.04savrdude.exe: stk500isp_read_byte(.., eeprom, 0x19, ...)
Reading | ####################                               | 39% 0.04savrdude.exe: stk500isp_read_byte(.., eeprom, 0x1a, ...)
Reading | ####################                               | 40% 0.04savrdude.exe: stk500isp_read_byte(.., eeprom, 0x1b, ...)
Reading | #####################                              | 42% 0.04savrdude.exe: stk500isp_read_byte(.., eeprom, 0x1c, ...)
Reading | ######################                             | 43% 0.04savrdude.exe: stk500isp_read_byte(.., eeprom, 0x1d, ...)
Reading | #######################                            | 45% 0.04savrdude.exe: stk500isp_read_byte(.., eeprom, 0x1e, ...)
Reading | #######################                            | 46% 0.04savrdude.exe: stk500isp_read_byte(.., eeprom, 0x1f, ...)
Reading | ########################                           | 48% 0.04savrdude.exe: stk500isp_read_byte(.., eeprom, 0x20, ...)
Reading | #########################                          | 50% 0.05savrdude.exe: stk500isp_read_byte(.., eeprom, 0x21, ...)
Reading | ##########################                         | 51% 0.05savrdude.exe: stk500isp_read_byte(.., eeprom, 0x22, ...)
Reading | ###########################                        | 53% 0.05savrdude.exe: stk500isp_read_byte(.., eeprom, 0x23, ...)
Reading | ###########################                        | 54% 0.05savrdude.exe: stk500isp_read_byte(.., eeprom, 0x24, ...)
Reading | ############################                       | 56% 0.05savrdude.exe: stk500isp_read_byte(.., eeprom, 0x25, ...)
Reading | #############################                      | 57% 0.05savrdude.exe: stk500isp_read_byte(.., eeprom, 0x26, ...)
Reading | ##############################                     | 59% 0.05savrdude.exe: stk500isp_read_byte(.., eeprom, 0x27, ...)
Reading | ##############################                     | 60% 0.05savrdude.exe: stk500isp_read_byte(.., eeprom, 0x28, ...)
Reading | ###############################                    | 62% 0.06savrdude.exe: stk500isp_read_byte(.., eeprom, 0x29, ...)
Reading | ################################                   | 64% 0.06savrdude.exe: stk500isp_read_byte(.., eeprom, 0x2a, ...)
Reading | #################################                  | 65% 0.06savrdude.exe: stk500isp_read_byte(.., eeprom, 0x2b, ...)
Reading | ##################################                 | 67% 0.06savrdude.exe: stk500isp_read_byte(.., eeprom, 0x2c, ...)
Reading | ##################################                 | 68% 0.06savrdude.exe: stk500isp_read_byte(.., eeprom, 0x2d, ...)
Reading | ###################################                | 70% 0.06savrdude.exe: stk500isp_read_byte(.., eeprom, 0x2e, ...)
Reading | ####################################               | 71% 0.06savrdude.exe: stk500isp_read_byte(.., eeprom, 0x2f, ...)
Reading | #####################################              | 73% 0.06savrdude.exe: stk500isp_read_byte(.., eeprom, 0x30, ...)
Reading | ######################################             | 75% 0.07savrdude.exe: stk500isp_read_byte(.., eeprom, 0x31, ...)
Reading | ######################################             | 76% 0.07savrdude.exe: stk500isp_read_byte(.., eeprom, 0x32, ...)
Reading | #######################################            | 78% 0.07savrdude.exe: stk500isp_read_byte(.., eeprom, 0x33, ...)
Reading | ########################################           | 79% 0.07savrdude.exe: stk500isp_read_byte(.., eeprom, 0x34, ...)
Reading | #########################################          | 81% 0.07savrdude.exe: stk500isp_read_byte(.., eeprom, 0x35, ...)
Reading | #########################################          | 82% 0.07savrdude.exe: stk500isp_read_byte(.., eeprom, 0x36, ...)
Reading | ##########################################         | 84% 0.07savrdude.exe: stk500isp_read_byte(.., eeprom, 0x37, ...)
Reading | ###########################################        | 85% 0.07savrdude.exe: stk500isp_read_byte(.., eeprom, 0x38, ...)
Reading | ############################################       | 87% 0.08savrdude.exe: stk500isp_read_byte(.., eeprom, 0x39, ...)
Reading | #############################################      | 89% 0.08savrdude.exe: stk500isp_read_byte(.., eeprom, 0x3a, ...)
Reading | #############################################      | 90% 0.08savrdude.exe: stk500isp_read_byte(.., eeprom, 0x3b, ...)
Reading | ##############################################     | 92% 0.08savrdude.exe: stk500isp_read_byte(.., eeprom, 0x3c, ...)
Reading | ###############################################    | 93% 0.08savrdude.exe: stk500isp_read_byte(.., eeprom, 0x3d, ...)
Reading | ################################################   | 95% 0.08savrdude.exe: stk500isp_read_byte(.., eeprom, 0x3e, ...)
Reading | ################################################   | 96% 0.08savrdude.exe: stk500isp_read_byte(.., eeprom, 0x3f, ...)
Reading | ################################################## | 100% 0.08s

0000  01 02 03 04 05 06 07 08  ff ff ff ff ff ff ff ff  |................|
0010  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
0020  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
0030  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|

avrdude>
avrdude.exe done.  Thank you.

@mcuee
Copy link
Collaborator

mcuee commented Jun 3, 2022

So for now the workaround is to use a programmer and not the bootloader to read EEPROM.

@mcuee
Copy link
Collaborator

mcuee commented Jun 3, 2022

Looks like this is a long standing problem of the Arduino Mega2560 bootloader.

Potential fix:

@mcuee
Copy link
Collaborator

mcuee commented Jun 4, 2022

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.

We normally update bootloaders on the repo only when the boards are being factory flashed with that bootloader.
The validation phase usually requires quite a long time and it's rather unusual to "live patch" a board except for special cases (like Nano's WDT problem).
Moreover, I'd say that we'd probably switch to optiboot for the 2560 if we change the BL in production.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
invalid This doesn't seem right
Projects
None yet
Development

No branches or pull requests

3 participants