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

Add -xdelay=n for -c wiring to modify sleep after dtr/rts reset #1505

Merged
merged 2 commits into from
Sep 28, 2023

Conversation

stefanrueger
Copy link
Collaborator

For more detailed discussions see #1503 and #1504

This PR introduces a -xdelay=... parameter for the -c wiring programmer; it modifies the time AVRDUDE waits after issuing a reset through plucking the DTR/RTS lines, which can be useful to adapt to the startup time of a board.

@stefanrueger stefanrueger added the enhancement New feature or request label Sep 26, 2023
Copy link

@diresi diresi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adding xdelay after setting RTS/DTR (physically) high didn't work for me in #1504 (comment).
The delay had to be applied before doing that.

@stefanrueger
Copy link
Collaborator Author

The delay had to be applied before doing that.

@diresi I think this was a fluke! Look very closely at your two scope images: The 75 ms delay moved the point of setting DTR high onto the top of a voltage ripple making the RESET spike that little bit higher to just cause the AVR to enter HV programming, while the 80 ms delay moved that point into the trough of a voltage ripple just about avoiding HV programming. (Why is that reproducible? I don't know, but suspect that setting DTR low causes some inrush from RESET, and the ensuing charging the 1 µF cap ties the ripple phase locally to settinng DTR low.) Anyway, dropping Vcc (recommended) would have solved your problem (and changing the usleep() would not have mattered) and increasing Vcc by as little as 50 mV (don't do this!) would have entered into HV no matter what the usleep() before was.

I have not thought about what AVRDUDE could do to help an out-of-specs over-voltage Vcc without Reset to Vcc clamp diode. But thinking about this, I now believe what really and reliably would help your board is collapsing the sleep time before setting DTR high to some, say, 0.2 ms: C9 would not have had time to charge fully (and a large cap helps here), so is only perhaps a couple of V charged, which reduces the reset voltage spike considerably.

@diresi Would you mind removing the clamp diode, using usleep(200) in line 183 and posting a picture of your scope?

@diresi
Copy link

diresi commented Sep 27, 2023

I can try later today.

But I gave it enough tries yesterday to at least convince myself that this sleep configuration doesn't work with unmodified GT2560 boards.
I do agree that it's valid to point out Vcc and clamp diode issues so that interested readers understand what's up with that.

@diresi
Copy link

diresi commented Sep 27, 2023

Wait, do you really mean usleep(200) in line 183 or usleep(20*1000)?

@stefanrueger
Copy link
Collaborator Author

do you really mean usleep(200) in line 183

Yes! Actually, I think this can go down to usleep(30). In order to get AVR into reset, the reset signal needs to be low for only some 2 µs. The long usleep(20*1000) ... usleep(50*1000) calls only serve to charge the cap to Vcc, which is then pushed onto the Reset as a spike of Vcc above Vcc (so 2*Vcc). If we want to get rid of the tall spike, we should only drop DTR for a very short time.

@stefanrueger
Copy link
Collaborator Author

... Even the 30 µs is conservative: this assumes that the inrush to the cap from RESET is dampened by a 30 Ohm internal resistance and a large cap of 1 µF. It will probably work with less time.

@mcuee
Copy link
Collaborator

mcuee commented Sep 27, 2023

I think this PR is good to have.

For my Mega2560 CH340 clone, -xdelay= works down to 1ms and up to 200ms (about 220ms).

PS C:\work\avr\avrdude_test\avrdude_bin> .\avrdude_pr1505 -C .\avrdude_pr1505.conf -c wiring -P COM40 -p m2560 -D -U .\hex2\blink-mega2560+lext-test.hex
avrdude_pr1505: AVR device initialized and ready to accept instructions
avrdude_pr1505: device signature = 0x1e9801 (probably m2560)

avrdude_pr1505: processing -U flash:w:.\hex2\blink-mega2560+lext-test.hex:i
avrdude_pr1505: reading input file .\hex2\blink-mega2560+lext-test.hex for flash
                with 1346 bytes in 4 sections within [0, 0x3106d]
                using 7 pages and 446 pad bytes
avrdude_pr1505: writing 1346 bytes flash ...
Writing | ################################################## | 100% 0.31 s
avrdude_pr1505: 1346 bytes of flash written
avrdude_pr1505: verifying flash memory against .\hex2\blink-mega2560+lext-test.hex
Reading | ################################################## | 100% 0.15 s
avrdude_pr1505: 1346 bytes of flash verified

avrdude_pr1505 done.  Thank you.

PS C:\work\avr\avrdude_test\avrdude_bin> .\avrdude_pr1505 -C .\avrdude_pr1505.conf -c wiring -P COM40 -p m2560 -D -U .\hex2\blink-mega2560+lext-test.hex -xdelay=30
avrdude_pr1505: AVR device initialized and ready to accept instructions
avrdude_pr1505: device signature = 0x1e9801 (probably m2560)

avrdude_pr1505: processing -U flash:w:.\hex2\blink-mega2560+lext-test.hex:i
avrdude_pr1505: reading input file .\hex2\blink-mega2560+lext-test.hex for flash
                with 1346 bytes in 4 sections within [0, 0x3106d]
                using 7 pages and 446 pad bytes
avrdude_pr1505: writing 1346 bytes flash ...
Writing | ################################################## | 100% 0.31 s
avrdude_pr1505: 1346 bytes of flash written
avrdude_pr1505: verifying flash memory against .\hex2\blink-mega2560+lext-test.hex
Reading | ################################################## | 100% 0.15 s
avrdude_pr1505: 1346 bytes of flash verified

avrdude_pr1505 done.  Thank you.

PS C:\work\avr\avrdude_test\avrdude_bin> .\avrdude_pr1505 -C .\avrdude_pr1505.conf -c wiring -P COM40 -p m2560 -D -U .\hex2\blink-mega2560+lext-test.hex -xdelay=10
avrdude_pr1505: AVR device initialized and ready to accept instructions
avrdude_pr1505: device signature = 0x1e9801 (probably m2560)

avrdude_pr1505: processing -U flash:w:.\hex2\blink-mega2560+lext-test.hex:i
avrdude_pr1505: reading input file .\hex2\blink-mega2560+lext-test.hex for flash
                with 1346 bytes in 4 sections within [0, 0x3106d]
                using 7 pages and 446 pad bytes
avrdude_pr1505: writing 1346 bytes flash ...
Writing | ################################################## | 100% 0.31 s
avrdude_pr1505: 1346 bytes of flash written
avrdude_pr1505: verifying flash memory against .\hex2\blink-mega2560+lext-test.hex
Reading | ################################################## | 100% 0.16 s
avrdude_pr1505: 1346 bytes of flash verified

avrdude_pr1505 done.  Thank you.

PS C:\work\avr\avrdude_test\avrdude_bin> .\avrdude_pr1505 -C .\avrdude_pr1505.conf -c wiring -P COM40 -p m2560 -D -U .\hex2\blink-mega2560+lext-test.hex -xdelay=1
avrdude_pr1505: AVR device initialized and ready to accept instructions
avrdude_pr1505: device signature = 0x1e9801 (probably m2560)

avrdude_pr1505: processing -U flash:w:.\hex2\blink-mega2560+lext-test.hex:i
avrdude_pr1505: reading input file .\hex2\blink-mega2560+lext-test.hex for flash
                with 1346 bytes in 4 sections within [0, 0x3106d]
                using 7 pages and 446 pad bytes
avrdude_pr1505: writing 1346 bytes flash ...
Writing | ################################################## | 100% 0.31 s
avrdude_pr1505: 1346 bytes of flash written
avrdude_pr1505: verifying flash memory against .\hex2\blink-mega2560+lext-test.hex
Reading | ################################################## | 100% 0.15 s
avrdude_pr1505: 1346 bytes of flash verified

avrdude_pr1505 done.  Thank you.

PS C:\work\avr\avrdude_test\avrdude_bin> .\avrdude_pr1505 -C .\avrdude_pr1505.conf -c wiring -P COM40 -p m2560 -D -U .\hex2\blink-mega2560+lext-test.hex -xdelay=200
avrdude_pr1505: AVR device initialized and ready to accept instructions
avrdude_pr1505: device signature = 0x1e9801 (probably m2560)

avrdude_pr1505: processing -U flash:w:.\hex2\blink-mega2560+lext-test.hex:i
avrdude_pr1505: reading input file .\hex2\blink-mega2560+lext-test.hex for flash
                with 1346 bytes in 4 sections within [0, 0x3106d]
                using 7 pages and 446 pad bytes
avrdude_pr1505: writing 1346 bytes flash ...
Writing | ################################################## | 100% 0.31 s
avrdude_pr1505: 1346 bytes of flash written
avrdude_pr1505: verifying flash memory against .\hex2\blink-mega2560+lext-test.hex
Reading | ################################################## | 100% 0.15 s
avrdude_pr1505: 1346 bytes of flash verified

avrdude_pr1505 done.  Thank you.

PS C:\work\avr\avrdude_test\avrdude_bin> .\avrdude_pr1505 -C .\avrdude_pr1505.conf -c wiring -P COM40 -p m2560 -D -U .\hex2\blink-mega2560+lext-test.hex -xdelay=300
avrdude_pr1505 error: timeout
avrdude_pr1505 error: timeout
avrdude_pr1505 error: timeout
avrdude_pr1505 error: timeout
avrdude_pr1505 error: timeout
avrdude_pr1505 error: timeout
avrdude_pr1505 error: timeout communicating with programmer
avrdude_pr1505 error: stk500v2_getsync() failed; try -xdelay=n with some n in [-80, 100]
avrdude_pr1505 error: unable to open programmer wiring on port COM40
A possible candidate serial port is:
  -P COM40 or -P ch340
Note that above port might not be connected to a target board or an AVR programmer.
Also note there may be other direct serial ports not listed above.

avrdude_pr1505 done.  Thank you.

@diresi
Copy link

diresi commented Sep 27, 2023

Alright, I'm back with test results.
Both usleep(30) and usleep(200) in line 183 work well, without any other change, on my GT2560 board after removing the clamp diode again. To verify I used vanilla avrdude 7.2 that was expected to and did fail to flash the board. Patching sources to use those tiny sleep intervals fixed the going-to-HV-programming and still got into bootloader.

I do have some scope snaps but there's not much to see:

usleep(30):
gt2560-avrdude-usleep30

usleep(30) zooming into 2nd spike
gt2560-avrdude-usleep30-zoom

usleep(200):
gt2560-avrdude-usleep200

usleep(200) zooming into 2nd spike
gt2560-avrdude-usleep200-zoom

It seems like there's a limit how fast the RPI3 can go.

@stefanrueger
Copy link
Collaborator Author

stefanrueger commented Sep 27, 2023

That's brilliant. And exactly how I expected. So, the trick is to pluck DTR a few microseconds and not to hang around. For what it's worth I have done a little simulation of pulling DTR low for 100 µs albeit with a 100 nF/10 kΩ reset circuit:

falstad-reset-circuit-gimpc

Not much to see either, but it is clear that charging the cap only for a short time won't cause a huge spike. In this case we only have a 10% = 0.5 V spike above Vcc. With your 1 µF cap the reset spike should be much lower (as it takes 10 times as long to charge the cap).

@diresi
Copy link

diresi commented Sep 27, 2023

It is barely noticable, I'd say some 0.2V.

Standard AVR reset circuits deploy a connection from the DTR/RTS line of a
USB-to-serial chip to the AVR via a small capacitor, see

  https://onlinedocs.microchip.com/pr/GUID-F626284A-58F0-4C25-A6F3-0EA5054F3E2B-en-US-6/index.html?GUID-B80B25FF-E9D7-4766-B562-DA197B8B938C

Setting DTR/RTS low once will issue a reset. Setting this signal high
again after a short time ensures that a direct connection DTR/RTS to reset
also works. The duration of pulling DTR/RTS low must be relatively short,
say RC/10, in order to avoid a reset spike above Vcc. If Vcc exceeds 5.5 V
then a full 2 Vcc reset spike can potentially trigger HV programming.

See also
 - avrdudes#1504 (comment)
 - avrdudes#1505 (comment)
@stefanrueger
Copy link
Collaborator Author

OK, we have a plan. I'll change those waiting times to 100 µs (though much smaller would also be OK).

@stefanrueger
Copy link
Collaborator Author

Also fixes #1503

@stefanrueger stefanrueger linked an issue Sep 27, 2023 that may be closed by this pull request
@mcuee
Copy link
Collaborator

mcuee commented Sep 27, 2023

No regression on my Mega2560 CH340 clone.

PS C:\work\avr\avrdude_test\avrdude_bin> .\avrdude_pr1505v1 -C .\avrdude_pr1505v1.conf -c wiring -P COM40 -p m2560 -D -U .\hex2\blink-mega2560+lext-test.hex
avrdude_pr1505v1: AVR device initialized and ready to accept instructions
avrdude_pr1505v1: device signature = 0x1e9801 (probably m2560)

avrdude_pr1505v1: processing -U flash:w:.\hex2\blink-mega2560+lext-test.hex:i
avrdude_pr1505v1: reading input file .\hex2\blink-mega2560+lext-test.hex for flash
                  with 1346 bytes in 4 sections within [0, 0x3106d]
                  using 7 pages and 446 pad bytes
avrdude_pr1505v1: writing 1346 bytes flash ...
Writing | ################################################## | 100% 0.31 s
avrdude_pr1505v1: 1346 bytes of flash written
avrdude_pr1505v1: verifying flash memory against .\hex2\blink-mega2560+lext-test.hex
Reading | ################################################## | 100% 0.15 s
avrdude_pr1505v1: 1346 bytes of flash verified

avrdude_pr1505v1 done.  Thank you.

PS C:\work\avr\avrdude_test\avrdude_bin> .\avrdude_pr1505v1 -C .\avrdude_pr1505v1.conf -c wiring -P COM40 -p m2560 -D -U .\hex2\blink-mega2560+lext-test.hex -xdelay=1
avrdude_pr1505v1: AVR device initialized and ready to accept instructions
avrdude_pr1505v1: device signature = 0x1e9801 (probably m2560)

avrdude_pr1505v1: processing -U flash:w:.\hex2\blink-mega2560+lext-test.hex:i
avrdude_pr1505v1: reading input file .\hex2\blink-mega2560+lext-test.hex for flash
                  with 1346 bytes in 4 sections within [0, 0x3106d]
                  using 7 pages and 446 pad bytes
avrdude_pr1505v1: writing 1346 bytes flash ...
Writing | ################################################## | 100% 0.31 s
avrdude_pr1505v1: 1346 bytes of flash written
avrdude_pr1505v1: verifying flash memory against .\hex2\blink-mega2560+lext-test.hex
Reading | ################################################## | 100% 0.15 s
avrdude_pr1505v1: 1346 bytes of flash verified

avrdude_pr1505v1 done.  Thank you.

PS C:\work\avr\avrdude_test\avrdude_bin> .\avrdude_pr1505v1 -C .\avrdude_pr1505v1.conf -c wiring -P COM40 -p m2560 -D -U .\hex2\blink-mega2560+lext-test.hex -xdelay=220
avrdude_pr1505v1: AVR device initialized and ready to accept instructions
avrdude_pr1505v1: device signature = 0x1e9801 (probably m2560)

avrdude_pr1505v1: processing -U flash:w:.\hex2\blink-mega2560+lext-test.hex:i
avrdude_pr1505v1: reading input file .\hex2\blink-mega2560+lext-test.hex for flash
                  with 1346 bytes in 4 sections within [0, 0x3106d]
                  using 7 pages and 446 pad bytes
avrdude_pr1505v1: writing 1346 bytes flash ...
Writing | ################################################## | 100% 0.31 s
avrdude_pr1505v1: 1346 bytes of flash written
avrdude_pr1505v1: verifying flash memory against .\hex2\blink-mega2560+lext-test.hex
Reading | ################################################## | 100% 0.15 s
avrdude_pr1505v1: 1346 bytes of flash verified

avrdude_pr1505v1 done.  Thank you.

@mcuee
Copy link
Collaborator

mcuee commented Sep 28, 2023

No regression on a Uno clone (ATmega16U2 USB to Serial chip), -xdelay is down to 1ms and roughly up to 900ms.

PS C:\work\avr\avrdude_test\avrdude_bin> .\avrdude_pr1505v1 -C .\avrdude_pr1505v1.conf -c urclock -P COM41 -p m328p -U .\hex\Blink.ino.standard.hex
avrdude_pr1505v1: AVR device initialized and ready to accept instructions
avrdude_pr1505v1: device signature = 0x1e950f (probably m328p)
avrdude_pr1505v1: Note: flash memory has been specified, an erase cycle will be performed.
                  To disable this feature, specify the -D option.
avrdude_pr1505v1: erasing chip

avrdude_pr1505v1: processing -U flash:w:.\hex\Blink.ino.standard.hex:i
avrdude_pr1505v1: reading input file .\hex\Blink.ino.standard.hex for flash
                  with 924 bytes in 1 section within [0, 0x39b]
                  using 8 pages and 100 pad bytes
avrdude_pr1505v1: preparing flash input for device bootloader
avrdude_pr1505v1: writing 924 bytes flash ...
Writing | ################################################## | 100% 0.21 s
avrdude_pr1505v1: 924 bytes of flash written
avrdude_pr1505v1: verifying flash memory against .\hex\Blink.ino.standard.hex
Reading | ################################################## | 100% 0.12 s
avrdude_pr1505v1: 924 bytes of flash verified

avrdude_pr1505v1 done.  Thank you.

PS C:\work\avr\avrdude_test\avrdude_bin> .\avrdude_pr1505v1 -C .\avrdude_pr1505v1.conf -c urclock -P COM41 -p m328p -U .\hex\Blink.ino.standard.hex -xdelay=1
avrdude_pr1505v1: AVR device initialized and ready to accept instructions
avrdude_pr1505v1: device signature = 0x1e950f (probably m328p)
avrdude_pr1505v1: Note: flash memory has been specified, an erase cycle will be performed.
                  To disable this feature, specify the -D option.
avrdude_pr1505v1: erasing chip

avrdude_pr1505v1: processing -U flash:w:.\hex\Blink.ino.standard.hex:i
avrdude_pr1505v1: reading input file .\hex\Blink.ino.standard.hex for flash
                  with 924 bytes in 1 section within [0, 0x39b]
                  using 8 pages and 100 pad bytes
avrdude_pr1505v1: preparing flash input for device bootloader
avrdude_pr1505v1: writing 924 bytes flash ...
Writing | ################################################## | 100% 0.23 s
avrdude_pr1505v1: 924 bytes of flash written
avrdude_pr1505v1: verifying flash memory against .\hex\Blink.ino.standard.hex
Reading | ################################################## | 100% 0.12 s
avrdude_pr1505v1: 924 bytes of flash verified

avrdude_pr1505v1 done.  Thank you.

PS C:\work\avr\avrdude_test\avrdude_bin> .\avrdude_pr1505v1 -C .\avrdude_pr1505v1.conf -c urclock -P COM41 -p m328p -U .\hex\Blink.ino.standard.hex -xdelay=900
avrdude_pr1505v1: AVR device initialized and ready to accept instructions
avrdude_pr1505v1: device signature = 0x1e950f (probably m328p)
avrdude_pr1505v1: Note: flash memory has been specified, an erase cycle will be performed.
                  To disable this feature, specify the -D option.
avrdude_pr1505v1: erasing chip

avrdude_pr1505v1: processing -U flash:w:.\hex\Blink.ino.standard.hex:i
avrdude_pr1505v1: reading input file .\hex\Blink.ino.standard.hex for flash
                  with 924 bytes in 1 section within [0, 0x39b]
                  using 8 pages and 100 pad bytes
avrdude_pr1505v1: preparing flash input for device bootloader
avrdude_pr1505v1: writing 924 bytes flash ...
Writing | ################################################## | 100% 0.20 s
avrdude_pr1505v1: 924 bytes of flash written
avrdude_pr1505v1: verifying flash memory against .\hex\Blink.ino.standard.hex
Reading | ################################################## | 100% 0.12 s
avrdude_pr1505v1: 924 bytes of flash verified

avrdude_pr1505v1 done.  Thank you.

-c arduino does not support -xdelay. No regression either.

PS C:\work\avr\avrdude_test\avrdude_bin> .\avrdude_pr1505v1 -C .\avrdude_pr1505v1.conf -c arduino -P COM41 -p m328p -U .\hex\Blink.ino.standard.hex
avrdude_pr1505v1: AVR device initialized and ready to accept instructions
avrdude_pr1505v1: device signature = 0x1e950f (probably m328p)
avrdude_pr1505v1: Note: flash memory has been specified, an erase cycle will be performed.
                  To disable this feature, specify the -D option.
avrdude_pr1505v1: erasing chip

avrdude_pr1505v1: processing -U flash:w:.\hex\Blink.ino.standard.hex:i
avrdude_pr1505v1: reading input file .\hex\Blink.ino.standard.hex for flash
                  with 924 bytes in 1 section within [0, 0x39b]
                  using 8 pages and 100 pad bytes
avrdude_pr1505v1: writing 924 bytes flash ...
Writing | ################################################## | 100% 0.18 s
avrdude_pr1505v1: 924 bytes of flash written
avrdude_pr1505v1: verifying flash memory against .\hex\Blink.ino.standard.hex
Reading | ################################################## | 100% 0.13 s
avrdude_pr1505v1: 924 bytes of flash verified

avrdude_pr1505v1 done.  Thank you.

@mcuee
Copy link
Collaborator

mcuee commented Sep 28, 2023

One more board: Nano FT232RL clone. -xdelay can be down to 1ms and up to 800ms.

PS C:\work\avr\avrdude_test\avrdude_bin> .\avrdude_pr1505v1 -C .\avrdude_pr1505v1.conf -c urclock -P COM42 -p m328p -U .\hex\Blink.ino.standard.hex
avrdude_pr1505v1: AVR device initialized and ready to accept instructions
avrdude_pr1505v1: device signature = 0x1e950f (probably m328p)
avrdude_pr1505v1: Note: flash memory has been specified, an erase cycle will be performed.
                  To disable this feature, specify the -D option.
avrdude_pr1505v1: erasing chip

avrdude_pr1505v1: processing -U flash:w:.\hex\Blink.ino.standard.hex:i
avrdude_pr1505v1: reading input file .\hex\Blink.ino.standard.hex for flash
                  with 924 bytes in 1 section within [0, 0x39b]
                  using 8 pages and 100 pad bytes
avrdude_pr1505v1: preparing flash input for device bootloader
avrdude_pr1505v1: writing 924 bytes flash ...
Writing | ################################################## | 100% 0.26 s
avrdude_pr1505v1: 924 bytes of flash written
avrdude_pr1505v1: verifying flash memory against .\hex\Blink.ino.standard.hex
Reading | ################################################## | 100% 0.26 s
avrdude_pr1505v1: 924 bytes of flash verified

avrdude_pr1505v1 done.  Thank you.

PS C:\work\avr\avrdude_test\avrdude_bin> .\avrdude_pr1505v1 -C .\avrdude_pr1505v1.conf -c urclock -P COM42 -p m328p -U .\hex\Blink.ino.standard.hex -xdelay=1
avrdude_pr1505v1: AVR device initialized and ready to accept instructions
avrdude_pr1505v1: device signature = 0x1e950f (probably m328p)
avrdude_pr1505v1: Note: flash memory has been specified, an erase cycle will be performed.
                  To disable this feature, specify the -D option.
avrdude_pr1505v1: erasing chip

avrdude_pr1505v1: processing -U flash:w:.\hex\Blink.ino.standard.hex:i
avrdude_pr1505v1: reading input file .\hex\Blink.ino.standard.hex for flash
                  with 924 bytes in 1 section within [0, 0x39b]
                  using 8 pages and 100 pad bytes
avrdude_pr1505v1: preparing flash input for device bootloader
avrdude_pr1505v1: writing 924 bytes flash ...
Writing | ################################################## | 100% 0.27 s
avrdude_pr1505v1: 924 bytes of flash written
avrdude_pr1505v1: verifying flash memory against .\hex\Blink.ino.standard.hex
Reading | ################################################## | 100% 0.26 s
avrdude_pr1505v1: 924 bytes of flash verified

avrdude_pr1505v1 done.  Thank you.

PS C:\work\avr\avrdude_test\avrdude_bin> .\avrdude_pr1505v1 -C .\avrdude_pr1505v1.conf -c urclock -P COM42 -p m328p -U .\hex\Blink.ino.standard.hex -xdelay=800
avrdude_pr1505v1: AVR device initialized and ready to accept instructions
avrdude_pr1505v1: device signature = 0x1e950f (probably m328p)
avrdude_pr1505v1: Note: flash memory has been specified, an erase cycle will be performed.
                  To disable this feature, specify the -D option.
avrdude_pr1505v1: erasing chip

avrdude_pr1505v1: processing -U flash:w:.\hex\Blink.ino.standard.hex:i
avrdude_pr1505v1: reading input file .\hex\Blink.ino.standard.hex for flash
                  with 924 bytes in 1 section within [0, 0x39b]
                  using 8 pages and 100 pad bytes
avrdude_pr1505v1: preparing flash input for device bootloader
avrdude_pr1505v1: writing 924 bytes flash ...
Writing | ################################################## | 100% 0.26 s
avrdude_pr1505v1: 924 bytes of flash written
avrdude_pr1505v1: verifying flash memory against .\hex\Blink.ino.standard.hex
Reading | ################################################## | 100% 0.27 s
avrdude_pr1505v1: 924 bytes of flash verified

avrdude_pr1505v1 done.  Thank you.

@mcuee
Copy link
Collaborator

mcuee commented Sep 28, 2023

So this PR is good to go from my side.

@diresi
Copy link

diresi commented Sep 28, 2023

FWIW I also think this PR is good. Thanks!

@stefanrueger stefanrueger merged commit b76750d into avrdudes:main Sep 28, 2023
10 checks passed
@stefanrueger stefanrueger deleted the add-wiring-reset-delay branch September 28, 2023 23:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7e94ed4442b breaks flashing GT2560 boards
3 participants