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

ftdi_syncbb: very slow D2XX based MSVC build compared to libftdi based MinGW build #1253

Open
mcuee opened this issue Jan 1, 2023 · 17 comments
Assignees
Labels
bug Something isn't working enhancement New feature or request

Comments

@mcuee
Copy link
Collaborator

mcuee commented Jan 1, 2023

Somehow the speed is very slow when using the FTDI driver (D2XX) with the MSVC build. I have set the latency timer for the serial port to 1s in this case but I think that does not matter here.

 PS C:\work\avr\avrdude_test\avrdude_bin> .\avrdude_git_msvc  -c arduino-ft232r -p m328p
 -U .\hex\Blink.ino.with_bootloader.standard.hex -v

avrdude_git_msvc: Version 7.0-20221231 (b2c03f5)
                  Copyright the AVRDUDE authors;
                  see https://github.com/avrdudes/avrdude/blob/main/AUTHORS

                  System wide configuration file is C:\work\avr\avrdude_test\avrdude_bin\avrdude.conf

                  Using Port                    : usb
                  Using Programmer              : arduino-ft232r
avrdude_git_msvc: ft245r_open(): no device identifier in portname, using default
avrdude_git_msvc: input file .\hex\Blink.ino.with_bootloader.standard.hex auto detected as Intel Hex
                  AVR Part                      : ATmega328P
                  Chip Erase delay              : 9000 us
                  PAGEL                         : PD7
                  BS2                           : PC2
                  RESET disposition             : possible i/o
                  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    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
                    flash                  65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
                    lfuse                   0     0     0    0 no          1    1      0  4500  4500 0x00 0x00
                    hfuse                   0     0     0    0 no          1    1      0  4500  4500 0x00 0x00
                    efuse                   0     0     0    0 no          1    1      0  4500  4500 0x00 0x00
                    lock                    0     0     0    0 no          1    1      0  4500  4500 0x00 0x00
                    signature               0     0     0    0 no          3    1      0     0     0 0x00 0x00
                    calibration             0     0     0    0 no          1    1      0     0     0 0x00 0x00

                  Programmer Type : ftdi_syncbb
                  Description     : Arduino: FT232R connected to ISP
                  Pin assignment  : 0..7 = DBUS0..7
                    VCC     =  (not used)
                    BUFF    =  (not used)
                    RESET   =  7
                    SCK     =  5
                    SDO     =  6
                    SDI     =  3
                    ERR LED =  (not used)
                    RDY LED =  (not used)
                    PGM LED =  (not used)
                    VFY LED =  (not used)

avrdude_git_msvc: AVR device initialized and ready to accept instructions
avrdude_git_msvc: device signature = 0x1e950f (probably m328p)
avrdude_git_msvc: Note: flash memory has been specified, an erase cycle will be performed.
                  To disable this feature, specify the -D option.
avrdude_git_msvc: erasing chip
avrdude_git_msvc: reading input file .\hex\Blink.ino.with_bootloader.standard.hex for flash
                  with 1426 bytes in 3 sections within [0, 0x7fff]
                  using 12 pages and 110 pad bytes
avrdude_git_msvc: writing 1426 bytes flash ...

Writing | ################################################## | 100% 76.42 s

avrdude_git_msvc: 1426 bytes of flash written
avrdude_git_msvc: verifying flash memory against .\hex\Blink.ino.with_bootloader.standard.hex

Reading | ################################################## | 100% 57.97 s

avrdude_git_msvc: 1426 bytes of flash verified

avrdude_git_msvc done.  Thank you.

More detailed log with -vvvv for avrdude-libftdi and FTDI vendor D2XX driver.

detailed -vvvv run log for avrdude-libftdi and FTDI vendor D2XX driver
PS C:\work\avr\avrdude_test\avrdude_bin> .\avrdude_git_msvc  -c arduino-ft232r -p m328p -U .\hex\Blink.ino.with_bootloader.standard.hex -vvvv

avrdude_git_msvc: Version 7.0-20221231 (b2c03f5)
                  Copyright the AVRDUDE authors;
                  see https://github.com/avrdudes/avrdude/blob/main/AUTHORS

                  System wide configuration file is C:\work\avr\avrdude_test\avrdude_bin\avrdude.conf

                  Using Port                    : usb
                  Using Programmer              : arduino-ft232r
avrdude_git_msvc: <unknown>: pin is OK
avrdude_git_msvc: VCC: pin is OK
avrdude_git_msvc: BUFF: pin is OK
avrdude_git_msvc: RESET: pin is OK
avrdude_git_msvc: SCK: pin is OK
avrdude_git_msvc: SDO: pin is OK
avrdude_git_msvc: SDI: pin is OK
avrdude_git_msvc: ERRLED: pin is OK
avrdude_git_msvc: RDYLED: pin is OK
avrdude_git_msvc: PGMLED: pin is OK
avrdude_git_msvc: VFYLED: pin is OK
avrdude_git_msvc: ft245r_open(): no device identifier in portname, using default
ft245r_set_bitclock: bitclk 150000 -> FTDI rate 150000, baud multiplier 1
avrdude_git_msvc: defaulting memtype in -U w:.\hex\Blink.ino.with_bootloader.standard.hex option to "flash"
avrdude_git_msvc: input file .\hex\Blink.ino.with_bootloader.standard.hex auto detected as Intel Hex
                  AVR Part                      : ATmega328P
                  Chip Erase delay              : 9000 us
                  PAGEL                         : PD7
                  BS2                           : PC2
                  RESET disposition             : possible i/o
                  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    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
                                                    Block Poll               Page                       Polled
                    Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
                    ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
                    flash                  65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
                                                    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  4500  4500 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  4500  4500 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  4500  4500 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  4500  4500 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
                                                    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

                  Programmer Type : ftdi_syncbb
                  Description     : Arduino: FT232R connected to ISP
                  Pin assignment  : 0..7 = DBUS0..7
                    VCC     =  (not used)
                    BUFF    =  (not used)
                    RESET   =  7
                    SCK     =  5
                    SDO     =  6
                    SDI     =  3
                    ERR LED =  (not used)
                    RDY LED =  (not used)
                    PGM LED =  (not used)
                    VFY LED =  (not used)

avrdude_git_msvc: AVR device initialized and ready to accept instructions

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

avrdude_git_msvc: device signature = 0x1e950f (probably m328p)
avrdude_git_msvc: Note: flash memory has been specified, an erase cycle will be performed.
                  To disable this feature, specify the -D option.
avrdude_git_msvc: erasing chip
avrdude_git_msvc: reading input file .\hex\Blink.ino.with_bootloader.standard.hex for flash
                  with 1426 bytes in 3 sections within [0, 0x7fff]
                  using 12 pages and 110 pad bytes
avrdude_git_msvc: writing 1426 bytes flash ...

Writing |                                                    | 0% 0.00 s avrdude_git_msvc: padding flash [0x0380, 0x03ff]
avrdude_git_msvc: padding flash [0x7f80, 0x7fff]
Writing | #################################                  | 66% 74.45 s avrdude_git_msvc: avr_write_mem(): skipping page 8: no interesting data
Writing | ######################################             | 75% 74.45 s avrdude_git_msvc: avr_write_mem(): skipping page 9: no interesting data
Writing | ##########################################         | 83% 74.45 s avrdude_git_msvc: avr_write_mem(): skipping page 10: no interesting data
Writing | ##############################################     | 91% 74.46 s avrdude_git_msvc: avr_write_mem(): skipping page 11: no interesting data
Writing | ################################################## | 100% 74.46 s

avrdude_git_msvc: avr_write_mem(): skipping page 12: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 13: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 14: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 15: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 16: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 17: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 18: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 19: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 20: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 21: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 22: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 23: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 24: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 25: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 26: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 27: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 28: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 29: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 30: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 31: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 32: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 33: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 34: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 35: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 36: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 37: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 38: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 39: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 40: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 41: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 42: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 43: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 44: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 45: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 46: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 47: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 48: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 49: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 50: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 51: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 52: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 53: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 54: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 55: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 56: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 57: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 58: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 59: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 60: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 61: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 62: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 63: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 64: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 65: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 66: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 67: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 68: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 69: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 70: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 71: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 72: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 73: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 74: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 75: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 76: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 77: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 78: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 79: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 80: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 81: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 82: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 83: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 84: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 85: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 86: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 87: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 88: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 89: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 90: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 91: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 92: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 93: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 94: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 95: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 96: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 97: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 98: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 99: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 100: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 101: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 102: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 103: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 104: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 105: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 106: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 107: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 108: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 109: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 110: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 111: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 112: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 113: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 114: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 115: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 116: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 117: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 118: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 119: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 120: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 121: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 122: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 123: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 124: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 125: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 126: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 127: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 128: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 129: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 130: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 131: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 132: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 133: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 134: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 135: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 136: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 137: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 138: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 139: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 140: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 141: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 142: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 143: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 144: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 145: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 146: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 147: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 148: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 149: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 150: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 151: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 152: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 153: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 154: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 155: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 156: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 157: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 158: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 159: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 160: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 161: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 162: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 163: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 164: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 165: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 166: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 167: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 168: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 169: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 170: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 171: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 172: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 173: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 174: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 175: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 176: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 177: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 178: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 179: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 180: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 181: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 182: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 183: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 184: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 185: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 186: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 187: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 188: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 189: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 190: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 191: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 192: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 193: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 194: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 195: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 196: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 197: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 198: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 199: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 200: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 201: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 202: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 203: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 204: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 205: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 206: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 207: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 208: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 209: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 210: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 211: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 212: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 213: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 214: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 215: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 216: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 217: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 218: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 219: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 220: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 221: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 222: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 223: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 224: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 225: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 226: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 227: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 228: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 229: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 230: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 231: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 232: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 233: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 234: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 235: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 236: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 237: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 238: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 239: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 240: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 241: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 242: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 243: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 244: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 245: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 246: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 247: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 248: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 249: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 250: no interesting data
avrdude_git_msvc: avr_write_mem(): skipping page 251: no interesting data
avrdude_git_msvc: 1426 bytes of flash written
avrdude_git_msvc: verifying flash memory against .\hex\Blink.ino.with_bootloader.standard.hex
avrdude_git_msvc: reading on-chip flash data ...

Reading | #################################                  | 66% 59.08 s avrdude_git_msvc: avr_read_mem(): skipping page 8: no interesting data
Reading | ######################################             | 75% 59.08 s avrdude_git_msvc: avr_read_mem(): skipping page 9: no interesting data
Reading | ##########################################         | 83% 59.08 s avrdude_git_msvc: avr_read_mem(): skipping page 10: no interesting data
Reading | ##############################################     | 91% 59.09 s avrdude_git_msvc: avr_read_mem(): skipping page 11: no interesting data
Reading | ################################################## | 100% 59.09 s

avrdude_git_msvc: avr_read_mem(): skipping page 12: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 13: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 14: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 15: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 16: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 17: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 18: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 19: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 20: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 21: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 22: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 23: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 24: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 25: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 26: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 27: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 28: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 29: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 30: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 31: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 32: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 33: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 34: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 35: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 36: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 37: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 38: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 39: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 40: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 41: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 42: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 43: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 44: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 45: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 46: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 47: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 48: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 49: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 50: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 51: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 52: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 53: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 54: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 55: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 56: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 57: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 58: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 59: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 60: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 61: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 62: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 63: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 64: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 65: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 66: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 67: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 68: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 69: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 70: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 71: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 72: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 73: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 74: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 75: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 76: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 77: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 78: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 79: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 80: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 81: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 82: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 83: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 84: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 85: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 86: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 87: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 88: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 89: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 90: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 91: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 92: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 93: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 94: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 95: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 96: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 97: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 98: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 99: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 100: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 101: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 102: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 103: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 104: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 105: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 106: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 107: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 108: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 109: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 110: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 111: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 112: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 113: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 114: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 115: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 116: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 117: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 118: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 119: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 120: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 121: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 122: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 123: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 124: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 125: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 126: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 127: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 128: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 129: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 130: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 131: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 132: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 133: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 134: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 135: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 136: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 137: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 138: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 139: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 140: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 141: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 142: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 143: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 144: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 145: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 146: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 147: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 148: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 149: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 150: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 151: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 152: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 153: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 154: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 155: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 156: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 157: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 158: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 159: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 160: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 161: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 162: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 163: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 164: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 165: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 166: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 167: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 168: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 169: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 170: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 171: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 172: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 173: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 174: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 175: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 176: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 177: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 178: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 179: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 180: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 181: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 182: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 183: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 184: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 185: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 186: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 187: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 188: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 189: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 190: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 191: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 192: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 193: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 194: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 195: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 196: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 197: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 198: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 199: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 200: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 201: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 202: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 203: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 204: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 205: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 206: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 207: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 208: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 209: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 210: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 211: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 212: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 213: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 214: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 215: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 216: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 217: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 218: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 219: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 220: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 221: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 222: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 223: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 224: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 225: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 226: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 227: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 228: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 229: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 230: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 231: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 232: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 233: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 234: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 235: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 236: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 237: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 238: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 239: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 240: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 241: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 242: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 243: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 244: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 245: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 246: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 247: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 248: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 249: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 250: no interesting data
avrdude_git_msvc: avr_read_mem(): skipping page 251: no interesting data
avrdude_git_msvc: verifying ...
avrdude_git_msvc: 1426 bytes of flash verified

avrdude_git_msvc done.  Thank you.

If I switch the driver to WInUSB and use libftdi-1.0 (MSYS2 build) will get much better speed.

PS C:\work\avr\avrdude_test\avrdude_bin> .\avrdude_git  -c arduino-ft232r -p m328p
 -U .\hex\Blink.ino.with_bootloader.standard.hex -v

avrdude_git: Version 7.0-20221231 (b2c03f5)
             Copyright the AVRDUDE authors;
             see https://github.com/avrdudes/avrdude/blob/main/AUTHORS

             System wide configuration file is C:\work\avr\avrdude_test\avrdude_bin\avrdude.conf

             Using Port                    : usb
             Using Programmer              : arduino-ft232r
avrdude_git: ft245r_open(): no device identifier in portname, using default
avrdude_git: input file .\hex\Blink.ino.with_bootloader.standard.hex auto detected as Intel Hex
             AVR Part                      : ATmega328P
             Chip Erase delay              : 9000 us
             PAGEL                         : PD7
             BS2                           : PC2
             RESET disposition             : possible i/o
             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    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
               flash                  65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
               lfuse                   0     0     0    0 no          1    1      0  4500  4500 0x00 0x00
               hfuse                   0     0     0    0 no          1    1      0  4500  4500 0x00 0x00
               efuse                   0     0     0    0 no          1    1      0  4500  4500 0x00 0x00
               lock                    0     0     0    0 no          1    1      0  4500  4500 0x00 0x00
               signature               0     0     0    0 no          3    1      0     0     0 0x00 0x00
               calibration             0     0     0    0 no          1    1      0     0     0 0x00 0x00

             Programmer Type : ftdi_syncbb
             Description     : Arduino: FT232R connected to ISP
             Pin assignment  : 0..7 = DBUS0..7
               VCC     =  (not used)
               BUFF    =  (not used)
               RESET   =  7
               SCK     =  5
               SDO     =  6
               SDI     =  3
               ERR LED =  (not used)
               RDY LED =  (not used)
               PGM LED =  (not used)
               VFY LED =  (not used)

avrdude_git: AVR device initialized and ready to accept instructions
avrdude_git: device signature = 0x1e950f (probably m328p)
avrdude_git: Note: flash memory has been specified, an erase cycle will be performed.
             To disable this feature, specify the -D option.
avrdude_git: erasing chip
avrdude_git: reading input file .\hex\Blink.ino.with_bootloader.standard.hex for flash
             with 1426 bytes in 3 sections within [0, 0x7fff]
             using 12 pages and 110 pad bytes
avrdude_git: writing 1426 bytes flash ...

Writing | ################################################## | 100% 0.89 s

avrdude_git: 1426 bytes of flash written
avrdude_git: verifying flash memory against .\hex\Blink.ino.with_bootloader.standard.hex

Reading | ################################################## | 100% 0.65 s

avrdude_git: 1426 bytes of flash verified

avrdude_git done.  Thank you.

More detailed libftdi1 run log with -vvvv.

detailed run log with -vvvv for libftdi1 API and WinUSB driver
PS C:\work\avr\avrdude_test\avrdude_bin> .\avrdude_git  -c arduino-ft232r -p m328p -U .\hex\Blink.ino.with_bootloader.standard.hex -vvvv

avrdude_git: Version 7.0-20221231 (b2c03f5)
             Copyright the AVRDUDE authors;
             see https://github.com/avrdudes/avrdude/blob/main/AUTHORS

             System wide configuration file is C:\work\avr\avrdude_test\avrdude_bin\avrdude.conf

             Using Port                    : usb
             Using Programmer              : arduino-ft232r
avrdude_git: <unknown>: pin is OK
avrdude_git: VCC: pin is OK
avrdude_git: BUFF: pin is OK
avrdude_git: RESET: pin is OK
avrdude_git: SCK: pin is OK
avrdude_git: SDO: pin is OK
avrdude_git: SDI: pin is OK
avrdude_git: ERRLED: pin is OK
avrdude_git: RDYLED: pin is OK
avrdude_git: PGMLED: pin is OK
avrdude_git: VFYLED: pin is OK
avrdude_git: ft245r_open(): no device identifier in portname, using default
ft245r_set_bitclock: bitclk 150000 -> FTDI rate 150000, baud multiplier 1
avrdude_git: defaulting memtype in -U w:.\hex\Blink.ino.with_bootloader.standard.hex option to "flash"
avrdude_git: input file .\hex\Blink.ino.with_bootloader.standard.hex auto detected as Intel Hex
             AVR Part                      : ATmega328P
             Chip Erase delay              : 9000 us
             PAGEL                         : PD7
             BS2                           : PC2
             RESET disposition             : possible i/o
             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    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
                                               Block Poll               Page                       Polled
               Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
               ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
               flash                  65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
                                               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  4500  4500 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  4500  4500 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  4500  4500 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  4500  4500 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
                                               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

             Programmer Type : ftdi_syncbb
             Description     : Arduino: FT232R connected to ISP
             Pin assignment  : 0..7 = DBUS0..7
               VCC     =  (not used)
               BUFF    =  (not used)
               RESET   =  7
               SCK     =  5
               SDO     =  6
               SDI     =  3
               ERR LED =  (not used)
               RDY LED =  (not used)
               PGM LED =  (not used)
               VFY LED =  (not used)

avrdude_git: AVR device initialized and ready to accept instructions

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

avrdude_git: device signature = 0x1e950f (probably m328p)
avrdude_git: Note: flash memory has been specified, an erase cycle will be performed.
             To disable this feature, specify the -D option.
avrdude_git: erasing chip
avrdude_git: reading input file .\hex\Blink.ino.with_bootloader.standard.hex for flash
             with 1426 bytes in 3 sections within [0, 0x7fff]
             using 12 pages and 110 pad bytes
avrdude_git: writing 1426 bytes flash ...

Writing |                                                    | 0% 0.00 s avrdude_git: padding flash [0x0380, 0x03ff]
avrdude_git: padding flash [0x7f80, 0x7fff]
Writing | #################################                  | 66% 0.88 s avrdude_git: avr_write_mem(): skipping page 8: no interesting data
Writing | ######################################             | 75% 0.88 s avrdude_git: avr_write_mem(): skipping page 9: no interesting data
Writing | ##########################################         | 83% 0.89 s avrdude_git: avr_write_mem(): skipping page 10: no interesting data
Writing | ##############################################     | 91% 0.89 s avrdude_git: avr_write_mem(): skipping page 11: no interesting data
Writing | ################################################## | 100% 0.90 s

avrdude_git: avr_write_mem(): skipping page 12: no interesting data
avrdude_git: avr_write_mem(): skipping page 13: no interesting data
avrdude_git: avr_write_mem(): skipping page 14: no interesting data
avrdude_git: avr_write_mem(): skipping page 15: no interesting data
avrdude_git: avr_write_mem(): skipping page 16: no interesting data
avrdude_git: avr_write_mem(): skipping page 17: no interesting data
avrdude_git: avr_write_mem(): skipping page 18: no interesting data
avrdude_git: avr_write_mem(): skipping page 19: no interesting data
avrdude_git: avr_write_mem(): skipping page 20: no interesting data
avrdude_git: avr_write_mem(): skipping page 21: no interesting data
avrdude_git: avr_write_mem(): skipping page 22: no interesting data
avrdude_git: avr_write_mem(): skipping page 23: no interesting data
avrdude_git: avr_write_mem(): skipping page 24: no interesting data
avrdude_git: avr_write_mem(): skipping page 25: no interesting data
avrdude_git: avr_write_mem(): skipping page 26: no interesting data
avrdude_git: avr_write_mem(): skipping page 27: no interesting data
avrdude_git: avr_write_mem(): skipping page 28: no interesting data
avrdude_git: avr_write_mem(): skipping page 29: no interesting data
avrdude_git: avr_write_mem(): skipping page 30: no interesting data
avrdude_git: avr_write_mem(): skipping page 31: no interesting data
avrdude_git: avr_write_mem(): skipping page 32: no interesting data
avrdude_git: avr_write_mem(): skipping page 33: no interesting data
avrdude_git: avr_write_mem(): skipping page 34: no interesting data
avrdude_git: avr_write_mem(): skipping page 35: no interesting data
avrdude_git: avr_write_mem(): skipping page 36: no interesting data
avrdude_git: avr_write_mem(): skipping page 37: no interesting data
avrdude_git: avr_write_mem(): skipping page 38: no interesting data
avrdude_git: avr_write_mem(): skipping page 39: no interesting data
avrdude_git: avr_write_mem(): skipping page 40: no interesting data
avrdude_git: avr_write_mem(): skipping page 41: no interesting data
avrdude_git: avr_write_mem(): skipping page 42: no interesting data
avrdude_git: avr_write_mem(): skipping page 43: no interesting data
avrdude_git: avr_write_mem(): skipping page 44: no interesting data
avrdude_git: avr_write_mem(): skipping page 45: no interesting data
avrdude_git: avr_write_mem(): skipping page 46: no interesting data
avrdude_git: avr_write_mem(): skipping page 47: no interesting data
avrdude_git: avr_write_mem(): skipping page 48: no interesting data
avrdude_git: avr_write_mem(): skipping page 49: no interesting data
avrdude_git: avr_write_mem(): skipping page 50: no interesting data
avrdude_git: avr_write_mem(): skipping page 51: no interesting data
avrdude_git: avr_write_mem(): skipping page 52: no interesting data
avrdude_git: avr_write_mem(): skipping page 53: no interesting data
avrdude_git: avr_write_mem(): skipping page 54: no interesting data
avrdude_git: avr_write_mem(): skipping page 55: no interesting data
avrdude_git: avr_write_mem(): skipping page 56: no interesting data
avrdude_git: avr_write_mem(): skipping page 57: no interesting data
avrdude_git: avr_write_mem(): skipping page 58: no interesting data
avrdude_git: avr_write_mem(): skipping page 59: no interesting data
avrdude_git: avr_write_mem(): skipping page 60: no interesting data
avrdude_git: avr_write_mem(): skipping page 61: no interesting data
avrdude_git: avr_write_mem(): skipping page 62: no interesting data
avrdude_git: avr_write_mem(): skipping page 63: no interesting data
avrdude_git: avr_write_mem(): skipping page 64: no interesting data
avrdude_git: avr_write_mem(): skipping page 65: no interesting data
avrdude_git: avr_write_mem(): skipping page 66: no interesting data
avrdude_git: avr_write_mem(): skipping page 67: no interesting data
avrdude_git: avr_write_mem(): skipping page 68: no interesting data
avrdude_git: avr_write_mem(): skipping page 69: no interesting data
avrdude_git: avr_write_mem(): skipping page 70: no interesting data
avrdude_git: avr_write_mem(): skipping page 71: no interesting data
avrdude_git: avr_write_mem(): skipping page 72: no interesting data
avrdude_git: avr_write_mem(): skipping page 73: no interesting data
avrdude_git: avr_write_mem(): skipping page 74: no interesting data
avrdude_git: avr_write_mem(): skipping page 75: no interesting data
avrdude_git: avr_write_mem(): skipping page 76: no interesting data
avrdude_git: avr_write_mem(): skipping page 77: no interesting data
avrdude_git: avr_write_mem(): skipping page 78: no interesting data
avrdude_git: avr_write_mem(): skipping page 79: no interesting data
avrdude_git: avr_write_mem(): skipping page 80: no interesting data
avrdude_git: avr_write_mem(): skipping page 81: no interesting data
avrdude_git: avr_write_mem(): skipping page 82: no interesting data
avrdude_git: avr_write_mem(): skipping page 83: no interesting data
avrdude_git: avr_write_mem(): skipping page 84: no interesting data
avrdude_git: avr_write_mem(): skipping page 85: no interesting data
avrdude_git: avr_write_mem(): skipping page 86: no interesting data
avrdude_git: avr_write_mem(): skipping page 87: no interesting data
avrdude_git: avr_write_mem(): skipping page 88: no interesting data
avrdude_git: avr_write_mem(): skipping page 89: no interesting data
avrdude_git: avr_write_mem(): skipping page 90: no interesting data
avrdude_git: avr_write_mem(): skipping page 91: no interesting data
avrdude_git: avr_write_mem(): skipping page 92: no interesting data
avrdude_git: avr_write_mem(): skipping page 93: no interesting data
avrdude_git: avr_write_mem(): skipping page 94: no interesting data
avrdude_git: avr_write_mem(): skipping page 95: no interesting data
avrdude_git: avr_write_mem(): skipping page 96: no interesting data
avrdude_git: avr_write_mem(): skipping page 97: no interesting data
avrdude_git: avr_write_mem(): skipping page 98: no interesting data
avrdude_git: avr_write_mem(): skipping page 99: no interesting data
avrdude_git: avr_write_mem(): skipping page 100: no interesting data
avrdude_git: avr_write_mem(): skipping page 101: no interesting data
avrdude_git: avr_write_mem(): skipping page 102: no interesting data
avrdude_git: avr_write_mem(): skipping page 103: no interesting data
avrdude_git: avr_write_mem(): skipping page 104: no interesting data
avrdude_git: avr_write_mem(): skipping page 105: no interesting data
avrdude_git: avr_write_mem(): skipping page 106: no interesting data
avrdude_git: avr_write_mem(): skipping page 107: no interesting data
avrdude_git: avr_write_mem(): skipping page 108: no interesting data
avrdude_git: avr_write_mem(): skipping page 109: no interesting data
avrdude_git: avr_write_mem(): skipping page 110: no interesting data
avrdude_git: avr_write_mem(): skipping page 111: no interesting data
avrdude_git: avr_write_mem(): skipping page 112: no interesting data
avrdude_git: avr_write_mem(): skipping page 113: no interesting data
avrdude_git: avr_write_mem(): skipping page 114: no interesting data
avrdude_git: avr_write_mem(): skipping page 115: no interesting data
avrdude_git: avr_write_mem(): skipping page 116: no interesting data
avrdude_git: avr_write_mem(): skipping page 117: no interesting data
avrdude_git: avr_write_mem(): skipping page 118: no interesting data
avrdude_git: avr_write_mem(): skipping page 119: no interesting data
avrdude_git: avr_write_mem(): skipping page 120: no interesting data
avrdude_git: avr_write_mem(): skipping page 121: no interesting data
avrdude_git: avr_write_mem(): skipping page 122: no interesting data
avrdude_git: avr_write_mem(): skipping page 123: no interesting data
avrdude_git: avr_write_mem(): skipping page 124: no interesting data
avrdude_git: avr_write_mem(): skipping page 125: no interesting data
avrdude_git: avr_write_mem(): skipping page 126: no interesting data
avrdude_git: avr_write_mem(): skipping page 127: no interesting data
avrdude_git: avr_write_mem(): skipping page 128: no interesting data
avrdude_git: avr_write_mem(): skipping page 129: no interesting data
avrdude_git: avr_write_mem(): skipping page 130: no interesting data
avrdude_git: avr_write_mem(): skipping page 131: no interesting data
avrdude_git: avr_write_mem(): skipping page 132: no interesting data
avrdude_git: avr_write_mem(): skipping page 133: no interesting data
avrdude_git: avr_write_mem(): skipping page 134: no interesting data
avrdude_git: avr_write_mem(): skipping page 135: no interesting data
avrdude_git: avr_write_mem(): skipping page 136: no interesting data
avrdude_git: avr_write_mem(): skipping page 137: no interesting data
avrdude_git: avr_write_mem(): skipping page 138: no interesting data
avrdude_git: avr_write_mem(): skipping page 139: no interesting data
avrdude_git: avr_write_mem(): skipping page 140: no interesting data
avrdude_git: avr_write_mem(): skipping page 141: no interesting data
avrdude_git: avr_write_mem(): skipping page 142: no interesting data
avrdude_git: avr_write_mem(): skipping page 143: no interesting data
avrdude_git: avr_write_mem(): skipping page 144: no interesting data
avrdude_git: avr_write_mem(): skipping page 145: no interesting data
avrdude_git: avr_write_mem(): skipping page 146: no interesting data
avrdude_git: avr_write_mem(): skipping page 147: no interesting data
avrdude_git: avr_write_mem(): skipping page 148: no interesting data
avrdude_git: avr_write_mem(): skipping page 149: no interesting data
avrdude_git: avr_write_mem(): skipping page 150: no interesting data
avrdude_git: avr_write_mem(): skipping page 151: no interesting data
avrdude_git: avr_write_mem(): skipping page 152: no interesting data
avrdude_git: avr_write_mem(): skipping page 153: no interesting data
avrdude_git: avr_write_mem(): skipping page 154: no interesting data
avrdude_git: avr_write_mem(): skipping page 155: no interesting data
avrdude_git: avr_write_mem(): skipping page 156: no interesting data
avrdude_git: avr_write_mem(): skipping page 157: no interesting data
avrdude_git: avr_write_mem(): skipping page 158: no interesting data
avrdude_git: avr_write_mem(): skipping page 159: no interesting data
avrdude_git: avr_write_mem(): skipping page 160: no interesting data
avrdude_git: avr_write_mem(): skipping page 161: no interesting data
avrdude_git: avr_write_mem(): skipping page 162: no interesting data
avrdude_git: avr_write_mem(): skipping page 163: no interesting data
avrdude_git: avr_write_mem(): skipping page 164: no interesting data
avrdude_git: avr_write_mem(): skipping page 165: no interesting data
avrdude_git: avr_write_mem(): skipping page 166: no interesting data
avrdude_git: avr_write_mem(): skipping page 167: no interesting data
avrdude_git: avr_write_mem(): skipping page 168: no interesting data
avrdude_git: avr_write_mem(): skipping page 169: no interesting data
avrdude_git: avr_write_mem(): skipping page 170: no interesting data
avrdude_git: avr_write_mem(): skipping page 171: no interesting data
avrdude_git: avr_write_mem(): skipping page 172: no interesting data
avrdude_git: avr_write_mem(): skipping page 173: no interesting data
avrdude_git: avr_write_mem(): skipping page 174: no interesting data
avrdude_git: avr_write_mem(): skipping page 175: no interesting data
avrdude_git: avr_write_mem(): skipping page 176: no interesting data
avrdude_git: avr_write_mem(): skipping page 177: no interesting data
avrdude_git: avr_write_mem(): skipping page 178: no interesting data
avrdude_git: avr_write_mem(): skipping page 179: no interesting data
avrdude_git: avr_write_mem(): skipping page 180: no interesting data
avrdude_git: avr_write_mem(): skipping page 181: no interesting data
avrdude_git: avr_write_mem(): skipping page 182: no interesting data
avrdude_git: avr_write_mem(): skipping page 183: no interesting data
avrdude_git: avr_write_mem(): skipping page 184: no interesting data
avrdude_git: avr_write_mem(): skipping page 185: no interesting data
avrdude_git: avr_write_mem(): skipping page 186: no interesting data
avrdude_git: avr_write_mem(): skipping page 187: no interesting data
avrdude_git: avr_write_mem(): skipping page 188: no interesting data
avrdude_git: avr_write_mem(): skipping page 189: no interesting data
avrdude_git: avr_write_mem(): skipping page 190: no interesting data
avrdude_git: avr_write_mem(): skipping page 191: no interesting data
avrdude_git: avr_write_mem(): skipping page 192: no interesting data
avrdude_git: avr_write_mem(): skipping page 193: no interesting data
avrdude_git: avr_write_mem(): skipping page 194: no interesting data
avrdude_git: avr_write_mem(): skipping page 195: no interesting data
avrdude_git: avr_write_mem(): skipping page 196: no interesting data
avrdude_git: avr_write_mem(): skipping page 197: no interesting data
avrdude_git: avr_write_mem(): skipping page 198: no interesting data
avrdude_git: avr_write_mem(): skipping page 199: no interesting data
avrdude_git: avr_write_mem(): skipping page 200: no interesting data
avrdude_git: avr_write_mem(): skipping page 201: no interesting data
avrdude_git: avr_write_mem(): skipping page 202: no interesting data
avrdude_git: avr_write_mem(): skipping page 203: no interesting data
avrdude_git: avr_write_mem(): skipping page 204: no interesting data
avrdude_git: avr_write_mem(): skipping page 205: no interesting data
avrdude_git: avr_write_mem(): skipping page 206: no interesting data
avrdude_git: avr_write_mem(): skipping page 207: no interesting data
avrdude_git: avr_write_mem(): skipping page 208: no interesting data
avrdude_git: avr_write_mem(): skipping page 209: no interesting data
avrdude_git: avr_write_mem(): skipping page 210: no interesting data
avrdude_git: avr_write_mem(): skipping page 211: no interesting data
avrdude_git: avr_write_mem(): skipping page 212: no interesting data
avrdude_git: avr_write_mem(): skipping page 213: no interesting data
avrdude_git: avr_write_mem(): skipping page 214: no interesting data
avrdude_git: avr_write_mem(): skipping page 215: no interesting data
avrdude_git: avr_write_mem(): skipping page 216: no interesting data
avrdude_git: avr_write_mem(): skipping page 217: no interesting data
avrdude_git: avr_write_mem(): skipping page 218: no interesting data
avrdude_git: avr_write_mem(): skipping page 219: no interesting data
avrdude_git: avr_write_mem(): skipping page 220: no interesting data
avrdude_git: avr_write_mem(): skipping page 221: no interesting data
avrdude_git: avr_write_mem(): skipping page 222: no interesting data
avrdude_git: avr_write_mem(): skipping page 223: no interesting data
avrdude_git: avr_write_mem(): skipping page 224: no interesting data
avrdude_git: avr_write_mem(): skipping page 225: no interesting data
avrdude_git: avr_write_mem(): skipping page 226: no interesting data
avrdude_git: avr_write_mem(): skipping page 227: no interesting data
avrdude_git: avr_write_mem(): skipping page 228: no interesting data
avrdude_git: avr_write_mem(): skipping page 229: no interesting data
avrdude_git: avr_write_mem(): skipping page 230: no interesting data
avrdude_git: avr_write_mem(): skipping page 231: no interesting data
avrdude_git: avr_write_mem(): skipping page 232: no interesting data
avrdude_git: avr_write_mem(): skipping page 233: no interesting data
avrdude_git: avr_write_mem(): skipping page 234: no interesting data
avrdude_git: avr_write_mem(): skipping page 235: no interesting data
avrdude_git: avr_write_mem(): skipping page 236: no interesting data
avrdude_git: avr_write_mem(): skipping page 237: no interesting data
avrdude_git: avr_write_mem(): skipping page 238: no interesting data
avrdude_git: avr_write_mem(): skipping page 239: no interesting data
avrdude_git: avr_write_mem(): skipping page 240: no interesting data
avrdude_git: avr_write_mem(): skipping page 241: no interesting data
avrdude_git: avr_write_mem(): skipping page 242: no interesting data
avrdude_git: avr_write_mem(): skipping page 243: no interesting data
avrdude_git: avr_write_mem(): skipping page 244: no interesting data
avrdude_git: avr_write_mem(): skipping page 245: no interesting data
avrdude_git: avr_write_mem(): skipping page 246: no interesting data
avrdude_git: avr_write_mem(): skipping page 247: no interesting data
avrdude_git: avr_write_mem(): skipping page 248: no interesting data
avrdude_git: avr_write_mem(): skipping page 249: no interesting data
avrdude_git: avr_write_mem(): skipping page 250: no interesting data
avrdude_git: avr_write_mem(): skipping page 251: no interesting data
avrdude_git: 1426 bytes of flash written
avrdude_git: verifying flash memory against .\hex\Blink.ino.with_bootloader.standard.hex
avrdude_git: reading on-chip flash data ...

Reading | #################################                  | 66% 0.59 s avrdude_git: avr_read_mem(): skipping page 8: no interesting data
Reading | ######################################             | 75% 0.60 s avrdude_git: avr_read_mem(): skipping page 9: no interesting data
Reading | ##########################################         | 83% 0.60 s avrdude_git: avr_read_mem(): skipping page 10: no interesting data
Reading | ##############################################     | 91% 0.61 s avrdude_git: avr_read_mem(): skipping page 11: no interesting data
Reading | ################################################## | 100% 0.61 s

avrdude_git: avr_read_mem(): skipping page 12: no interesting data
avrdude_git: avr_read_mem(): skipping page 13: no interesting data
avrdude_git: avr_read_mem(): skipping page 14: no interesting data
avrdude_git: avr_read_mem(): skipping page 15: no interesting data
avrdude_git: avr_read_mem(): skipping page 16: no interesting data
avrdude_git: avr_read_mem(): skipping page 17: no interesting data
avrdude_git: avr_read_mem(): skipping page 18: no interesting data
avrdude_git: avr_read_mem(): skipping page 19: no interesting data
avrdude_git: avr_read_mem(): skipping page 20: no interesting data
avrdude_git: avr_read_mem(): skipping page 21: no interesting data
avrdude_git: avr_read_mem(): skipping page 22: no interesting data
avrdude_git: avr_read_mem(): skipping page 23: no interesting data
avrdude_git: avr_read_mem(): skipping page 24: no interesting data
avrdude_git: avr_read_mem(): skipping page 25: no interesting data
avrdude_git: avr_read_mem(): skipping page 26: no interesting data
avrdude_git: avr_read_mem(): skipping page 27: no interesting data
avrdude_git: avr_read_mem(): skipping page 28: no interesting data
avrdude_git: avr_read_mem(): skipping page 29: no interesting data
avrdude_git: avr_read_mem(): skipping page 30: no interesting data
avrdude_git: avr_read_mem(): skipping page 31: no interesting data
avrdude_git: avr_read_mem(): skipping page 32: no interesting data
avrdude_git: avr_read_mem(): skipping page 33: no interesting data
avrdude_git: avr_read_mem(): skipping page 34: no interesting data
avrdude_git: avr_read_mem(): skipping page 35: no interesting data
avrdude_git: avr_read_mem(): skipping page 36: no interesting data
avrdude_git: avr_read_mem(): skipping page 37: no interesting data
avrdude_git: avr_read_mem(): skipping page 38: no interesting data
avrdude_git: avr_read_mem(): skipping page 39: no interesting data
avrdude_git: avr_read_mem(): skipping page 40: no interesting data
avrdude_git: avr_read_mem(): skipping page 41: no interesting data
avrdude_git: avr_read_mem(): skipping page 42: no interesting data
avrdude_git: avr_read_mem(): skipping page 43: no interesting data
avrdude_git: avr_read_mem(): skipping page 44: no interesting data
avrdude_git: avr_read_mem(): skipping page 45: no interesting data
avrdude_git: avr_read_mem(): skipping page 46: no interesting data
avrdude_git: avr_read_mem(): skipping page 47: no interesting data
avrdude_git: avr_read_mem(): skipping page 48: no interesting data
avrdude_git: avr_read_mem(): skipping page 49: no interesting data
avrdude_git: avr_read_mem(): skipping page 50: no interesting data
avrdude_git: avr_read_mem(): skipping page 51: no interesting data
avrdude_git: avr_read_mem(): skipping page 52: no interesting data
avrdude_git: avr_read_mem(): skipping page 53: no interesting data
avrdude_git: avr_read_mem(): skipping page 54: no interesting data
avrdude_git: avr_read_mem(): skipping page 55: no interesting data
avrdude_git: avr_read_mem(): skipping page 56: no interesting data
avrdude_git: avr_read_mem(): skipping page 57: no interesting data
avrdude_git: avr_read_mem(): skipping page 58: no interesting data
avrdude_git: avr_read_mem(): skipping page 59: no interesting data
avrdude_git: avr_read_mem(): skipping page 60: no interesting data
avrdude_git: avr_read_mem(): skipping page 61: no interesting data
avrdude_git: avr_read_mem(): skipping page 62: no interesting data
avrdude_git: avr_read_mem(): skipping page 63: no interesting data
avrdude_git: avr_read_mem(): skipping page 64: no interesting data
avrdude_git: avr_read_mem(): skipping page 65: no interesting data
avrdude_git: avr_read_mem(): skipping page 66: no interesting data
avrdude_git: avr_read_mem(): skipping page 67: no interesting data
avrdude_git: avr_read_mem(): skipping page 68: no interesting data
avrdude_git: avr_read_mem(): skipping page 69: no interesting data
avrdude_git: avr_read_mem(): skipping page 70: no interesting data
avrdude_git: avr_read_mem(): skipping page 71: no interesting data
avrdude_git: avr_read_mem(): skipping page 72: no interesting data
avrdude_git: avr_read_mem(): skipping page 73: no interesting data
avrdude_git: avr_read_mem(): skipping page 74: no interesting data
avrdude_git: avr_read_mem(): skipping page 75: no interesting data
avrdude_git: avr_read_mem(): skipping page 76: no interesting data
avrdude_git: avr_read_mem(): skipping page 77: no interesting data
avrdude_git: avr_read_mem(): skipping page 78: no interesting data
avrdude_git: avr_read_mem(): skipping page 79: no interesting data
avrdude_git: avr_read_mem(): skipping page 80: no interesting data
avrdude_git: avr_read_mem(): skipping page 81: no interesting data
avrdude_git: avr_read_mem(): skipping page 82: no interesting data
avrdude_git: avr_read_mem(): skipping page 83: no interesting data
avrdude_git: avr_read_mem(): skipping page 84: no interesting data
avrdude_git: avr_read_mem(): skipping page 85: no interesting data
avrdude_git: avr_read_mem(): skipping page 86: no interesting data
avrdude_git: avr_read_mem(): skipping page 87: no interesting data
avrdude_git: avr_read_mem(): skipping page 88: no interesting data
avrdude_git: avr_read_mem(): skipping page 89: no interesting data
avrdude_git: avr_read_mem(): skipping page 90: no interesting data
avrdude_git: avr_read_mem(): skipping page 91: no interesting data
avrdude_git: avr_read_mem(): skipping page 92: no interesting data
avrdude_git: avr_read_mem(): skipping page 93: no interesting data
avrdude_git: avr_read_mem(): skipping page 94: no interesting data
avrdude_git: avr_read_mem(): skipping page 95: no interesting data
avrdude_git: avr_read_mem(): skipping page 96: no interesting data
avrdude_git: avr_read_mem(): skipping page 97: no interesting data
avrdude_git: avr_read_mem(): skipping page 98: no interesting data
avrdude_git: avr_read_mem(): skipping page 99: no interesting data
avrdude_git: avr_read_mem(): skipping page 100: no interesting data
avrdude_git: avr_read_mem(): skipping page 101: no interesting data
avrdude_git: avr_read_mem(): skipping page 102: no interesting data
avrdude_git: avr_read_mem(): skipping page 103: no interesting data
avrdude_git: avr_read_mem(): skipping page 104: no interesting data
avrdude_git: avr_read_mem(): skipping page 105: no interesting data
avrdude_git: avr_read_mem(): skipping page 106: no interesting data
avrdude_git: avr_read_mem(): skipping page 107: no interesting data
avrdude_git: avr_read_mem(): skipping page 108: no interesting data
avrdude_git: avr_read_mem(): skipping page 109: no interesting data
avrdude_git: avr_read_mem(): skipping page 110: no interesting data
avrdude_git: avr_read_mem(): skipping page 111: no interesting data
avrdude_git: avr_read_mem(): skipping page 112: no interesting data
avrdude_git: avr_read_mem(): skipping page 113: no interesting data
avrdude_git: avr_read_mem(): skipping page 114: no interesting data
avrdude_git: avr_read_mem(): skipping page 115: no interesting data
avrdude_git: avr_read_mem(): skipping page 116: no interesting data
avrdude_git: avr_read_mem(): skipping page 117: no interesting data
avrdude_git: avr_read_mem(): skipping page 118: no interesting data
avrdude_git: avr_read_mem(): skipping page 119: no interesting data
avrdude_git: avr_read_mem(): skipping page 120: no interesting data
avrdude_git: avr_read_mem(): skipping page 121: no interesting data
avrdude_git: avr_read_mem(): skipping page 122: no interesting data
avrdude_git: avr_read_mem(): skipping page 123: no interesting data
avrdude_git: avr_read_mem(): skipping page 124: no interesting data
avrdude_git: avr_read_mem(): skipping page 125: no interesting data
avrdude_git: avr_read_mem(): skipping page 126: no interesting data
avrdude_git: avr_read_mem(): skipping page 127: no interesting data
avrdude_git: avr_read_mem(): skipping page 128: no interesting data
avrdude_git: avr_read_mem(): skipping page 129: no interesting data
avrdude_git: avr_read_mem(): skipping page 130: no interesting data
avrdude_git: avr_read_mem(): skipping page 131: no interesting data
avrdude_git: avr_read_mem(): skipping page 132: no interesting data
avrdude_git: avr_read_mem(): skipping page 133: no interesting data
avrdude_git: avr_read_mem(): skipping page 134: no interesting data
avrdude_git: avr_read_mem(): skipping page 135: no interesting data
avrdude_git: avr_read_mem(): skipping page 136: no interesting data
avrdude_git: avr_read_mem(): skipping page 137: no interesting data
avrdude_git: avr_read_mem(): skipping page 138: no interesting data
avrdude_git: avr_read_mem(): skipping page 139: no interesting data
avrdude_git: avr_read_mem(): skipping page 140: no interesting data
avrdude_git: avr_read_mem(): skipping page 141: no interesting data
avrdude_git: avr_read_mem(): skipping page 142: no interesting data
avrdude_git: avr_read_mem(): skipping page 143: no interesting data
avrdude_git: avr_read_mem(): skipping page 144: no interesting data
avrdude_git: avr_read_mem(): skipping page 145: no interesting data
avrdude_git: avr_read_mem(): skipping page 146: no interesting data
avrdude_git: avr_read_mem(): skipping page 147: no interesting data
avrdude_git: avr_read_mem(): skipping page 148: no interesting data
avrdude_git: avr_read_mem(): skipping page 149: no interesting data
avrdude_git: avr_read_mem(): skipping page 150: no interesting data
avrdude_git: avr_read_mem(): skipping page 151: no interesting data
avrdude_git: avr_read_mem(): skipping page 152: no interesting data
avrdude_git: avr_read_mem(): skipping page 153: no interesting data
avrdude_git: avr_read_mem(): skipping page 154: no interesting data
avrdude_git: avr_read_mem(): skipping page 155: no interesting data
avrdude_git: avr_read_mem(): skipping page 156: no interesting data
avrdude_git: avr_read_mem(): skipping page 157: no interesting data
avrdude_git: avr_read_mem(): skipping page 158: no interesting data
avrdude_git: avr_read_mem(): skipping page 159: no interesting data
avrdude_git: avr_read_mem(): skipping page 160: no interesting data
avrdude_git: avr_read_mem(): skipping page 161: no interesting data
avrdude_git: avr_read_mem(): skipping page 162: no interesting data
avrdude_git: avr_read_mem(): skipping page 163: no interesting data
avrdude_git: avr_read_mem(): skipping page 164: no interesting data
avrdude_git: avr_read_mem(): skipping page 165: no interesting data
avrdude_git: avr_read_mem(): skipping page 166: no interesting data
avrdude_git: avr_read_mem(): skipping page 167: no interesting data
avrdude_git: avr_read_mem(): skipping page 168: no interesting data
avrdude_git: avr_read_mem(): skipping page 169: no interesting data
avrdude_git: avr_read_mem(): skipping page 170: no interesting data
avrdude_git: avr_read_mem(): skipping page 171: no interesting data
avrdude_git: avr_read_mem(): skipping page 172: no interesting data
avrdude_git: avr_read_mem(): skipping page 173: no interesting data
avrdude_git: avr_read_mem(): skipping page 174: no interesting data
avrdude_git: avr_read_mem(): skipping page 175: no interesting data
avrdude_git: avr_read_mem(): skipping page 176: no interesting data
avrdude_git: avr_read_mem(): skipping page 177: no interesting data
avrdude_git: avr_read_mem(): skipping page 178: no interesting data
avrdude_git: avr_read_mem(): skipping page 179: no interesting data
avrdude_git: avr_read_mem(): skipping page 180: no interesting data
avrdude_git: avr_read_mem(): skipping page 181: no interesting data
avrdude_git: avr_read_mem(): skipping page 182: no interesting data
avrdude_git: avr_read_mem(): skipping page 183: no interesting data
avrdude_git: avr_read_mem(): skipping page 184: no interesting data
avrdude_git: avr_read_mem(): skipping page 185: no interesting data
avrdude_git: avr_read_mem(): skipping page 186: no interesting data
avrdude_git: avr_read_mem(): skipping page 187: no interesting data
avrdude_git: avr_read_mem(): skipping page 188: no interesting data
avrdude_git: avr_read_mem(): skipping page 189: no interesting data
avrdude_git: avr_read_mem(): skipping page 190: no interesting data
avrdude_git: avr_read_mem(): skipping page 191: no interesting data
avrdude_git: avr_read_mem(): skipping page 192: no interesting data
avrdude_git: avr_read_mem(): skipping page 193: no interesting data
avrdude_git: avr_read_mem(): skipping page 194: no interesting data
avrdude_git: avr_read_mem(): skipping page 195: no interesting data
avrdude_git: avr_read_mem(): skipping page 196: no interesting data
avrdude_git: avr_read_mem(): skipping page 197: no interesting data
avrdude_git: avr_read_mem(): skipping page 198: no interesting data
avrdude_git: avr_read_mem(): skipping page 199: no interesting data
avrdude_git: avr_read_mem(): skipping page 200: no interesting data
avrdude_git: avr_read_mem(): skipping page 201: no interesting data
avrdude_git: avr_read_mem(): skipping page 202: no interesting data
avrdude_git: avr_read_mem(): skipping page 203: no interesting data
avrdude_git: avr_read_mem(): skipping page 204: no interesting data
avrdude_git: avr_read_mem(): skipping page 205: no interesting data
avrdude_git: avr_read_mem(): skipping page 206: no interesting data
avrdude_git: avr_read_mem(): skipping page 207: no interesting data
avrdude_git: avr_read_mem(): skipping page 208: no interesting data
avrdude_git: avr_read_mem(): skipping page 209: no interesting data
avrdude_git: avr_read_mem(): skipping page 210: no interesting data
avrdude_git: avr_read_mem(): skipping page 211: no interesting data
avrdude_git: avr_read_mem(): skipping page 212: no interesting data
avrdude_git: avr_read_mem(): skipping page 213: no interesting data
avrdude_git: avr_read_mem(): skipping page 214: no interesting data
avrdude_git: avr_read_mem(): skipping page 215: no interesting data
avrdude_git: avr_read_mem(): skipping page 216: no interesting data
avrdude_git: avr_read_mem(): skipping page 217: no interesting data
avrdude_git: avr_read_mem(): skipping page 218: no interesting data
avrdude_git: avr_read_mem(): skipping page 219: no interesting data
avrdude_git: avr_read_mem(): skipping page 220: no interesting data
avrdude_git: avr_read_mem(): skipping page 221: no interesting data
avrdude_git: avr_read_mem(): skipping page 222: no interesting data
avrdude_git: avr_read_mem(): skipping page 223: no interesting data
avrdude_git: avr_read_mem(): skipping page 224: no interesting data
avrdude_git: avr_read_mem(): skipping page 225: no interesting data
avrdude_git: avr_read_mem(): skipping page 226: no interesting data
avrdude_git: avr_read_mem(): skipping page 227: no interesting data
avrdude_git: avr_read_mem(): skipping page 228: no interesting data
avrdude_git: avr_read_mem(): skipping page 229: no interesting data
avrdude_git: avr_read_mem(): skipping page 230: no interesting data
avrdude_git: avr_read_mem(): skipping page 231: no interesting data
avrdude_git: avr_read_mem(): skipping page 232: no interesting data
avrdude_git: avr_read_mem(): skipping page 233: no interesting data
avrdude_git: avr_read_mem(): skipping page 234: no interesting data
avrdude_git: avr_read_mem(): skipping page 235: no interesting data
avrdude_git: avr_read_mem(): skipping page 236: no interesting data
avrdude_git: avr_read_mem(): skipping page 237: no interesting data
avrdude_git: avr_read_mem(): skipping page 238: no interesting data
avrdude_git: avr_read_mem(): skipping page 239: no interesting data
avrdude_git: avr_read_mem(): skipping page 240: no interesting data
avrdude_git: avr_read_mem(): skipping page 241: no interesting data
avrdude_git: avr_read_mem(): skipping page 242: no interesting data
avrdude_git: avr_read_mem(): skipping page 243: no interesting data
avrdude_git: avr_read_mem(): skipping page 244: no interesting data
avrdude_git: avr_read_mem(): skipping page 245: no interesting data
avrdude_git: avr_read_mem(): skipping page 246: no interesting data
avrdude_git: avr_read_mem(): skipping page 247: no interesting data
avrdude_git: avr_read_mem(): skipping page 248: no interesting data
avrdude_git: avr_read_mem(): skipping page 249: no interesting data
avrdude_git: avr_read_mem(): skipping page 250: no interesting data
avrdude_git: avr_read_mem(): skipping page 251: no interesting data
avrdude_git: verifying ...
avrdude_git: 1426 bytes of flash verified

avrdude_git done.  Thank you.
@mcuee mcuee added the enhancement New feature or request label Jan 1, 2023
@mcuee
Copy link
Collaborator Author

mcuee commented Jan 1, 2023

@mariusgreuel

Please take a look when you got some time.

@mariusgreuel mariusgreuel self-assigned this Jan 2, 2023
@mariusgreuel
Copy link
Contributor

mariusgreuel commented Jan 2, 2023

@mcuee Thanks for the report. I have assigned this issue to me.

One thing I am aware of is a difference between the way read timeouts work, i.e. when you request more bytes to read as are actually being received, and the operation times out with a partial read. With libftdi/libusb it seems (though that is only a guess) that the read implementation waits at least one USB poll interval and then returns (which introduces a millisecond delay), whereas the D2XX drivers read implementation returns immediately with whatever is in the PCs read buffer. As a result, the D2XX drivers may return zero bytes, whereas the libftdi/libusb implementation may return one or more bytes. Unfortunately, the AVRDUDE implementation relies on the particular way libftdi/libusb works, instead of retrying when zero bytes are received and more are expected.

I simply implemented a hack in the D2XX port that waits for a long time (1000ms) when there are no bytes received. Perhaps this is the reason, I have to check that out.

It would have been better to change the AVRDUDE code instead, but at the time I did not want to make changes to the AVRDUDE codebase, so that my Windows fork was easy to sync with the upstream. Now that the relevant code has been merged upstream, things have changed.

@mcuee
Copy link
Collaborator Author

mcuee commented Jan 3, 2023

@mariusgreuel

Thanks for the detailed explanation. I am okay to postpone the issue resolution after 7.1 release if the fix needs some time, as there is a work-around (to use MSY2 build which will use libftdi1 library).

@mcuee
Copy link
Collaborator Author

mcuee commented Apr 9, 2023

It would have been better to change the AVRDUDE code instead, but at the time I did not want to make changes to the AVRDUDE codebase, so that my Windows fork was easy to sync with the upstream. Now that the relevant code has been merged upstream, things have changed.

@mariusgreuel

Now that avrdude 7.1 has been released for a while, please take a look at this when you got some time. Thanks.

@mcuee
Copy link
Collaborator Author

mcuee commented Nov 1, 2023

@mariusgreuel

Just wondering if you can take a look at this one when you got the time. Thanks.

@raspB975
Copy link

Hi! I'm having the same issue with writing/reading SLOW speed via FTDI on v7.2.
On v5.9 All seem to be working fine.
How are you solving the problem?
on v7.2:

         Programmer Type : ftdi_syncbb
         Description     : FT232R Synchronous BitBang
         Pin assignment  : 0..7 = DBUS0..7
           VCC     =  (not used)
           BUFF    = ~0
           RESET   =  1
           SCK     =  2
           SDO     =  7
           SDI     =  4
           ERR LED =  (not used)
           RDY LED =  (not used)
           PGM LED =  (not used)
           VFY LED =  (not used)
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.07 s
avrdude: device signature = 0x1e930b (probably t85)

avrdude: processing -U flash:r:test_out.hex:i
avrdude: reading flash memory ...
Reading | ################################################## | 100% 217.79 s
avrdude: writing output file test_out.hex

@MCUdude
Copy link
Collaborator

MCUdude commented Jan 26, 2024

It may be that the bitbang clock speed needs to be adjusted.
I have not used the FTDI for bit banging before, but I think the delay/clock speed can be specified using -B, -b or -i.
I think the Avrdude documents this properly.

@mcuee
Copy link
Collaborator Author

mcuee commented Jan 26, 2024

Hi! I'm having the same issue with writing/reading SLOW speed via FTDI on v7.2. On v5.9 All seem to be working fine. How are you solving the problem? on v7.2:

This is a known limitation of the official MSVC build for Windows.
https://github.com/avrdudes/avrdude/wiki/Known-limitations-of-avrdude#known-issues-for-programmers

The work-around is to use the MinGW version, but you need to switch the driver to WinUSB using Zadig.
https://github.com/mcuee/avrdude/releases/tag/v7.2 (avrdude-v7.2_mingw64.zip)
https://github.com/arduino/avrdude-packing/releases/tag/7.2-arduino.1

@raspB975
Copy link

I think it's so much better!

avrdude: input file test_out.hex contains 4492 bytes
Reading | ################################################## | 100% 3.49 s
avrdude: 4492 bytes of flash verified

Thanks a lot.

@impnet
Copy link

impnet commented Jan 26, 2024

Same problem mentioned here: mariusgreuel/avrdude#13

Last working (fast) version was v6.3.1.1. Any higher version are so slow.

@mcuee
Copy link
Collaborator Author

mcuee commented Jan 27, 2024

Same problem mentioned here: mariusgreuel/avrdude#13

Last working (fast) version was v6.3.1.1. Any higher version are so slow.

Take note that version is not from official avrdude project, but rather the fork from @mariusgreuel. So it is not supported by avrdude project.
https://github.com/mariusgreuel/avrdude/releases

For avrdude 7.0/7.1/7.2 and git main, as a work-around, you can use the mingw version to have fast speed. The catch is that you have to use Zadig to switch to WinUSB driver.

@stefanrueger
Copy link
Collaborator

@mariusgreuel Do you want to have a look at this issue? Last year you gave some good insight into it and you seem to know what needs doing. We are getting increasingly more reports for this issue, and it would be great to solve it! Thanks

@impnet
Copy link

impnet commented Jan 28, 2024

Same problem mentioned here: mariusgreuel/avrdude#13
Last working (fast) version was v6.3.1.1. Any higher version are so slow.

Take note that version is not from official avrdude project, but rather the fork from @mariusgreuel. So it is not supported by avrdude project. https://github.com/mariusgreuel/avrdude/releases

For avrdude 7.0/7.1/7.2 and git main, as a work-around, you can use the mingw version to have fast speed. The catch is that you have to use Zadig to switch to WinUSB driver.

Not a very usefull workaround. Image how skilless users will be forced to install via third party software another drivers for USB device. All this just for update code in any AVR.
Not every users will undesrstand how to correctly instal WinUSB driver. And of course, almost every user will not trust Zadig software (it looks like blotware or any kind of scam software).
You muset undesrantd that it is not issue only of few users, you must think globally.

@mcuee
Copy link
Collaborator Author

mcuee commented Jan 29, 2024

@impnet

We understand that it is better to fix the issue with the MSVC build. Unfortunately @mariusgreuel is busy and has not been able to come back to this issue for a while.

Until someone steps in to work on this issue, the recommended workaround from avrdude project is to use the MinGW version and switch driver to WinUSB using Zadig,

@mcuee
Copy link
Collaborator Author

mcuee commented Jan 29, 2024

And it is the same situation for the following two issues.

@mcuee mcuee added the bug Something isn't working label Jan 30, 2024
@mcuee
Copy link
Collaborator Author

mcuee commented Jan 30, 2024

To make this issue more prominent I have added the bug label.

@mcuee mcuee changed the title ftdi_syncbb: very slow D2XX speed compared to libftdi ftdi_syncbb: very slow D2XX speed in MSVC build compared to libftdi MinGW build Jan 30, 2024
@mcuee mcuee changed the title ftdi_syncbb: very slow D2XX speed in MSVC build compared to libftdi MinGW build ftdi_syncbb: very slow D2XX based MSVC build compared to libftdi based MinGW build Jan 30, 2024
@mcuee mcuee added this to the AVRDUDE 7.4 milestone Feb 6, 2024
@mcuee mcuee removed this from the AVRDUDE 7.4 milestone Mar 17, 2024
@mcuee
Copy link
Collaborator Author

mcuee commented Mar 17, 2024

Remove this from avrdude 7.4 milestone since there is no active development on this topic.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

6 participants