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

PK5 ISP, dW, TPI, JTAG and theoretical PDI support #1935

Open
wants to merge 7 commits into
base: main
Choose a base branch
from

Conversation

MX682X
Copy link
Contributor

@MX682X MX682X commented Nov 23, 2024

Chips I tested with test-avrdude successfully:
328p with dw/isp
atmega32u4 with jtag/isp
Attiny9 with tpi

A couple of caveats I noticed:
debugWire had sometimes trouble writing higher flash addresses, but it was inconsistent. Couldn't tell why (tested with 328p). An increase of the page size seemed to mitigate the problem.

JTAG can't rewrite EEPROM, at least on 32u4, so a test was failing there. To write a new value, a chip erase is needed, but this is also pointed out in the datasheet.

As I don't have an xmega, I couldn't test the xmega jtag nor PDI, but it looked so similar to UPDI that I guess it should work.

@mcuee mcuee added the enhancement New feature or request label Nov 23, 2024
@MCUdude
Copy link
Collaborator

MCUdude commented Nov 24, 2024

It's incredibly cool to see full support for the PICkit5!

I just ran test8 with an ATmega64 using ISP and JTAG using a PICkit4 in PIC mode.

$ ./test8 pickit5_isp atmega64

Processing -U ALL:r:bak-pickit5_isp-atmega64.hex:I
Reading multiple memories ...
 - eeprom         | ################################################## | 100% 0.91 s 
 - flash          | ################################################## | 100% 20.67 s 
 - lfuse          | ################################################## | 100% 0.00 s 
 - hfuse          | ################################################## | 100% 0.00 s 
 - efuse          | ################################################## | 100% 0.00 s 
 - lock           | ################################################## | 100% 0.00 s 
 - prodsig/sigrow | -------------------------------------------------- | 0% 0.00 s 
Error: unsupported memory prodsig
Error: unable to read byte at address 0x0000
Error: read operation failed for memory prodsig
Warning: unable to read prodsig/sigrow (ret = -3), skipping...
 - sernum         | -------------------------------------------------- | 0% 0.00 s 
Error: unsupported memory sernum
Error: unable to read byte at address 0x0000
Error: read operation failed for memory sernum
Warning: unable to read sernum (ret = -3), skipping...
 - calibration    | ################################################## | 100% 0.01 s 
 - signature      | ################################################## | 100% 0.00 s 
Writing 67595 bytes to output file bak-pickit5_isp-atmega64.hex

Avrdude done.  Thank you.
-------------------------------
Re-running to create error logs

$ ./test8 pickit5_jtag atmega64

Processing -U ALL:r:bak-pickit5_jtag-atmega64.hex:I
Reading multiple memories ...
 - eeprom         | ################################################## | 100% 1.35 s 
 - flash          | ################################################## | 100% 20.57 s 
 - lfuse          | ################################################## | 100% 0.00 s 
 - hfuse          | ################################################## | 100% 0.00 s 
 - efuse          | ################################################## | 100% 0.00 s 
 - lock           | ################################################## | 100% 0.00 s 
 - prodsig/sigrow | -------------------------------------------------- | 0% 10.00 s 
Error: reading data memory failed
Error: unable to read byte at address 0x0000
Warning: unable to read prodsig/sigrow (ret = -2), skipping...
 - sernum         | -------------------------------------------------- | 0% 10.00 s 
Error: reading from PICkit failed
Error: unexpected read response
Error: unable to read byte at address 0x0000
Warning: unable to read sernum (ret = -2), skipping...
 - calibration    | -------------------------------------------------- | 0% 10.00 s 
Error: reading from PICkit failed
Error: unexpected read response
Error: unable to read byte at address 0x0000
Warning: unable to read calibration (ret = -2), skipping...
 - signature      | ################################################## | 100% 0.00 s 
Writing 67591 bytes to output file bak-pickit5_jtag-atmega64.hex
Error: reading from PICkit failed
Error: could not end programming, aborting
Error: wrote -60 out of 29 bytes, err = Operation timed out
Error: Sending script failed
Error: sending script failed

Avrdude done.  Thank you.
-------------------------------
Re-running to create error logs

@MCUdude
Copy link
Collaborator

MCUdude commented Nov 24, 2024

PICkit5 in PDI mode:

$ ./test8 pickit5_pdi atxmega128a3u

Processing -U ALL:r:bak-pickit5_pdi-atxmega128a3u.hex:I
Reading multiple memories ...
 - eeprom         | ################################################## | 100% 0.65 s 
 - flash          | ################################################## | 100% 15.16 s 
 - application    | ################################################## | 100% 14.10 s 
 - apptable       | ################################################## | 100% 0.89 s 
 - boot           | ################################################## | 100% 0.89 s 
 - fuses          | ################################################## | 100% 0.04 s 
 - fuse0          | ################################################## | 100% 0.01 s 
 - fuse1          | ################################################## | 100% 0.01 s 
 - fuse2          | ################################################## | 100% 0.01 s 
 - fuse4          | ################################################## | 100% 0.01 s 
 - fuse5          | ################################################## | 100% 0.01 s 
 - lock           | ################################################## | 100% 0.01 s 
 - prodsig/sigrow | ################################################## | 100% 0.31 s 
 - calibration    | ################################################## | 100% 0.02 s 
 - sernum         | ################################################## | 100% 0.09 s 
 - tempsense      | ################################################## | 100% 0.01 s 
 - usersig        | ################################################## | 100% 0.06 s 
 - signature      | ################################################## | 100% 0.00 s 
Writing 289368 bytes to output file bak-pickit5_pdi-atxmega128a3u.hex

Processing -T fact reset
performing chip erase; discarded pending writes to flash and EEPROM
Target successfully erased
Caching | ################################################## | 100% 0.75 s 
Caching | ################################################## | 100% 0.05 s 
Caching | ################################################## | 100% 0.06 s 
Synching cache to device ... done
after the next reset the part will have F_CPU = 2.000 MHz

Processing -U ALL:w:bak-pickit5_pdi-atxmega128a3u.hex:I
Reading 141887 bytes for multiple memories from input file bak-pickit5_pdi-atxmega128a3u.hex
Writing 2048 bytes to eeprom
Writing | ################################################## | 100% 0.97 s 
Reading | ################################################## | 100% 0.58 s 
2048 bytes of eeprom verified
Writing 139264 bytes to flash
Writing | ################################################## | 100% 18.63 s 
Reading | ################################################## | 100% 14.98 s 
Warning: flash verification mismatch
  device 0xff != input 0xcf at addr 0x21ffd (error)
Error: flash verification mismatch
Writing 131072 bytes to application
Writing | ################################################## | 100% 17.67 s 
Reading | ################################################## | 100% 14.11 s 
131072 bytes of application verified
Writing 8192 bytes to apptable
Writing | ################################################## | 100% 1.10 s 
Reading | ################################################## | 100% 0.88 s 
8192 bytes of apptable verified
Writing 8192 bytes to boot
Writing | ################################################## | 100% 0.96 s 
Reading | ################################################## | 100% 0.89 s 
Warning: boot verification mismatch
  device 0xff != input 0xcf at addr 0x1ffd (error)
Error: boot verification mismatch
Writing 7 bytes to fuses, 7 bytes written, 7 verified
Writing 1 byte (0xFF) to fuse0, 1 byte written, 1 verified
Writing 1 byte (0x00) to fuse1, 1 byte written, 1 verified
Writing 1 byte (0xFF) to fuse2, 1 byte written, 1 verified
Writing 1 byte (0xFE) to fuse4, 1 byte written, 1 verified
Writing 1 byte (0xFF) to fuse5, 1 byte written, 1 verified
Writing 1 byte (0xFF) to lock, 1 byte written, 1 verified
Writing 512 bytes to usersig
Writing | ################################################## | 100% 0.07 s 
Reading | ################################################## | 100% 0.06 s 
512 bytes of usersig verified

Avrdude done.  Thank you.
-------------------------------
Re-running to create error logs
performing chip erase; discarded pending writes to flash and EEPROM
after the next reset the part will have F_CPU = 2.000 MHz

PICkit5 in XMEGA JTAG mode

$ ./test8 pickit5_jtag atxmega256a3bu

Processing -U ALL:r:bak-pickit5_jtag-atxmega256a3bu.hex:I
Reading multiple memories ...
 - eeprom         | ################################################## | 100% 1.33 s 
 - flash          | ################################################## | 100% 29.12 s 
 - application    | ################################################## | 100% 28.26 s 
 - apptable       | ################################################## | 100% 0.89 s 
 - boot           | ################################################## | 100% 0.88 s 
 - fuses          | ################################################## | 100% 0.04 s 
 - fuse0          | ################################################## | 100% 0.01 s 
 - fuse1          | ################################################## | 100% 0.01 s 
 - fuse2          | ################################################## | 100% 0.01 s 
 - fuse4          | ################################################## | 100% 0.01 s 
 - fuse5          | ################################################## | 100% 0.01 s 
 - lock           | ################################################## | 100% 0.01 s 
 - prodsig/sigrow | ################################################## | 100% 0.31 s 
 - calibration    | ################################################## | 100% 0.01 s 
 - sernum         | -------------------------------------------------- | 0% 10.00 s 
Error: reading data memory failed
Error: unable to read byte at address 0x0000
Warning: unable to read sernum (ret = -2), skipping...
 - tempsense      | -------------------------------------------------- | 0% 10.00 s 
Error: reading data memory failed
Error: unable to read byte at address 0x0000
Warning: unable to read tempsense (ret = -2), skipping...
 - usersig        | -------------------------------------------------- | 0% 10.13 s 
Error: reading data memory failed
Error: reading data memory failed
Error: unable to read byte at address 0x0000
Warning: unable to read usersig (ret = -2), skipping...
 - signature      | ################################################## | 100% 0.00 s 
Writing 553032 bytes to output file bak-pickit5_jtag-atxmega256a3bu.hex
Error: reading from PICkit failed
Error: could not end programming, aborting
Error: reading from PICkit failed
Error: reading script response failed

Avrdude done.  Thank you.
-------------------------------
Re-running to create error logs

@MCUdude
Copy link
Collaborator

MCUdude commented Nov 24, 2024

Output from test-avrdude:

$ ./test-avrdude -p "-cpickit5_isp -patmega64"
Testing /usr/local/bin/avrdude 8.0-20241123 (fbffbf7a)
Prepare "-cpickit5_isp -patmega64" and press 'enter' or 'space' to continue. Press any other key to skip
✅   0.316 s: fuse access: clear, set and read eesave fuse bit
✅   0.311 s: fuse access: set eesave fusebit to delete EEPROM on chip erase
✅   0.551 s: chip erase
✅   8.111 s: flash -U write/verify holes_rjmp_loops_65536B.hex
✅   3.865 s: flash -T write/verify holes_rjmp_loops_65536B.hex
✅   1.017 s: eeprom check whether programmer can flip 0s to 1s
✅   5.182 s: eeprom -U write/verify holes_pack_my_box_2048B.hex
✅  10.142 s: eeprom -T write/verify holes_{the_five_boxing_wizards,pack_my_box}_2048B.hex
✅   4.178 s: chip erase and spot check flash is actually erased
✅   0.544 s: spot check eeprom is erased, too

$ ./test-avrdude -p "-cpickit5_pdi -patxmega128a3u"
Testing /usr/local/bin/avrdude 8.0-20241123 (fbffbf7a)
Prepare "-cpickit5_pdi -patxmega128a3u" and press 'enter' or 'space' to continue. Press any other key to skip
✅   0.322 s: fuse access: clear, set and read eesave fuse bit
✅   0.280 s: fuse access: set eesave fusebit to delete EEPROM on chip erase
✅   0.571 s: chip erase
✅   6.274 s: flash -U write/verify holes_rjmp_loops_139264B.hex
✅   2.829 s: flash -T write/verify holes_rjmp_loops_139264B.hex
❌   0.349 s: eeprom check whether programmer can flip 0s to 1s (failed command below)
$ avrdude -qq -cpickit5_pdi -patxmega128a3u -Ueeprom:w:0x55:m -Ueeprom:w:0xaa:m
# ... the next test may therefore take longer
✅  22.488 s: eeprom -T write/verify holes_{the_five_boxing_wizards,pack_my_box}_2048B.hex
✅   3.124 s: chip erase and spot check flash is actually erased
✅   0.436 s: spot check eeprom is erased, too
✅   0.767 s: usersig -T/-U write/read random_data_512B.bin

$ ./test-avrdude -p "-cpickit5_pdi -patxmega256a3bu"
Testing /usr/local/bin/avrdude 8.0-20241123 (fbffbf7a)
Prepare "-cpickit5_pdi -patxmega256a3bu" and press 'enter' or 'space' to continue. Press any other key to skip
✅   0.325 s: fuse access: clear, set and read eesave fuse bit
✅   0.283 s: fuse access: set eesave fusebit to delete EEPROM on chip erase
✅   0.605 s: chip erase
✅  11.328 s: flash -U write/verify holes_rjmp_loops_270336B.hex
✅   5.149 s: flash -T write/verify holes_rjmp_loops_270336B.hex
❌   0.347 s: eeprom check whether programmer can flip 0s to 1s (failed command below)
$ avrdude -qq -cpickit5_pdi -patxmega256a3bu -Ueeprom:w:0x55:m -Ueeprom:w:0xaa:m
# ... the next test may therefore take longer
✅  43.637 s: eeprom -T write/verify holes_{the_five_boxing_wizards,pack_my_box}_4096B.hex
✅   5.527 s: chip erase and spot check flash is actually erased
✅   0.583 s: spot check eeprom is erased, too
✅   0.762 s: usersig -T/-U write/read random_data_512B.bin

$ ./test-avrdude -p "-cpickit5_jtag -patxmega256a3bu"
Testing /usr/local/bin/avrdude 8.0-20241123 (fbffbf7a)
Prepare "-cpickit5_jtag -patxmega256a3bu" and press 'enter' or 'space' to continue. Press any other key to skip
✅   0.307 s: fuse access: clear, set and read eesave fuse bit
✅   0.278 s: fuse access: set eesave fusebit to delete EEPROM on chip erase
✅   0.567 s: chip erase
✅  11.185 s: flash -U write/verify holes_rjmp_loops_270336B.hex
✅   5.137 s: flash -T write/verify holes_rjmp_loops_270336B.hex
❌   0.333 s: eeprom check whether programmer can flip 0s to 1s (failed command below)
$ avrdude -qq -cpickit5_jtag -patxmega256a3bu -Ueeprom:w:0x55:m -Ueeprom:w:0xaa:m
# ... the next test may therefore take longer
✅  43.447 s: eeprom -T write/verify holes_{the_five_boxing_wizards,pack_my_box}_4096B.hex
✅   5.493 s: chip erase and spot check flash is actually erased
✅   0.580 s: spot check eeprom is erased, too
✅   0.761 s: usersig -T/-U write/read random_data_512B.bin


$ ./test-avrdude -p "-cpickit5_jtag -patmega645"
Testing /usr/local/bin/avrdude 8.0-20241123 (fbffbf7a)
Prepare "-cpickit5_jtag -patmega645" and press 'enter' or 'space' to continue. Press any other key to skip
✅   0.340 s: fuse access: clear, set and read eesave fuse bit
✅   0.321 s: fuse access: set eesave fusebit to delete EEPROM on chip erase
✅   0.689 s: chip erase
✅   8.083 s: flash -U write/verify holes_rjmp_loops_65536B.hex
✅   3.860 s: flash -T write/verify holes_rjmp_loops_65536B.hex
❌   0.464 s: eeprom check whether programmer can flip 0s to 1s (failed command below)
$ avrdude -qq -cpickit5_jtag -patmega645 -Ueeprom:w:0x55:m -Ueeprom:w:0xaa:m
# ... the next test may therefore take longer
✅  38.860 s: eeprom -T write/verify holes_{the_five_boxing_wizards,pack_my_box}_2048B.hex
✅   4.216 s: chip erase and spot check flash is actually erased
✅   0.664 s: spot check eeprom is erased, too

$ ./test-avrdude -p "-cpickit5_isp -pattiny13"
Testing /usr/local/bin/avrdude 8.0-20241123 (fbffbf7a)
Prepare "-cpickit5_isp -pattiny13" and press 'enter' or 'space' to continue. Press any other key to skip
✅   0.325 s: fuse access: clear, set and read eesave fuse bit
✅   0.304 s: fuse access: set eesave fusebit to delete EEPROM on chip erase
✅   0.403 s: chip erase
✅   0.615 s: flash -U write/verify holes_rjmp_loops_1024B.hex
✅   0.413 s: flash -T write/verify holes_rjmp_loops_1024B.hex
✅   0.447 s: eeprom check whether programmer can flip 0s to 1s
✅   0.464 s: eeprom -U write/verify holes_pack_my_box_64B.hex
✅   0.586 s: eeprom -T write/verify holes_{the_five_boxing_wizards,pack_my_box}_64B.hex
✅   0.507 s: chip erase and spot check flash is actually erased
✅   0.340 s: spot check eeprom is erased, too

The ATtiny15 is a difficult one. I'm not even sure it's supported by the PICkit5, but I gave it a try anyways. Results below:

$ avrdude -cpickit5_isp -pattiny15 -B32 -t
avrdude> c
config cksel=slowpwrx00 # 0
config rstdisbl=external_reset # 1
config spien=isp_enabled # 0
config boden=bod_disabled # 1
config bodlevel=bod_4v0 # 0
config lb=no_lock # 3
avrdude> read flash
Reading | -------------------------------------------------- | 0% 10.12 s 
Error: reading data memory failed
Error: unable to read flash page at addr 0x0000
Error: (read) error reading flash address 0x00000 of part ATtiny15
avrdude> read fuse
Reading | -------------------------------------------------- | 0% 10.11 s 
Error: reading from PICkit failed
Error: reading script response failed
Error: Read Fuse Script failed
Error: (read) error reading fuse address 0x00000 of part ATtiny15
avrdude> read eeprom
Reading | ########################-------------------------- | 48% 0.08 s 
Error: unexpected response
Error: sending script done message failed
Error: unexpected response
Error: unexpected read response
Error: unable to read eeprom page at addr 0x0020
Error: (read) error reading eeprom address 0x00020 of part ATtiny15
avrdude> read signature
Reading | ################################################## | 100% 0.00 s 
0000  1e 90 06                                          |...             |
avrdude> read cal
Reading | -------------------------------------------------- | 0% 0.00 s 
Error: unexpected response
Error: unexpected read response
Error: (read) error reading calibration address 0x00000 of part ATtiny15
avrdude> read lock
Reading | -------------------------------------------------- | 0% 0.00 s 
Error: unexpected response
Error: unexpected read response
Error: (read) error reading lock address 0x00000 of part ATtiny15
avrdude> read sernum
Reading | -------------------------------------------------- | 0% 0.00 s 
Error: unsupported memory sernum
Error: (read) error reading sernum address 0x00000 of part ATtiny15
avrdude> q
Error: unexpected response
Error: could not end programming, aborting
Error: unexpected response
Error: reading script response failed

Avrdude done.  Thank you.

@MX682X
Copy link
Contributor Author

MX682X commented Nov 24, 2024

I'm not sure, but I think I have a bug in JTAG Fuse write that doesn't correctly poll for a completed read. This might lead to a fuse write corruption. It seems like it wrote a wrong value into hfuse killing SPI and JTAG access on my 32u4.
I haven't noticed it before, but with test8 writing the fuses in a short order it hit the edge case.

tl;dr, don't use JTAG for now. At least not when writing Fuses in quick succession.

Any recommendation on how to HVPP the Arduino Leonardo without a HVPP Programmer? (With 5 bucks per chip, it would suck to loose it) Was thinking about to just write a quick sketch to do fuse reads/writes with another AVR, probably a DA with 12V coming from an external Power Supply.

Oh, and I was able to get prodsig to work on isp (didn't manage to check jtag), I didn't knew they even had it as I've only consulted the docs.

@MX682X
Copy link
Contributor Author

MX682X commented Nov 24, 2024

The ATtiny15 is a difficult one. I'm not even sure it's supported by the PICkit5, but I gave it a try anyways. Results below:

How so exactly? I mean besides the flash programming failing? According to the scripts.xml, it is supported.
Thinking about it, Flash programming probably failed because of the 1k page size overwrite I did to fix things on 32k devices; I'll change it up then.

@MCUdude
Copy link
Collaborator

MCUdude commented Nov 24, 2024

Any recommendation on how to HVPP the Arduino Leonardo without a HVPP Programmer?

I'm not even sure the Leonardo breaks out all the necessary pins to do HVPP. Are you using the atmega32u4 to test JTAG?
I have an STK500 board I use when I screw up something. But I'd build myself an AVR fuse doctor or similar if I didn't had one.

Oh, and I was able to get prodsig to work on isp (didn't manage to check jtag), I didn't knew they even had it as I've only consulted the docs.

IIRC prodsig and serial number was added to lots of "classic" AVRs right before the v8.0 release. test8 is very comprehensive, but it did help us track down lots of small bugs, and was one of the reason why the Avrdude v8.0 release got delayed.

The ATtiny15 is a difficult one. I'm not even sure it's supported by the PICkit5, but I gave it a try anyways. Results below:

How so exactly? I mean besides the flash programming failing? According to the scripts.xml, it is supported.
Thinking about it, Flash programming probably failed because of the 1k page size overwrite I did to fix things on 32k devices; I'll change it up then.

I'm not able to read any memory apart from the signature. But I'll give it a try again if you think you have a solution.

BTW thank you for doing this. This PR is a BIG DEAL for the community and the Avrdude project in general. Fully supporting the latest and greatest official Microchip programmers is key to keep Avrdude relevant. I only have a PICkit4 and a SNAP to test with, but it would be really interesting to see if hte ICE4 and/or an ICD5 would work as well. They should be compatible as they use the same scripting approach, but I wouldn't conclude with anything before performing actual tests. Maybe @xedbg have access to these?

@xedbg
Copy link

xedbg commented Nov 25, 2024

Those tools are so expensive not even I can afford to order one 😬
(But in theory they are the same)

@MX682X
Copy link
Contributor Author

MX682X commented Nov 25, 2024

Good news: I was able to recover the 32u4, just had to solder on 3 jumper wires and desolder a diode on the reset line. This allowed me to verify that fuses and prodsig work correctly with jtag now, no lockouts on my end anymore.

./test8 pickit5_jtag atxmega256a3bu

I looked at the test log again and noticed something strange - the transfer had a timeout on sernum for some reason (the 10 seconds flat is an indicator) and broke all following transactions. The only reason signature works is because I only check it once on init and just feed the buffered signature. I would be useful if you could try to read it with -vvv in terminal mode to get a better idea of what's going on.

avrdude -cpickit5_isp -pattiny15 -B32 -t

Is there a reason why the -B32 option was used? Has it failed on a faster clock before?

Writing 139264 bytes to flash
Writing | ################################################## | 100% 18.63 s
Reading | ################################################## | 100% 14.98 s
Warning: flash verification mismatch
device 0xff != input 0xcf at addr 0x21ffd (error)

This is a similar error I had with debugWire. I increased the page size here too, maybe it could help.

Also, I'd like to suggest to change the usbdev_send trace output created with the -vvvv option to the same format that is used on memory reads, is this feasable? it would make debugging the data way easier then the wall of unformatted text log that is currently implemented.

@MCUdude
Copy link
Collaborator

MCUdude commented Nov 25, 2024

avrdude -cpickit5_isp -pattiny15 -B32 -t

Is there a reason why the -B32 option was used? Has it failed on a faster clock before?

I couldn't even read the signature if I didn't reduce the ISP clock speed. I tried -B8 and -B16, but I was only able to read the signature using -B32.

BTW can you add pickit5 as an alias for pickit5_jtag? We've done that on the PICkit4, Atmel ICE and most JTAG3 comatible programmers.

Here are a few new test8 runs using your latest commit.

# It doesn't work well with the ATtiny15. I was able to write to flash though, but I had to disconnect and reconnect the pickit afterwards
$ avrdude -cpickit5_isp -pattiny15 -B16
Device signature = 00 01 02
Error: expected signature for ATtiny15 is 1E 90 06
  - double check chip or use -F to carry on regardless

Avrdude done.  Thank you.

$ avrdude -cpickit5_isp -pattiny15 -B32 -t
avrdude> read flash
Reading | ################################################## | 100% 1.20 s 
0000  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
0010  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
0020  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
0030  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
0040  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
0050  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
0060  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
0070  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
0080  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
0090  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
00a0  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
00b0  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
00c0  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
00d0  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
00e0  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
00f0  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
avrdude> write flash 0 "Hello World"
Caching | ################################################## | 100% 0.00 s 
avrdude> flush
Synching cache to device ... 
Writing | ################################################## | 100% 1.27 s 
avrdude> read eeprom
Reading | -------------------------------------------------- | 0% 10.09 s 
Error: reading data memory failed
Error: unable to read eeprom page at addr 0x0000
Error: (read) error reading eeprom address 0x00000 of part ATtiny15
avrdude> q
^C

$ avrdude -cpickit5_isp -pattiny15 -B32 -t
avrdude> read flash
Reading | -------------------------------------------------- | 0% 0.00 s 
Error: wrote -6 out of 188 bytes, err = Device not configured
Error: Sending script failed
Error: sending script with upload failed
Error: wrote -6 out of 188 bytes, err = Device not configured
Error: Sending script failed
Error: sending script with upload failed
Error: unable to read flash page at addr 0x0000
Error: (read) error reading flash address 0x00000 of part ATtiny15
avrdude> q
Error: wrote -6 out of 26 bytes, err = Device not configured
Error: Sending script failed
Error: could not end programming, aborting
Error: wrote -6 out of 29 bytes, err = Device not configured
Error: Sending script failed
Error: sending script failed

Avrdude done.  Thank you.

$ avrdude -cpickit5_isp -pattiny15 -B32 -t
avrdude> read flash
Reading | ################################################## | 100% 1.20 s 
0000  48 65 6c 6c 6f 20 57 6f  72 6c 64 00 ff ff ff ff  |Hello World.....|
0010  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
0020  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
0030  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
0040  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
0050  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
0060  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
0070  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
0080  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
0090  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
00a0  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
00b0  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
00c0  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
00d0  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
00e0  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
00f0  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
avrdude> read fuse
Reading | -------------------------------------------------- | 0% 0.00 s 
Error: wrote -6 out of 51 bytes, err = Device not configured
Error: Sending script failed
Error: sending script failed
Error: Read Fuse Script failed
Error: (read) error reading fuse address 0x00000 of part ATtiny15
avrdude> q
Error: wrote -6 out of 26 bytes, err = Device not configured
Error: Sending script failed
Error: could not end programming, aborting
Error: wrote -6 out of 29 bytes, err = Device not configured
Error: Sending script failed
Error: sending script failed

Avrdude done.  Thank you.


$ ./test8 pickit5_isp atmega64

Processing -U ALL:r:bak-pickit5_isp-atmega64.hex:I
Reading multiple memories ...
 - eeprom         | ################################################## | 100% 1.28 s 
 - flash          | ################################################## | 100% 20.20 s 
 - lfuse          | ################################################## | 100% 0.00 s 
 - hfuse          | ################################################## | 100% 0.00 s 
 - efuse          | ################################################## | 100% 0.00 s 
 - lock           | ################################################## | 100% 0.00 s 
 - prodsig/sigrow | ################################################## | 100% 0.03 s 
 - sernum         | ################################################## | 100% 0.01 s 
 - calibration    | ################################################## | 100% 0.01 s 
 - signature      | ################################################## | 100% 0.00 s 
Writing 67629 bytes to output file bak-pickit5_isp-atmega64.hex

Processing -T fact reset
performing chip erase; discarded pending writes to flash and EEPROM
Target successfully erased
Caching | ################################################## | 100% 1.28 s 
Caching | ################################################## | 100% 0.01 s 
after the next reset the part will have F_CPU = 1.000 MHz

Processing -U ALL:w:bak-pickit5_isp-atmega64.hex:I
Reading 67619 bytes for multiple memories from input file bak-pickit5_isp-atmega64.hex
Writing 2048 bytes to eeprom
Writing | ################################################## | 100% 22.72 s 
Reading | ################################################## | 100% 1.40 s 
2048 bytes of eeprom verified
Writing 65536 bytes to flash
Writing | ################################################## | 100% 4.00 s 
Reading | ################################################## | 100% 20.27 s 
65536 bytes of flash verified
Writing 1 byte (0xBF) to lfuse, 1 byte written
Warning: lfuse verification mismatch
  device 0xff != input 0xbf at addr 0x0000 (error)
Error: lfuse verification mismatch
Writing 1 byte (0x8F) to hfuse, 1 byte written, 1 verified
Writing 1 byte (0xFF) to efuse, 1 byte written, 1 verified
Writing 1 byte (0xFF) to lock, 1 byte written, 1 verified

Avrdude done.  Thank you.
-------------------------------
Re-running to create error logs
performing chip erase; discarded pending writes to flash and EEPROM
after the next reset the part will have F_CPU = 1.000 MHz
^C


$ ./test8 pickit5_pdi atxmega256a3bu

Processing -U ALL:r:bak-pickit5_pdi-atxmega256a3bu.hex:I
Reading multiple memories ...
 - eeprom         | ################################################## | 100% 1.43 s 
 - flash          | ################################################## | 100% 28.86 s 
 - application    | ################################################## | 100% 29.01 s 
 - apptable       | ################################################## | 100% 0.90 s 
 - boot           | ################################################## | 100% 0.86 s 
 - fuses          | ################################################## | 100% 0.04 s 
 - fuse0          | ################################################## | 100% 0.01 s 
 - fuse1          | ################################################## | 100% 0.01 s 
 - fuse2          | ################################################## | 100% 0.01 s 
 - fuse4          | ################################################## | 100% 0.01 s 
 - fuse5          | ################################################## | 100% 0.01 s 
 - lock           | ################################################## | 100% 0.01 s 
 - prodsig/sigrow | ################################################## | 100% 0.36 s 
 - calibration    | ################################################## | 100% 0.02 s 
 - sernum         | ################################################## | 100% 0.08 s 
 - tempsense      | ################################################## | 100% 0.01 s 
 - usersig        | ################################################## | 100% 0.06 s 
 - signature      | ################################################## | 100% 0.00 s 
Writing 553560 bytes to output file bak-pickit5_pdi-atxmega256a3bu.hex

Processing -T fact reset
performing chip erase; discarded pending writes to flash and EEPROM
Target successfully erased
Caching | ################################################## | 100% 1.53 s 
Caching | ################################################## | 100% 0.05 s 
Caching | ################################################## | 100% 0.06 s 
after the next reset the part will have F_CPU = 2.000 MHz

Processing -U ALL:w:bak-pickit5_pdi-atxmega256a3bu.hex:I
Reading 275007 bytes for multiple memories from input file bak-pickit5_pdi-atxmega256a3bu.hex
Writing 4096 bytes to eeprom
Writing | ################################################## | 100% 1.94 s 
Reading | ################################################## | 100% 1.36 s 
4096 bytes of eeprom verified
Writing 270336 bytes to flash
Writing | ################################################## | 100% 36.87 s 
Reading | ################################################## | 100% 28.53 s 
270336 bytes of flash verified
Writing 262144 bytes to application
Writing | ################################################## | 100% 35.11 s 
Reading | ################################################## | 100% 27.73 s 
262144 bytes of application verified
Writing 8192 bytes to apptable
Writing | ################################################## | 100% 1.09 s 
Reading | ################################################## | 100% 0.98 s 
8192 bytes of apptable verified
Writing 8192 bytes to boot
Writing | ################################################## | 100% 0.96 s 
Reading | ################################################## | 100% 0.85 s 
8192 bytes of boot verified
Writing 7 bytes to fuses, 7 bytes written, 7 verified
Writing 1 byte (0xFF) to fuse0, 1 byte written, 1 verified
Writing 1 byte (0x00) to fuse1, 1 byte written, 1 verified
Writing 1 byte (0xFF) to fuse2, 1 byte written, 1 verified
Writing 1 byte (0xFE) to fuse4, 1 byte written, 1 verified
Writing 1 byte (0xFF) to fuse5, 1 byte written, 1 verified
Writing 1 byte (0xFF) to lock, 1 byte written, 1 verified
Writing 512 bytes to usersig
Writing | ################################################## | 100% 0.07 s 
Reading | ################################################## | 100% 0.06 s 
512 bytes of usersig verified

Processing -U ALL:v:bak-pickit5_pdi-atxmega256a3bu.hex:I
Verifying 275007 bytes of multiple memories against input file bak-pickit5_pdi-atxmega256a3bu.hex
Reading | ################################################## | 100% 1.16 s 
4096 bytes of eeprom verified
Reading | ################################################## | 100% 28.43 s 
270336 bytes of flash verified
Reading | ################################################## | 100% 27.55 s 
262144 bytes of application verified
Reading | ################################################## | 100% 0.85 s 
8192 bytes of apptable verified
Reading | ################################################## | 100% 0.85 s 
8192 bytes of boot verified
7 bytes of fuses verified
1 byte of fuse0 verified
1 byte of fuse1 verified
1 byte of fuse2 verified
1 byte of fuse4 verified
1 byte of fuse5 verified
1 byte of lock verified
Reading | ################################################## | 100% 0.31 s 
52 bytes of prodsig/sigrow verified
4 bytes of calibration verified
14 bytes of sernum verified
2 bytes of tempsense verified
Reading | ################################################## | 100% 0.06 s 
512 bytes of usersig verified
3 bytes of signature verified

Avrdude done.  Thank you.

$ ./test8 pickit5_jtag atxmega256a3bu

Processing -U ALL:r:bak-pickit5_jtag-atxmega256a3bu.hex:I
Reading multiple memories ...
 - eeprom         | ################################################## | 100% 1.28 s 
 - flash          | ################################################## | 100% 28.50 s 
 - application    | ################################################## | 100% 27.65 s 
 - apptable       | ################################################## | 100% 0.85 s 
 - boot           | ################################################## | 100% 0.85 s 
 - fuses          | ################################################## | 100% 0.04 s 
 - fuse0          | ################################################## | 100% 0.01 s 
 - fuse1          | ################################################## | 100% 0.01 s 
 - fuse2          | ################################################## | 100% 0.01 s 
 - fuse4          | ################################################## | 100% 0.01 s 
 - fuse5          | ################################################## | 100% 0.01 s 
 - lock           | ################################################## | 100% 0.01 s 
 - prodsig/sigrow | ################################################## | 100% 0.31 s 
 - calibration    | ################################################## | 100% 0.01 s 
 - sernum         | -------------------------------------------------- | 0% 10.00 s 
Error: reading data memory failed
Error: unable to read byte at address 0x0000
Warning: unable to read sernum (ret = -2), skipping...
 - tempsense      | -------------------------------------------------- | 0% 10.00 s 
Error: reading data memory failed
Error: unable to read byte at address 0x0000
Warning: unable to read tempsense (ret = -2), skipping...
 - usersig        |                                                    | 0% 0.00 s ^C

$ avrdude -cpickit5_jtag -patxmega256a3bu -T 'read sernum' -vvvv
$ avrdude -cpickit5_jtag -patxmega256a3bu -T 'read sernum' -vvvv
Avrdude version 8.0-20241125 (7d82e587)
Copyright see https://github.com/avrdudes/avrdude/blob/main/AUTHORS

System wide configuration file is /usr/local/etc/avrdude.conf
User configuration file /Users/hans/.avrduderc does not exist

Using port            : usb
Using programmer      : pickit5_jtag
Programmer baud rate  : 200000
Pickit5_open("usb")
Usbdev_open(): found MPLAB? PICkit 4, serno: BUR204071896
Max packet size expected 2048, but found 512 due to EP 0x81's wMaxPacketSize
AVR part              : ATxmega256A3BU
Programming modes     : SPM, PDI, XMEGAJTAG

Memory            Size  Pg size     Offset
------------------------------------------
eeprom            4096       32   0x8c0000 
flash           270336      512   0x800000 
application     262144      512   0x800000 
apptable          8192      512   0x83e000 
boot              8192      512   0x840000 
fuses                7        1   0x8f0020 
fuse0                1        1   0x8f0020 
fuse1                1        1   0x8f0021 
fuse2                1        1   0x8f0022 
fuse4                1        1   0x8f0024 
fuse5                1        1   0x8f0025 
lock                 1        1   0x8f0027 
prodsig/sigrow      52        1   0x8e0200 
calibration          4        1   0x8e0200 
sernum              14        1   0x8e0208 
tempsense            2        1   0x8e022e 
usersig            512      512   0x8e0400 
io                4096        1          0 
sram             16384        1     0x2000 
signature            3        1  0x1000090 

Variants            Package  F max   T range        V range       
------------------------------------------------------------------
ATxmega256A3BU-AU   TQFP64   32 MHz  [-40 C, 85 C]  [1.6 V, 3.6 V]
ATxmega256A3BU-AUR  TQFP64   N/A     [N/A,    N/A]  [N/A,     N/A]
ATxmega256A3BU-MH   QFN64    32 MHz  [-40 C, 85 C]  [1.6 V, 3.6 V]
ATxmega256A3BU-MHR  VQFN64   32 MHz  [-40 C, 85 C]  [1.6 V, 3.6 V]

Programmer type       : pickit5
Description           : MPLAB(R) PICkit 5, PICkit 4 and SNAP (PIC) in JTAG Mode
Pickit5_get_fw_info()
Usbdev_send: . [e1]
Application version   : 02.01.80
Serial number         : BUR204071896
Pickit5_initialize()
Pickit5_set_ptg_mode()
Pickit5_send_script(scr_len: 5, param_len: 0, payload_len: 4)
Usbdev_send: . [02] . [01] . [00] . [80] . [00] . [00] . [00] . [00] . [1d] . [00] . [00] . [00] . [04] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [05] . [00] . [00] . [00] ^ [5e] . [00] . [00] . [00] . [00]
Usbdev_send: . [03] . [01] . [00] . [00] . [00] . [00] . [00] . [00] . [10] . [00] . [00] . [00] . [00] . [00] . [00] . [00]
Pickit5_set_vtarget(disable)
Pickit5_send_script(scr_len: 5, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] . [1d] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [05] . [00] . [00] . [00] F [46] . [00] . [00] . [00] . [00]
Pickit5_send_script(scr_len: 1, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] . [19] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [01] . [00] . [00] . [00] D [44]
Pickit5_get_vtarget()
Pickit5_send_script(scr_len: 1, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] . [19] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [01] . [00] . [00] . [00] G [47]
Target Vdd: 3.38 V, target current: 0 mA
External Voltage detected: will not supply power
Pickit5_set_sck_period()
Pickit5_send_script(scr_len: 14, param_len: 4, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] * [2a] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [04] . [00] . [00] . [00] . [0e] . [00] . [00] . [00] . [c8] . [00] . [00] . [00] . [91] . [00] . [90] . [01] . [01] . [00] . [00] . [00] . [1e] ` [60] . [01] . [1e] a [61] . [00]
Pickit5_program_enable()
Pickit5_send_script(scr_len: 179, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] . [cb] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [b3] . [00] . [00] . [00] . [90] . [00] . [01] . [00] . [00] . [00] . [1e] ` [60] . [00] . [90] . [00] . [00] . [00] . [00] . [00] . [90] . [01] . [04] . [00] . [00] . [00] . [1e] b [62] . [00] . [01] . [90] . [00] . [00] . [00] . [00] . [00] . [90] . [01] . [01] . [00] . [00] . [00] . [1e] c [63] . [00] . [01] . [90] . [00] . [03] . [00] . [00] . [00] . [1e] f [66] . [00] . [90] . [00]   [20] . [00] . [00] . [00] . [1e] j [6a] . [00] . [90] . [00] . [07] . [00] . [00] . [00] . [1e] f [66] . [00] . [9b] . [01] . [00] . [9b] . [02] . [fd] . [1e] . [0f] . [01] . [02] . [9b] . [01] . [00] . [a2] . [1e] . [0e] . [01] . [a5] . [02] . [00] . [00] . [00] . [00] . [00] . [00] . [00] 2 [32] . [00] . [9b] . [01] . [01] . [9b] . [02] Y [59] . [1e] . [0f] . [01] . [02] . [9b] . [01] . [00] e [65] . [ff] . [88] . [d8] . [cd] . [04] e [65] E [45] . [ab] . [89] . [12] . [04] . [1e] . [11] . [01] . [9b] . [01] . [00] . [1e] . [0e] . [01] l [6c] . [02] f [66] . [02] . [f9] . [00] . [00] . [00] . [90] . [03] . [00] . [00] . [00] . [00] . [fc] . [02] . [03] . [aa] . [00] . [9b] . [01] . [00] . [a2] . [1e] . [0e] . [01] . [a5] . [02] . [00] . [00] . [00] . [02] . [00] . [00] . [00] . [e8] . [03] . [fb] . [b2] . [00] . [90] . [01] . [00] . [01] . [00] . [00] . [7f] . [01] Z [5a]
Pickit5_read_dev_id()
Pickit5_send_script(scr_len: 104, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] . [80] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] h [68] . [00] . [00] . [00] . [95] . [90] . [01] . [c0] . [01] . [00] . [00] . [fe] . [01] . [00] . [00] . [00] . [00] % [25] . [00] . [90] . [03] . [ca] . [01] . [00] . [01] . [1e] . [03] . [03] l [6c] . [0a] . [90] . [03] . [c4] . [01] . [00] . [01] . [1e] . [03] . [03] l [6c] . [0b] . [90] . [00] . [90] . [00] . [00] . [01] . [1e] . [09] . [00] . [9c] . [01] . [03] . [00] . [1e] . [10] . [01] . [9b] . [02] . [03] . [1e] . [0c] . [02] . [90] . [02] . [93] . [00] . [00] . [01] . [1e] . [03] . [02] . [9f] . [90] . [01] . [c0] . [01] . [00] . [00] . [fe] . [01] . [00] . [00] . [00] . [00] g [67] . [00] . [90] . [03] . [ca] . [01] . [00] . [01] . [1e] . [06] . [03] . [0a] . [90] . [03] . [c4] . [01] . [00] . [01] . [1e] . [06] . [03] . [0b] Z [5a]

AVR device initialized and ready to accept instructions
Avr_signature(pickit5_jtag, x256a3bu)
Reading |                                                    | 0% 0.00 s 
Avr_read_mem(pickit5_jtag, x256a3bu, signature, NULL)
Pickit5_read_array(signature, addr: 0x0000, offset: 16777360, len: 1)
Reading | #################                                  | 33% 0.00 s 
Reading | ################################################## | 100% 0.00 s 
Device signature = 1E 98 43 (ATxmega256A3B, ATxmega256A3BU)
>>> read sernum 0x0 0xe
Reading |                                                    | 0% 0.00 s 
Pickit5_read_array(sernum, addr: 0x0000, offset: 9306632, len: 1)
Pickit5_send_script(scr_len: 106, param_len: 8, payload_len: 1)
Usbdev_send: . [02] . [01] . [00] . [80] . [00] . [00] . [00] . [00] . [8a] . [00] . [00] . [00] . [01] . [00] . [00] . [00] . [08] . [00] . [00] . [00] j [6a] . [00] . [00] . [00] . [08] . [02] . [8e] . [00] . [01] . [00] . [00] . [00] . [91] . [00] . [91] . [01] . [95] . [90] . [04] . [c0] . [01] . [00] . [00] . [90] . [05] . [00] . [00] . [00] . [00] . [fc] . [04] . [05] & [26] . [00] . [ad] . [01] . [1e] . [03] . [00] . [9f] . [92] . [00] . [01] . [00] . [00] . [00] . [ae] . [fb] i [69] . [00] . [90] . [06] . [ca] . [01] . [00] . [01] . [1e] . [03] . [06] l [6c] . [0a] . [90] . [06] . [c4] . [01] . [00] . [01] . [1e] . [03] . [06] l [6c] . [0b] . [90] . [04] . [ca] . [01] . [00] . [01] . [90] . [05] . [07] . [00] . [00] . [00] . [1e] . [06] . [04] . [05] . [1e] . [09] . [00] . [1e] . [10] . [01] . [1e] . [0c] . [01] . [90] . [06] . [ca] . [01] . [00] . [01] . [1e] . [06] . [06] . [0a] . [90] . [06] . [c4] . [01] . [00] . [01] . [1e] . [06] . [06] . [0b] Z [5a]
Usbdev_send: . [03] . [01] . [00] . [00] . [00] . [00] . [00] . [00] . [10] . [00] . [00] . [00] . [00] . [00] . [00] . [00]
Pickit5_read_array(sernum, addr: 0x0001, offset: 9306632, len: 1)
Pickit5_send_script(scr_len: 106, param_len: 8, payload_len: 1)
Usbdev_send: . [02] . [01] . [00] . [80] . [00] . [00] . [00] . [00] . [8a] . [00] . [00] . [00] . [01] . [00] . [00] . [00] . [08] . [00] . [00] . [00] j [6a] . [00] . [00] . [00] . [09] . [02] . [8e] . [00] . [01] . [00] . [00] . [00] . [91] . [00] . [91] . [01] . [95] . [90] . [04] . [c0] . [01] . [00] . [00] . [90] . [05] . [00] . [00] . [00] . [00] . [fc] . [04] . [05] & [26] . [00] . [ad] . [01] . [1e] . [03] . [00] . [9f] . [92] . [00] . [01] . [00] . [00] . [00] . [ae] . [fb] i [69] . [00] . [90] . [06] . [ca] . [01] . [00] . [01] . [1e] . [03] . [06] l [6c] . [0a] . [90] . [06] . [c4] . [01] . [00] . [01] . [1e] . [03] . [06] l [6c] . [0b] . [90] . [04] . [ca] . [01] . [00] . [01] . [90] . [05] . [07] . [00] . [00] . [00] . [1e] . [06] . [04] . [05] . [1e] . [09] . [00] . [1e] . [10] . [01] . [1e] . [0c] . [01] . [90] . [06] . [ca] . [01] . [00] . [01] . [1e] . [06] . [06] . [0a] . [90] . [06] . [c4] . [01] . [00] . [01] . [1e] . [06] . [06] . [0b] Z [5a]
Usbdev_send: . [03] . [01] . [00] . [00] . [00] . [00] . [00] . [00] . [10] . [00] . [00] . [00] . [00] . [00] . [00] . [00]
Reading | ####                                               | 7% 0.01 s 
Pickit5_read_array(sernum, addr: 0x0002, offset: 9306632, len: 1)
Pickit5_send_script(scr_len: 106, param_len: 8, payload_len: 1)
Usbdev_send: . [02] . [01] . [00] . [80] . [00] . [00] . [00] . [00] . [8a] . [00] . [00] . [00] . [01] . [00] . [00] . [00] . [08] . [00] . [00] . [00] j [6a] . [00] . [00] . [00] . [0a] . [02] . [8e] . [00] . [01] . [00] . [00] . [00] . [91] . [00] . [91] . [01] . [95] . [90] . [04] . [c0] . [01] . [00] . [00] . [90] . [05] . [00] . [00] . [00] . [00] . [fc] . [04] . [05] & [26] . [00] . [ad] . [01] . [1e] . [03] . [00] . [9f] . [92] . [00] . [01] . [00] . [00] . [00] . [ae] . [fb] i [69] . [00] . [90] . [06] . [ca] . [01] . [00] . [01] . [1e] . [03] . [06] l [6c] . [0a] . [90] . [06] . [c4] . [01] . [00] . [01] . [1e] . [03] . [06] l [6c] . [0b] . [90] . [04] . [ca] . [01] . [00] . [01] . [90] . [05] . [07] . [00] . [00] . [00] . [1e] . [06] . [04] . [05] . [1e] . [09] . [00] . [1e] . [10] . [01] . [1e] . [0c] . [01] . [90] . [06] . [ca] . [01] . [00] . [01] . [1e] . [06] . [06] . [0a] . [90] . [06] . [c4] . [01] . [00] . [01] . [1e] . [06] . [06] . [0b] Z [5a]
Usbdev_send: . [03] . [01] . [00] . [00] . [00] . [00] . [00] . [00] . [10] . [00] . [00] . [00] . [00] . [00] . [00] . [00]
Reading | #######                                            | 14% 0.02 s 
Pickit5_read_array(sernum, addr: 0x0003, offset: 9306632, len: 1)
Pickit5_send_script(scr_len: 106, param_len: 8, payload_len: 1)
Usbdev_send: . [02] . [01] . [00] . [80] . [00] . [00] . [00] . [00] . [8a] . [00] . [00] . [00] . [01] . [00] . [00] . [00] . [08] . [00] . [00] . [00] j [6a] . [00] . [00] . [00] . [0b] . [02] . [8e] . [00] . [01] . [00] . [00] . [00] . [91] . [00] . [91] . [01] . [95] . [90] . [04] . [c0] . [01] . [00] . [00] . [90] . [05] . [00] . [00] . [00] . [00] . [fc] . [04] . [05] & [26] . [00] . [ad] . [01] . [1e] . [03] . [00] . [9f] . [92] . [00] . [01] . [00] . [00] . [00] . [ae] . [fb] i [69] . [00] . [90] . [06] . [ca] . [01] . [00] . [01] . [1e] . [03] . [06] l [6c] . [0a] . [90] . [06] . [c4] . [01] . [00] . [01] . [1e] . [03] . [06] l [6c] . [0b] . [90] . [04] . [ca] . [01] . [00] . [01] . [90] . [05] . [07] . [00] . [00] . [00] . [1e] . [06] . [04] . [05] . [1e] . [09] . [00] . [1e] . [10] . [01] . [1e] . [0c] . [01] . [90] . [06] . [ca] . [01] . [00] . [01] . [1e] . [06] . [06] . [0a] . [90] . [06] . [c4] . [01] . [00] . [01] . [1e] . [06] . [06] . [0b] Z [5a]
Usbdev_send: . [03] . [01] . [00] . [00] . [00] . [00] . [00] . [00] . [10] . [00] . [00] . [00] . [00] . [00] . [00] . [00]
Reading | ###########                                        | 21% 0.02 s 
Pickit5_read_array(sernum, addr: 0x0004, offset: 9306632, len: 1)
Pickit5_send_script(scr_len: 106, param_len: 8, payload_len: 1)
Usbdev_send: . [02] . [01] . [00] . [80] . [00] . [00] . [00] . [00] . [8a] . [00] . [00] . [00] . [01] . [00] . [00] . [00] . [08] . [00] . [00] . [00] j [6a] . [00] . [00] . [00] . [0c] . [02] . [8e] . [00] . [01] . [00] . [00] . [00] . [91] . [00] . [91] . [01] . [95] . [90] . [04] . [c0] . [01] . [00] . [00] . [90] . [05] . [00] . [00] . [00] . [00] . [fc] . [04] . [05] & [26] . [00] . [ad] . [01] . [1e] . [03] . [00] . [9f] . [92] . [00] . [01] . [00] . [00] . [00] . [ae] . [fb] i [69] . [00] . [90] . [06] . [ca] . [01] . [00] . [01] . [1e] . [03] . [06] l [6c] . [0a] . [90] . [06] . [c4] . [01] . [00] . [01] . [1e] . [03] . [06] l [6c] . [0b] . [90] . [04] . [ca] . [01] . [00] . [01] . [90] . [05] . [07] . [00] . [00] . [00] . [1e] . [06] . [04] . [05] . [1e] . [09] . [00] . [1e] . [10] . [01] . [1e] . [0c] . [01] . [90] . [06] . [ca] . [01] . [00] . [01] . [1e] . [06] . [06] . [0a] . [90] . [06] . [c4] . [01] . [00] . [01] . [1e] . [06] . [06] . [0b] Z [5a]
Usbdev_send: . [03] . [01] . [00] . [00] . [00] . [00] . [00] . [00] . [10] . [00] . [00] . [00] . [00] . [00] . [00] . [00]
Reading | ##############                                     | 28% 0.03 s 
Pickit5_read_array(sernum, addr: 0x0005, offset: 9306632, len: 1)
Pickit5_send_script(scr_len: 106, param_len: 8, payload_len: 1)
Usbdev_send: . [02] . [01] . [00] . [80] . [00] . [00] . [00] . [00] . [8a] . [00] . [00] . [00] . [01] . [00] . [00] . [00] . [08] . [00] . [00] . [00] j [6a] . [00] . [00] . [00] . [0d] . [02] . [8e] . [00] . [01] . [00] . [00] . [00] . [91] . [00] . [91] . [01] . [95] . [90] . [04] . [c0] . [01] . [00] . [00] . [90] . [05] . [00] . [00] . [00] . [00] . [fc] . [04] . [05] & [26] . [00] . [ad] . [01] . [1e] . [03] . [00] . [9f] . [92] . [00] . [01] . [00] . [00] . [00] . [ae] . [fb] i [69] . [00] . [90] . [06] . [ca] . [01] . [00] . [01] . [1e] . [03] . [06] l [6c] . [0a] . [90] . [06] . [c4] . [01] . [00] . [01] . [1e] . [03] . [06] l [6c] . [0b] . [90] . [04] . [ca] . [01] . [00] . [01] . [90] . [05] . [07] . [00] . [00] . [00] . [1e] . [06] . [04] . [05] . [1e] . [09] . [00] . [1e] . [10] . [01] . [1e] . [0c] . [01] . [90] . [06] . [ca] . [01] . [00] . [01] . [1e] . [06] . [06] . [0a] . [90] . [06] . [c4] . [01] . [00] . [01] . [1e] . [06] . [06] . [0b] Z [5a]
Usbdev_send: . [03] . [01] . [00] . [00] . [00] . [00] . [00] . [00] . [10] . [00] . [00] . [00] . [00] . [00] . [00] . [00]
Reading | ##################                                 | 35% 0.04 s 
Pickit5_read_array(sernum, addr: 0x0006, offset: 9306632, len: 1)
Pickit5_send_script(scr_len: 106, param_len: 8, payload_len: 1)
Usbdev_send: . [02] . [01] . [00] . [80] . [00] . [00] . [00] . [00] . [8a] . [00] . [00] . [00] . [01] . [00] . [00] . [00] . [08] . [00] . [00] . [00] j [6a] . [00] . [00] . [00] . [0e] . [02] . [8e] . [00] . [01] . [00] . [00] . [00] . [91] . [00] . [91] . [01] . [95] . [90] . [04] . [c0] . [01] . [00] . [00] . [90] . [05] . [00] . [00] . [00] . [00] . [fc] . [04] . [05] & [26] . [00] . [ad] . [01] . [1e] . [03] . [00] . [9f] . [92] . [00] . [01] . [00] . [00] . [00] . [ae] . [fb] i [69] . [00] . [90] . [06] . [ca] . [01] . [00] . [01] . [1e] . [03] . [06] l [6c] . [0a] . [90] . [06] . [c4] . [01] . [00] . [01] . [1e] . [03] . [06] l [6c] . [0b] . [90] . [04] . [ca] . [01] . [00] . [01] . [90] . [05] . [07] . [00] . [00] . [00] . [1e] . [06] . [04] . [05] . [1e] . [09] . [00] . [1e] . [10] . [01] . [1e] . [0c] . [01] . [90] . [06] . [ca] . [01] . [00] . [01] . [1e] . [06] . [06] . [0a] . [90] . [06] . [c4] . [01] . [00] . [01] . [1e] . [06] . [06] . [0b] Z [5a]
Usbdev_send: . [03] . [01] . [00] . [00] . [00] . [00] . [00] . [00] . [10] . [00] . [00] . [00] . [00] . [00] . [00] . [00]
Reading | #####################                              | 42% 0.04 s 
Pickit5_read_array(sernum, addr: 0x0007, offset: 9306632, len: 1)
Pickit5_send_script(scr_len: 106, param_len: 8, payload_len: 1)
Usbdev_send: . [02] . [01] . [00] . [80] . [00] . [00] . [00] . [00] . [8a] . [00] . [00] . [00] . [01] . [00] . [00] . [00] . [08] . [00] . [00] . [00] j [6a] . [00] . [00] . [00] . [0f] . [02] . [8e] . [00] . [01] . [00] . [00] . [00] . [91] . [00] . [91] . [01] . [95] . [90] . [04] . [c0] . [01] . [00] . [00] . [90] . [05] . [00] . [00] . [00] . [00] . [fc] . [04] . [05] & [26] . [00] . [ad] . [01] . [1e] . [03] . [00] . [9f] . [92] . [00] . [01] . [00] . [00] . [00] . [ae] . [fb] i [69] . [00] . [90] . [06] . [ca] . [01] . [00] . [01] . [1e] . [03] . [06] l [6c] . [0a] . [90] . [06] . [c4] . [01] . [00] . [01] . [1e] . [03] . [06] l [6c] . [0b] . [90] . [04] . [ca] . [01] . [00] . [01] . [90] . [05] . [07] . [00] . [00] . [00] . [1e] . [06] . [04] . [05] . [1e] . [09] . [00] . [1e] . [10] . [01] . [1e] . [0c] . [01] . [90] . [06] . [ca] . [01] . [00] . [01] . [1e] . [06] . [06] . [0a] . [90] . [06] . [c4] . [01] . [00] . [01] . [1e] . [06] . [06] . [0b] Z [5a]
Usbdev_send: . [03] . [01] . [00] . [00] . [00] . [00] . [00] . [00] . [10] . [00] . [00] . [00] . [00] . [00] . [00] . [00]
Reading | #########################                          | 50% 0.05 s 
Pickit5_read_array(sernum, addr: 0x0008, offset: 9306632, len: 1)
Pickit5_send_script(scr_len: 106, param_len: 8, payload_len: 1)
Usbdev_send: . [02] . [01] . [00] . [80] . [00] . [00] . [00] . [00] . [8a] . [00] . [00] . [00] . [01] . [00] . [00] . [00] . [08] . [00] . [00] . [00] j [6a] . [00] . [00] . [00] . [10] . [02] . [8e] . [00] . [01] . [00] . [00] . [00] . [91] . [00] . [91] . [01] . [95] . [90] . [04] . [c0] . [01] . [00] . [00] . [90] . [05] . [00] . [00] . [00] . [00] . [fc] . [04] . [05] & [26] . [00] . [ad] . [01] . [1e] . [03] . [00] . [9f] . [92] . [00] . [01] . [00] . [00] . [00] . [ae] . [fb] i [69] . [00] . [90] . [06] . [ca] . [01] . [00] . [01] . [1e] . [03] . [06] l [6c] . [0a] . [90] . [06] . [c4] . [01] . [00] . [01] . [1e] . [03] . [06] l [6c] . [0b] . [90] . [04] . [ca] . [01] . [00] . [01] . [90] . [05] . [07] . [00] . [00] . [00] . [1e] . [06] . [04] . [05] . [1e] . [09] . [00] . [1e] . [10] . [01] . [1e] . [0c] . [01] . [90] . [06] . [ca] . [01] . [00] . [01] . [1e] . [06] . [06] . [0a] . [90] . [06] . [c4] . [01] . [00] . [01] . [1e] . [06] . [06] . [0b] Z [5a]
Usbdev_send: . [03] . [01] . [00] . [00] . [00] . [00] . [00] . [00] . [10] . [00] . [00] . [00] . [00] . [00] . [00] . [00]
Reading | #############################                      | 57% 0.05 s 
Pickit5_read_array(sernum, addr: 0x0009, offset: 9306632, len: 1)
Pickit5_send_script(scr_len: 106, param_len: 8, payload_len: 1)
Usbdev_send: . [02] . [01] . [00] . [80] . [00] . [00] . [00] . [00] . [8a] . [00] . [00] . [00] . [01] . [00] . [00] . [00] . [08] . [00] . [00] . [00] j [6a] . [00] . [00] . [00] . [11] . [02] . [8e] . [00] . [01] . [00] . [00] . [00] . [91] . [00] . [91] . [01] . [95] . [90] . [04] . [c0] . [01] . [00] . [00] . [90] . [05] . [00] . [00] . [00] . [00] . [fc] . [04] . [05] & [26] . [00] . [ad] . [01] . [1e] . [03] . [00] . [9f] . [92] . [00] . [01] . [00] . [00] . [00] . [ae] . [fb] i [69] . [00] . [90] . [06] . [ca] . [01] . [00] . [01] . [1e] . [03] . [06] l [6c] . [0a] . [90] . [06] . [c4] . [01] . [00] . [01] . [1e] . [03] . [06] l [6c] . [0b] . [90] . [04] . [ca] . [01] . [00] . [01] . [90] . [05] . [07] . [00] . [00] . [00] . [1e] . [06] . [04] . [05] . [1e] . [09] . [00] . [1e] . [10] . [01] . [1e] . [0c] . [01] . [90] . [06] . [ca] . [01] . [00] . [01] . [1e] . [06] . [06] . [0a] . [90] . [06] . [c4] . [01] . [00] . [01] . [1e] . [06] . [06] . [0b] Z [5a]
Usbdev_send: . [03] . [01] . [00] . [00] . [00] . [00] . [00] . [00] . [10] . [00] . [00] . [00] . [00] . [00] . [00] . [00]
Reading | ################################                   | 64% 0.06 s 
Pickit5_read_array(sernum, addr: 0x000a, offset: 9306632, len: 1)
Pickit5_send_script(scr_len: 106, param_len: 8, payload_len: 1)
Usbdev_send: . [02] . [01] . [00] . [80] . [00] . [00] . [00] . [00] . [8a] . [00] . [00] . [00] . [01] . [00] . [00] . [00] . [08] . [00] . [00] . [00] j [6a] . [00] . [00] . [00] . [12] . [02] . [8e] . [00] . [01] . [00] . [00] . [00] . [91] . [00] . [91] . [01] . [95] . [90] . [04] . [c0] . [01] . [00] . [00] . [90] . [05] . [00] . [00] . [00] . [00] . [fc] . [04] . [05] & [26] . [00] . [ad] . [01] . [1e] . [03] . [00] . [9f] . [92] . [00] . [01] . [00] . [00] . [00] . [ae] . [fb] i [69] . [00] . [90] . [06] . [ca] . [01] . [00] . [01] . [1e] . [03] . [06] l [6c] . [0a] . [90] . [06] . [c4] . [01] . [00] . [01] . [1e] . [03] . [06] l [6c] . [0b] . [90] . [04] . [ca] . [01] . [00] . [01] . [90] . [05] . [07] . [00] . [00] . [00] . [1e] . [06] . [04] . [05] . [1e] . [09] . [00] . [1e] . [10] . [01] . [1e] . [0c] . [01] . [90] . [06] . [ca] . [01] . [00] . [01] . [1e] . [06] . [06] . [0a] . [90] . [06] . [c4] . [01] . [00] . [01] . [1e] . [06] . [06] . [0b] Z [5a]
Usbdev_send: . [03] . [01] . [00] . [00] . [00] . [00] . [00] . [00] . [10] . [00] . [00] . [00] . [00] . [00] . [00] . [00]
Reading | ####################################               | 71% 0.07 s 
Pickit5_read_array(sernum, addr: 0x000b, offset: 9306632, len: 1)
Pickit5_send_script(scr_len: 106, param_len: 8, payload_len: 1)
Usbdev_send: . [02] . [01] . [00] . [80] . [00] . [00] . [00] . [00] . [8a] . [00] . [00] . [00] . [01] . [00] . [00] . [00] . [08] . [00] . [00] . [00] j [6a] . [00] . [00] . [00] . [13] . [02] . [8e] . [00] . [01] . [00] . [00] . [00] . [91] . [00] . [91] . [01] . [95] . [90] . [04] . [c0] . [01] . [00] . [00] . [90] . [05] . [00] . [00] . [00] . [00] . [fc] . [04] . [05] & [26] . [00] . [ad] . [01] . [1e] . [03] . [00] . [9f] . [92] . [00] . [01] . [00] . [00] . [00] . [ae] . [fb] i [69] . [00] . [90] . [06] . [ca] . [01] . [00] . [01] . [1e] . [03] . [06] l [6c] . [0a] . [90] . [06] . [c4] . [01] . [00] . [01] . [1e] . [03] . [06] l [6c] . [0b] . [90] . [04] . [ca] . [01] . [00] . [01] . [90] . [05] . [07] . [00] . [00] . [00] . [1e] . [06] . [04] . [05] . [1e] . [09] . [00] . [1e] . [10] . [01] . [1e] . [0c] . [01] . [90] . [06] . [ca] . [01] . [00] . [01] . [1e] . [06] . [06] . [0a] . [90] . [06] . [c4] . [01] . [00] . [01] . [1e] . [06] . [06] . [0b] Z [5a]
Usbdev_send: . [03] . [01] . [00] . [00] . [00] . [00] . [00] . [00] . [10] . [00] . [00] . [00] . [00] . [00] . [00] . [00]
Reading | #######################################            | 78% 0.07 s 
Pickit5_read_array(sernum, addr: 0x000c, offset: 9306632, len: 1)
Pickit5_send_script(scr_len: 106, param_len: 8, payload_len: 1)
Usbdev_send: . [02] . [01] . [00] . [80] . [00] . [00] . [00] . [00] . [8a] . [00] . [00] . [00] . [01] . [00] . [00] . [00] . [08] . [00] . [00] . [00] j [6a] . [00] . [00] . [00] . [14] . [02] . [8e] . [00] . [01] . [00] . [00] . [00] . [91] . [00] . [91] . [01] . [95] . [90] . [04] . [c0] . [01] . [00] . [00] . [90] . [05] . [00] . [00] . [00] . [00] . [fc] . [04] . [05] & [26] . [00] . [ad] . [01] . [1e] . [03] . [00] . [9f] . [92] . [00] . [01] . [00] . [00] . [00] . [ae] . [fb] i [69] . [00] . [90] . [06] . [ca] . [01] . [00] . [01] . [1e] . [03] . [06] l [6c] . [0a] . [90] . [06] . [c4] . [01] . [00] . [01] . [1e] . [03] . [06] l [6c] . [0b] . [90] . [04] . [ca] . [01] . [00] . [01] . [90] . [05] . [07] . [00] . [00] . [00] . [1e] . [06] . [04] . [05] . [1e] . [09] . [00] . [1e] . [10] . [01] . [1e] . [0c] . [01] . [90] . [06] . [ca] . [01] . [00] . [01] . [1e] . [06] . [06] . [0a] . [90] . [06] . [c4] . [01] . [00] . [01] . [1e] . [06] . [06] . [0b] Z [5a]
Usbdev_send: . [03] . [01] . [00] . [00] . [00] . [00] . [00] . [00] . [10] . [00] . [00] . [00] . [00] . [00] . [00] . [00]
Reading | ###########################################        | 85% 0.08 s 
Pickit5_read_array(sernum, addr: 0x000d, offset: 9306632, len: 1)
Pickit5_send_script(scr_len: 106, param_len: 8, payload_len: 1)
Usbdev_send: . [02] . [01] . [00] . [80] . [00] . [00] . [00] . [00] . [8a] . [00] . [00] . [00] . [01] . [00] . [00] . [00] . [08] . [00] . [00] . [00] j [6a] . [00] . [00] . [00] . [15] . [02] . [8e] . [00] . [01] . [00] . [00] . [00] . [91] . [00] . [91] . [01] . [95] . [90] . [04] . [c0] . [01] . [00] . [00] . [90] . [05] . [00] . [00] . [00] . [00] . [fc] . [04] . [05] & [26] . [00] . [ad] . [01] . [1e] . [03] . [00] . [9f] . [92] . [00] . [01] . [00] . [00] . [00] . [ae] . [fb] i [69] . [00] . [90] . [06] . [ca] . [01] . [00] . [01] . [1e] . [03] . [06] l [6c] . [0a] . [90] . [06] . [c4] . [01] . [00] . [01] . [1e] . [03] . [06] l [6c] . [0b] . [90] . [04] . [ca] . [01] . [00] . [01] . [90] . [05] . [07] . [00] . [00] . [00] . [1e] . [06] . [04] . [05] . [1e] . [09] . [00] . [1e] . [10] . [01] . [1e] . [0c] . [01] . [90] . [06] . [ca] . [01] . [00] . [01] . [1e] . [06] . [06] . [0a] . [90] . [06] . [c4] . [01] . [00] . [01] . [1e] . [06] . [06] . [0b] Z [5a]
Usbdev_send: . [03] . [01] . [00] . [00] . [00] . [00] . [00] . [00] . [10] . [00] . [00] . [00] . [00] . [00] . [00] . [00]
Reading | ################################################## | 100% 0.08 s 
0000  00 00 00 00 00 00 00 00  00 00 00 00 00 00        |..............  |
Pickit5_program_disable()
Pickit5_send_script(scr_len: 40, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] @ [40] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] ( [28] . [00] . [00] . [00] . [9b] . [01] . [01] . [9b] . [02] . [00] . [1e] . [0f] . [01] . [02] . [9b] . [01] . [00] . [9b] . [02] . [00] . [1e] . [0f] . [01] . [02] . [9b] . [01] . [00] . [a2] . [1e] . [0e] . [01] . [a5] . [02] . [00] . [00] . [00] . [00] . [00] . [00] . [00] 2 [32] . [00] . [1e] d [64]
Pickit5_close()
Pickit5_set_vtarget(disable)
Pickit5_send_script(scr_len: 5, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] . [1d] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [05] . [00] . [00] . [00] F [46] . [00] . [00] . [00] . [00]
Pickit5_send_script(scr_len: 1, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] . [19] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [01] . [00] . [00] . [00] D [44]

Avrdude done.  Thank you.

$ ./test8 -a"-vvvv" -a"-B32" pickit5_isp attiny15
$ avrdude -vvvv -B32 -c pickit5_isp -p attiny15 -D -UALL:r:bak-pickit5_isp-attiny15.hex:I -T 'fact reset' -UALL:w:bak-pickit5_isp-attiny15.hex:I -UALL:v:bak-pickit5_isp-attiny15.hex:I
Avrdude version 8.0-20241125 (7d82e587)
Copyright see https://github.com/avrdudes/avrdude/blob/main/AUTHORS

System wide configuration file is /usr/local/etc/avrdude.conf
User configuration file /Users/hans/.avrduderc does not exist

Using port            : usb
Using programmer      : pickit5_isp
Programmer baud rate  : 125000
Setting bit clk period: 32.0 us
Pickit5_open("usb")
Usbdev_open(): found MPLAB? PICkit 4, serno: BUR204071896
Max packet size expected 2048, but found 512 due to EP 0x81's wMaxPacketSize
AVR part              : ATtiny15
Programming modes     : ISP, HVSP

Memory          Size  Pg size
-----------------------------
eeprom            64        1
flash           1024        1
fuse               1        1
lock               1        1
prodsig/sigrow    24        1
sernum            10        1
io                64        1
sram              32        1
signature          3        1
calibration        1        1

Variants       Package  F max    T range        V range       
--------------------------------------------------------------
ATtiny15       N/A      N/A      [N/A,    N/A]  [2.7 V, 5.5 V]
ATtiny15L-1PC  DIP8     1.6 MHz  [0 C,   70 C]  [2.7 V, 5.5 V]
ATtiny15L-1PI  DIP8     1.6 MHz  [-40 C, 85 C]  [2.7 V, 5.5 V]
ATtiny15L-1PU  DIP8     1.6 MHz  [-40 C, 85 C]  [2.7 V, 5.5 V]
ATtiny15L-1SC  SOIC8    1.6 MHz  [0 C,   70 C]  [2.7 V, 5.5 V]
ATtiny15L-1SI  SOIC8    1.6 MHz  [-40 C, 85 C]  [2.7 V, 5.5 V]
ATtiny15L-1SU  SOIC8    1.6 MHz  [-40 C, 85 C]  [2.7 V, 5.5 V]

Programmer type       : pickit5
Description           : MPLAB(R) PICkit 5, PICkit 4 and SNAP (PIC) in ISP Mode
Pickit5_get_fw_info()
Usbdev_send: . [e1]
Application version   : 02.01.80
Serial number         : BUR204071896
Pickit5_initialize()
Pickit5_set_ptg_mode()
Pickit5_send_script(scr_len: 5, param_len: 0, payload_len: 4)
Usbdev_send: . [02] . [01] . [00] . [80] . [00] . [00] . [00] . [00] . [1d] . [00] . [00] . [00] . [04] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [05] . [00] . [00] . [00] ^ [5e] . [00] . [00] . [00] . [00]
Usbdev_send: . [03] . [01] . [00] . [00] . [00] . [00] . [00] . [00] . [10] . [00] . [00] . [00] . [00] . [00] . [00] . [00]
Pickit5_set_vtarget(disable)
Pickit5_send_script(scr_len: 5, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] . [1d] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [05] . [00] . [00] . [00] F [46] . [00] . [00] . [00] . [00]
Pickit5_send_script(scr_len: 1, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] . [19] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [01] . [00] . [00] . [00] D [44]
Pickit5_get_vtarget()
Pickit5_send_script(scr_len: 1, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] . [19] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [01] . [00] . [00] . [00] G [47]
Target Vdd: 5.16 V, target current: 0 mA
External Voltage detected: will not supply power
Pickit5_set_sck_period()
Pickit5_send_script(scr_len: 5, param_len: 4, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] ! [21] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [04] . [00] . [00] . [00] . [05] . [00] . [00] . [00] . [1f] . [00] . [00] . [00] . [91] . [00] . [1e] 3 [33] . [00]
Pickit5_program_enable()
Pickit5_send_script(scr_len: 44, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] D [44] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] , [2c] . [00] . [00] . [00] . [ac] . [02] . [00] . [1e] 0 [30] . [90] . [05] . [00] . [00] S [53] . [ac] . [9b] . [06] . [02] . [9b] . [07] . [00] . [1e] 5 [35] . [05] . [06] . [07] l [6c] . [06] . [fd] S [53] . [00] . [00] . [00] , [2c] . [00] . [1e] 6 [36] . [a4] . [1e] 1 [31] . [90] . [01] . [c0] . [0e] . [00] . [00] . [7f] . [01]
Pickit5_read_dev_id()
Pickit5_send_script(scr_len: 66, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] Z [5a] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] B [42] . [00] . [00] . [00] . [90] . [00] . [00] . [00] . [00] 0 [30] . [9c] . [01] . [00] . [00] . [ac] . [03] . [00] . [9b] . [0c] 2 [32] . [1e] 7 [37] . [0c] l [6c] . [0d] . [9b] . [0e] . [00] . [fc] . [0d] . [0e] B [42] . [00] ` [60] . [0c] . [00] . [9b] . [0d] . [03] . [9b] . [0e] . [00] . [1e] 5 [35] . [0c] . [0d] . [0e] . [9f] . [92] . [01] . [01] . [00] . [00] . [00] ` [60] . [02] . [01] h [68] . [02] . [08] f [66] . [00] . [ff] . [00] . [ff] . [ff] | [7c] . [00] . [02] . [a4]

AVR device initialized and ready to accept instructions
Avr_signature(pickit5_isp, t15)
Reading |                                                    | 0% 0.00 s 
Avr_read_mem(pickit5_isp, t15, signature, NULL)
Pickit5_read_array(signature, addr: 0x0000, offset: 0, len: 1)
Reading | #################                                  | 33% 0.00 s 
Reading | ################################################## | 100% 0.00 s 
Device signature = 1E 90 06 (ATtiny15)

Processing -U ALL:r:bak-pickit5_isp-attiny15.hex:I
Reading multiple memories ...
 - eeprom         |                                                    | 0% 0.00 s 
Avr_read_mem(pickit5_isp, t15, eeprom, NULL)
Pickit5_read_array(eeprom, addr: 0x0000, offset: 0, len: 1)
Pickit5_send_script(scr_len: 129, param_len: 8, payload_len: 1)
Usbdev_send: . [02] . [01] . [00] . [80] . [00] . [00] . [00] . [00] . [a1] . [00] . [00] . [00] . [01] . [00] . [00] . [00] . [08] . [00] . [00] . [00] . [81] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [01] . [00] . [00] . [00] . [91] . [00] . [91] . [01] . [9b] . [02] 2 [32] . [1e] 7 [37] . [02] l [6c] . [04] . [9b] . [03] . [00] . [fc] . [04] . [03] . [81] . [00] . [90] . [0c] @ [40] . [00] . [00] . [00] . [90] . [0d] . [00] . [00] . [02] . [00] ` [60] . [0e] . [01] . [93] . [0e] . [02] . [00] . [ad] . [0e] . [fa] . [0c] . [0d] 1 [31] . [00] . [fb] O [4f] . [00] ` [60] . [0f] . [00] g [67] . [0f] . [08] f [66] . [0f] . [00] . [ff] . [ff] . [00] f [66] . [10] . [00] . [00] . [00] . [ff] . [90] . [10] . [00] . [00] . [00] M [4d] | [7c] . [10] . [0f] . [1e] 4 [34] . [10] . [ac] . [02] . [00] ` [60] . [0f] . [00] h [68] . [0f] . [08] f [66] . [0f] . [00] . [ff] . [ff] . [00] . [90] . [10] . [00] . [00] . [00] . [a0] f [66] . [10] . [00] . [00] . [00] . [ff] | [7c] . [10] . [0f] . [9b] . [11] . [03] . [9b] . [12] . [00] . [1e] 5 [35] . [10] . [11] . [12] . [9f] . [92] . [00] . [01] . [00] . [00] . [00] . [a4] . [ae]
Usb_fill_buf(): usb_bulk_read() error: Operation timed out
 - eeprom         | -------------------------------------------------- | 0% 10.00 s 
Error pickit5_upload_data() pickit5.c 1658: reading data memory failed
Error avr_read_mem() avr.c 485: unable to read byte at address 0x0000
Warning do_op() update.c 721: unable to read eeprom (ret = -2), skipping...
 - flash          |                                                    | 0% 0.00 s 
Avr_read_mem(pickit5_isp, t15, flash, NULL)
Pickit5_read_array(flash, addr: 0x0000, offset: 0, len: 1024)
Pickit5_send_script(scr_len: 156, param_len: 8, payload_len: 1024)
Usbdev_send: . [02] . [01] . [00] . [80] . [00] . [00] . [00] . [00] . [bc] . [00] . [00] . [00] . [00] . [04] . [00] . [00] . [08] . [00] . [00] . [00] . [9c] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [04] . [00] . [00] . [91] . [00] . [91] . [01] g [67] . [00] . [01] g [67] . [01] . [01] . [93] . [01] @ [40] . [00] . [9b] . [02] 2 [32] . [1e] 7 [37] . [02] l [6c] . [03] . [9b] . [02] . [00] . [fc] . [03] . [02] . [9c] . [00] . [90] . [0c] . [00] . [04] . [00] . [00] . [90] . [0d] . [00] . [00] . [02] . [00] . [ad] . [01] . [fa] . [0c] . [0d] 4 [34] . [00] . [fb] R [52] . [00] ` [60] . [0c] . [00] g [67] . [0c] . [08] f [66] . [0c] . [00] . [ff] . [ff] . [00] f [66] . [0d] . [00] . [00] . [00] . [ff] . [90] . [0d] . [00] . [00] . [00] M [4d] | [7c] . [0d] . [0c] . [1e] 4 [34] . [0d] . [ac] @ [40] . [00] ` [60] . [0c] . [00] h [68] . [0c] . [08] . [90] . [0d] . [00] . [00] . [00]   [20] f [66] . [0d] . [00] . [00] . [00] . [ff] f [66] . [0c] . [00] . [ff] . [ff] . [00] | [7c] . [0d] . [0c] . [9b] . [0f] . [03] . [9b] . [10] . [00] . [1e] 5 [35] . [0d] . [0f] . [10] . [9f] . [90] . [0e] . [00] . [00] . [00] ( [28] f [66] . [0e] . [00] . [00] . [00] . [ff] | [7c] . [0e] . [0c] . [1e] 5 [35] . [0e] . [0f] . [10] . [9f] . [92] . [00] . [01] . [00] . [00] . [00] . [a4] . [94] . [04] . [00] . [ae]
Usbdev_send: . [03] . [01] . [00] . [00] . [00] . [00] . [00] . [00] . [10] . [00] . [00] . [00] . [00] . [00] . [00] . [00]
 - flash          | ################################################## | 100% 1.20 s 
 - fuse           |                                                    | 0% 0.00 s 
Avr_read_mem(pickit5_isp, t15, fuse, NULL)
Pickit5_send_script(scr_len: 27, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] 3 [33] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [1b] . [00] . [00] . [00] . [90] . [00] 2 [32] . [00] . [00] . [00] . [1e] 7 [37] . [00] . [90] . [01] . [00] . [00] . [00] P [50] . [9b] . [02] . [03] . [9b] . [03] . [00] . [1e] 5 [35] . [01] . [02] . [03] . [9f]
 - fuse           | ################################################## | 100% 0.00 s 
 - lock           |                                                    | 0% 0.00 s 
Avr_read_mem(pickit5_isp, t15, lock, NULL)
Pickit5_read_array(lock, addr: 0x0000, offset: 0, len: 1)
Pickit5_send_script(scr_len: 41, param_len: 8, payload_len: 1)
Usbdev_send: . [02] . [01] . [00] . [80] . [00] . [00] . [00] . [00] I [49] . [00] . [00] . [00] . [01] . [00] . [00] . [00] . [08] . [00] . [00] . [00] ) [29] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [01] . [00] . [00] . [00] . [91] . [05] . [91] . [06] . [90] . [00] . [00] . [00] . [00] X [58] . [9b] . [0c] 2 [32] . [1e] 7 [37] . [0c] l [6c] . [0d] . [9b] . [0e] . [00] . [fc] . [0d] . [0e] ) [29] . [00] ` [60] . [0c] . [00] . [9b] . [0d] . [03] . [9b] . [0e] . [00] . [1e] 5 [35] . [0c] . [0d] . [0e] . [9f]
Usbdev_send: . [03] . [01] . [00] . [00] . [00] . [00] . [00] . [00] . [10] . [00] . [00] . [00] . [00] . [00] . [00] . [00]
 - lock           | ################################################## | 100% 0.00 s 
 - prodsig/sigrow |                                                    | 0% 0.00 s 
Avr_read_mem(pickit5_isp, t15, prodsig, NULL)
Pickit5_send_script(scr_len: 27, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] 3 [33] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [1b] . [00] . [00] . [00] . [90] . [00] 2 [32] . [00] . [00] . [00] . [1e] 7 [37] . [00] . [90] . [01] . [00] . [00] . [00] 0 [30] . [9b] . [02] . [03] . [9b] . [03] . [00] . [1e] 5 [35] . [01] . [02] . [03] . [9f]
Pickit5_send_script(scr_len: 27, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] 3 [33] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [1b] . [00] . [00] . [00] . [90] . [00] 2 [32] . [00] . [00] . [00] . [1e] 7 [37] . [00] . [90] . [01] . [00] . [00] . [00] 8 [38] . [9b] . [02] . [03] . [9b] . [03] . [00] . [1e] 5 [35] . [01] . [02] . [03] . [9f]
 - prodsig/sigrow | ##                                                 | 4% 0.01 s 
Pickit5_send_script(scr_len: 27, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] 3 [33] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [1b] . [00] . [00] . [00] . [90] . [00] 2 [32] . [00] . [00] . [00] . [1e] 7 [37] . [00] . [90] . [01] . [00] . [01] . [00] 0 [30] . [9b] . [02] . [03] . [9b] . [03] . [00] . [1e] 5 [35] . [01] . [02] . [03] . [9f]
 - prodsig/sigrow | ####                                               | 8% 0.01 s 
Pickit5_send_script(scr_len: 27, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] 3 [33] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [1b] . [00] . [00] . [00] . [90] . [00] 2 [32] . [00] . [00] . [00] . [1e] 7 [37] . [00] . [90] . [01] . [00] . [01] . [00] 8 [38] . [9b] . [02] . [03] . [9b] . [03] . [00] . [1e] 5 [35] . [01] . [02] . [03] . [9f]
 - prodsig/sigrow | ######                                             | 12% 0.01 s 
Pickit5_send_script(scr_len: 27, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] 3 [33] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [1b] . [00] . [00] . [00] . [90] . [00] 2 [32] . [00] . [00] . [00] . [1e] 7 [37] . [00] . [90] . [01] . [00] . [02] . [00] 0 [30] . [9b] . [02] . [03] . [9b] . [03] . [00] . [1e] 5 [35] . [01] . [02] . [03] . [9f]
 - prodsig/sigrow | ########                                           | 16% 0.02 s 
Pickit5_send_script(scr_len: 27, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] 3 [33] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [1b] . [00] . [00] . [00] . [90] . [00] 2 [32] . [00] . [00] . [00] . [1e] 7 [37] . [00] . [90] . [01] . [00] . [02] . [00] 8 [38] . [9b] . [02] . [03] . [9b] . [03] . [00] . [1e] 5 [35] . [01] . [02] . [03] . [9f]
 - prodsig/sigrow | ##########                                         | 20% 0.02 s 
Pickit5_send_script(scr_len: 27, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] 3 [33] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [1b] . [00] . [00] . [00] . [90] . [00] 2 [32] . [00] . [00] . [00] . [1e] 7 [37] . [00] . [90] . [01] . [00] . [03] . [00] 0 [30] . [9b] . [02] . [03] . [9b] . [03] . [00] . [1e] 5 [35] . [01] . [02] . [03] . [9f]
 - prodsig/sigrow | #############                                      | 25% 0.02 s 
Pickit5_send_script(scr_len: 27, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] 3 [33] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [1b] . [00] . [00] . [00] . [90] . [00] 2 [32] . [00] . [00] . [00] . [1e] 7 [37] . [00] . [90] . [01] . [00] . [03] . [00] 8 [38] . [9b] . [02] . [03] . [9b] . [03] . [00] . [1e] 5 [35] . [01] . [02] . [03] . [9f]
 - prodsig/sigrow | ###############                                    | 29% 0.02 s 
Pickit5_send_script(scr_len: 27, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] 3 [33] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [1b] . [00] . [00] . [00] . [90] . [00] 2 [32] . [00] . [00] . [00] . [1e] 7 [37] . [00] . [90] . [01] . [00] . [04] . [00] 0 [30] . [9b] . [02] . [03] . [9b] . [03] . [00] . [1e] 5 [35] . [01] . [02] . [03] . [9f]
 - prodsig/sigrow | #################                                  | 33% 0.03 s 
Pickit5_send_script(scr_len: 27, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] 3 [33] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [1b] . [00] . [00] . [00] . [90] . [00] 2 [32] . [00] . [00] . [00] . [1e] 7 [37] . [00] . [90] . [01] . [00] . [04] . [00] 8 [38] . [9b] . [02] . [03] . [9b] . [03] . [00] . [1e] 5 [35] . [01] . [02] . [03] . [9f]
 - prodsig/sigrow | ###################                                | 37% 0.03 s 
Pickit5_send_script(scr_len: 27, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] 3 [33] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [1b] . [00] . [00] . [00] . [90] . [00] 2 [32] . [00] . [00] . [00] . [1e] 7 [37] . [00] . [90] . [01] . [00] . [05] . [00] 0 [30] . [9b] . [02] . [03] . [9b] . [03] . [00] . [1e] 5 [35] . [01] . [02] . [03] . [9f]
 - prodsig/sigrow | #####################                              | 41% 0.03 s 
Pickit5_send_script(scr_len: 27, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] 3 [33] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [1b] . [00] . [00] . [00] . [90] . [00] 2 [32] . [00] . [00] . [00] . [1e] 7 [37] . [00] . [90] . [01] . [00] . [05] . [00] 8 [38] . [9b] . [02] . [03] . [9b] . [03] . [00] . [1e] 5 [35] . [01] . [02] . [03] . [9f]
 - prodsig/sigrow | #######################                            | 45% 0.04 s 
Pickit5_send_script(scr_len: 27, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] 3 [33] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [1b] . [00] . [00] . [00] . [90] . [00] 2 [32] . [00] . [00] . [00] . [1e] 7 [37] . [00] . [90] . [01] . [00] . [06] . [00] 0 [30] . [9b] . [02] . [03] . [9b] . [03] . [00] . [1e] 5 [35] . [01] . [02] . [03] . [9f]
 - prodsig/sigrow | #########################                          | 50% 0.04 s 
Pickit5_send_script(scr_len: 27, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] 3 [33] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [1b] . [00] . [00] . [00] . [90] . [00] 2 [32] . [00] . [00] . [00] . [1e] 7 [37] . [00] . [90] . [01] . [00] . [06] . [00] 8 [38] . [9b] . [02] . [03] . [9b] . [03] . [00] . [1e] 5 [35] . [01] . [02] . [03] . [9f]
 - prodsig/sigrow | ###########################                        | 54% 0.04 s 
Pickit5_send_script(scr_len: 27, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] 3 [33] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [1b] . [00] . [00] . [00] . [90] . [00] 2 [32] . [00] . [00] . [00] . [1e] 7 [37] . [00] . [90] . [01] . [00] . [07] . [00] 0 [30] . [9b] . [02] . [03] . [9b] . [03] . [00] . [1e] 5 [35] . [01] . [02] . [03] . [9f]
 - prodsig/sigrow | #############################                      | 58% 0.05 s 
Pickit5_send_script(scr_len: 27, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] 3 [33] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [1b] . [00] . [00] . [00] . [90] . [00] 2 [32] . [00] . [00] . [00] . [1e] 7 [37] . [00] . [90] . [01] . [00] . [07] . [00] 8 [38] . [9b] . [02] . [03] . [9b] . [03] . [00] . [1e] 5 [35] . [01] . [02] . [03] . [9f]
 - prodsig/sigrow | ###############################                    | 62% 0.05 s 
Pickit5_send_script(scr_len: 27, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] 3 [33] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [1b] . [00] . [00] . [00] . [90] . [00] 2 [32] . [00] . [00] . [00] . [1e] 7 [37] . [00] . [90] . [01] . [00] . [08] . [00] 0 [30] . [9b] . [02] . [03] . [9b] . [03] . [00] . [1e] 5 [35] . [01] . [02] . [03] . [9f]
 - prodsig/sigrow | #################################                  | 66% 0.05 s 
Pickit5_send_script(scr_len: 27, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] 3 [33] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [1b] . [00] . [00] . [00] . [90] . [00] 2 [32] . [00] . [00] . [00] . [1e] 7 [37] . [00] . [90] . [01] . [00] . [08] . [00] 8 [38] . [9b] . [02] . [03] . [9b] . [03] . [00] . [1e] 5 [35] . [01] . [02] . [03] . [9f]
 - prodsig/sigrow | ###################################                | 70% 0.06 s 
Pickit5_send_script(scr_len: 27, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] 3 [33] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [1b] . [00] . [00] . [00] . [90] . [00] 2 [32] . [00] . [00] . [00] . [1e] 7 [37] . [00] . [90] . [01] . [00] . [09] . [00] 0 [30] . [9b] . [02] . [03] . [9b] . [03] . [00] . [1e] 5 [35] . [01] . [02] . [03] . [9f]
 - prodsig/sigrow | ######################################             | 75% 0.06 s 
Pickit5_send_script(scr_len: 27, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] 3 [33] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [1b] . [00] . [00] . [00] . [90] . [00] 2 [32] . [00] . [00] . [00] . [1e] 7 [37] . [00] . [90] . [01] . [00] . [09] . [00] 8 [38] . [9b] . [02] . [03] . [9b] . [03] . [00] . [1e] 5 [35] . [01] . [02] . [03] . [9f]
 - prodsig/sigrow | ########################################           | 79% 0.06 s 
Pickit5_send_script(scr_len: 27, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] 3 [33] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [1b] . [00] . [00] . [00] . [90] . [00] 2 [32] . [00] . [00] . [00] . [1e] 7 [37] . [00] . [90] . [01] . [00] . [0a] . [00] 0 [30] . [9b] . [02] . [03] . [9b] . [03] . [00] . [1e] 5 [35] . [01] . [02] . [03] . [9f]
 - prodsig/sigrow | ##########################################         | 83% 0.07 s 
Pickit5_send_script(scr_len: 27, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] 3 [33] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [1b] . [00] . [00] . [00] . [90] . [00] 2 [32] . [00] . [00] . [00] . [1e] 7 [37] . [00] . [90] . [01] . [00] . [0a] . [00] 8 [38] . [9b] . [02] . [03] . [9b] . [03] . [00] . [1e] 5 [35] . [01] . [02] . [03] . [9f]
 - prodsig/sigrow | ############################################       | 87% 0.07 s 
Pickit5_send_script(scr_len: 27, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] 3 [33] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [1b] . [00] . [00] . [00] . [90] . [00] 2 [32] . [00] . [00] . [00] . [1e] 7 [37] . [00] . [90] . [01] . [00] . [0b] . [00] 0 [30] . [9b] . [02] . [03] . [9b] . [03] . [00] . [1e] 5 [35] . [01] . [02] . [03] . [9f]
 - prodsig/sigrow | ##############################################     | 91% 0.07 s 
Pickit5_send_script(scr_len: 27, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] 3 [33] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [1b] . [00] . [00] . [00] . [90] . [00] 2 [32] . [00] . [00] . [00] . [1e] 7 [37] . [00] . [90] . [01] . [00] . [0b] . [00] 8 [38] . [9b] . [02] . [03] . [9b] . [03] . [00] . [1e] 5 [35] . [01] . [02] . [03] . [9f]
 - prodsig/sigrow | ################################################## | 100% 0.08 s 
 - sernum         |                                                    | 0% 0.00 s 
Avr_read_mem(pickit5_isp, t15, sernum, NULL)
Pickit5_send_script(scr_len: 27, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] 3 [33] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [1b] . [00] . [00] . [00] . [90] . [00] 2 [32] . [00] . [00] . [00] . [1e] 7 [37] . [00] . [90] . [01] . [00] . [07] . [00] 0 [30] . [9b] . [02] . [03] . [9b] . [03] . [00] . [1e] 5 [35] . [01] . [02] . [03] . [9f]
Pickit5_send_script(scr_len: 27, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] 3 [33] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [1b] . [00] . [00] . [00] . [90] . [00] 2 [32] . [00] . [00] . [00] . [1e] 7 [37] . [00] . [90] . [01] . [00] . [07] . [00] 8 [38] . [9b] . [02] . [03] . [9b] . [03] . [00] . [1e] 5 [35] . [01] . [02] . [03] . [9f]
 - sernum         | #####                                              | 10% 0.01 s 
Pickit5_send_script(scr_len: 27, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] 3 [33] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [1b] . [00] . [00] . [00] . [90] . [00] 2 [32] . [00] . [00] . [00] . [1e] 7 [37] . [00] . [90] . [01] . [00] . [08] . [00] 0 [30] . [9b] . [02] . [03] . [9b] . [03] . [00] . [1e] 5 [35] . [01] . [02] . [03] . [9f]
 - sernum         | ##########                                         | 20% 0.01 s 
Pickit5_send_script(scr_len: 27, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] 3 [33] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [1b] . [00] . [00] . [00] . [90] . [00] 2 [32] . [00] . [00] . [00] . [1e] 7 [37] . [00] . [90] . [01] . [00] . [08] . [00] 8 [38] . [9b] . [02] . [03] . [9b] . [03] . [00] . [1e] 5 [35] . [01] . [02] . [03] . [9f]
 - sernum         | ###############                                    | 30% 0.01 s 
Pickit5_send_script(scr_len: 27, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] 3 [33] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [1b] . [00] . [00] . [00] . [90] . [00] 2 [32] . [00] . [00] . [00] . [1e] 7 [37] . [00] . [90] . [01] . [00] . [09] . [00] 0 [30] . [9b] . [02] . [03] . [9b] . [03] . [00] . [1e] 5 [35] . [01] . [02] . [03] . [9f]
 - sernum         | ####################                               | 40% 0.02 s 
Pickit5_send_script(scr_len: 27, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] 3 [33] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [1b] . [00] . [00] . [00] . [90] . [00] 2 [32] . [00] . [00] . [00] . [1e] 7 [37] . [00] . [90] . [01] . [00] . [09] . [00] 8 [38] . [9b] . [02] . [03] . [9b] . [03] . [00] . [1e] 5 [35] . [01] . [02] . [03] . [9f]
 - sernum         | #########################                          | 50% 0.02 s 
Pickit5_send_script(scr_len: 27, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] 3 [33] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [1b] . [00] . [00] . [00] . [90] . [00] 2 [32] . [00] . [00] . [00] . [1e] 7 [37] . [00] . [90] . [01] . [00] . [0a] . [00] 0 [30] . [9b] . [02] . [03] . [9b] . [03] . [00] . [1e] 5 [35] . [01] . [02] . [03] . [9f]
 - sernum         | ##############################                     | 60% 0.02 s 
Pickit5_send_script(scr_len: 27, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] 3 [33] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [1b] . [00] . [00] . [00] . [90] . [00] 2 [32] . [00] . [00] . [00] . [1e] 7 [37] . [00] . [90] . [01] . [00] . [0a] . [00] 8 [38] . [9b] . [02] . [03] . [9b] . [03] . [00] . [1e] 5 [35] . [01] . [02] . [03] . [9f]
 - sernum         | ###################################                | 70% 0.03 s 
Pickit5_send_script(scr_len: 27, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] 3 [33] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [1b] . [00] . [00] . [00] . [90] . [00] 2 [32] . [00] . [00] . [00] . [1e] 7 [37] . [00] . [90] . [01] . [00] . [0b] . [00] 0 [30] . [9b] . [02] . [03] . [9b] . [03] . [00] . [1e] 5 [35] . [01] . [02] . [03] . [9f]
 - sernum         | ########################################           | 80% 0.03 s 
Pickit5_send_script(scr_len: 27, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] 3 [33] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [1b] . [00] . [00] . [00] . [90] . [00] 2 [32] . [00] . [00] . [00] . [1e] 7 [37] . [00] . [90] . [01] . [00] . [0b] . [00] 8 [38] . [9b] . [02] . [03] . [9b] . [03] . [00] . [1e] 5 [35] . [01] . [02] . [03] . [9f]
 - sernum         | ################################################## | 100% 0.03 s 
 - signature      |                                                    | 0% 0.00 s 
Avr_read_mem(pickit5_isp, t15, signature, NULL)
Pickit5_read_array(signature, addr: 0x0000, offset: 0, len: 1)
 - signature      | #################                                  | 33% 0.00 s 
 - signature      | ################################################## | 100% 0.00 s 
 - calibration    |                                                    | 0% 0.00 s 
Avr_read_mem(pickit5_isp, t15, calibration, NULL)
Pickit5_read_array(calibration, addr: 0x0000, offset: 0, len: 1)
Pickit5_send_script(scr_len: 37, param_len: 8, payload_len: 1)
Usbdev_send: . [02] . [01] . [00] . [80] . [00] . [00] . [00] . [00] E [45] . [00] . [00] . [00] . [01] . [00] . [00] . [00] . [08] . [00] . [00] . [00] % [25] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [01] . [00] . [00] . [00] . [90] . [00] . [00] . [00] . [00] 8 [38] . [9b] . [0c] 2 [32] . [1e] 7 [37] . [0c] l [6c] . [0d] . [9b] . [0e] . [00] . [fc] . [0d] . [0e] % [25] . [00] ` [60] . [0c] . [00] . [9b] . [0d] . [03] . [9b] . [0e] . [00] . [1e] 5 [35] . [0c] . [0d] . [0e] . [9f]
Usbdev_send: . [03] . [01] . [00] . [00] . [00] . [00] . [00] . [00] . [10] . [00] . [00] . [00] . [00] . [00] . [00] . [00]
 - calibration    | ################################################## | 100% 0.00 s 
Writing 1064 bytes to output file bak-pickit5_isp-attiny15.hex
Pickit5_program_disable()
Pickit5_send_script(scr_len: 2, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] . [1a] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [02] . [00] . [00] . [00] . [1e] 1 [31]
Pickit5_close()
Pickit5_set_vtarget(disable)
Pickit5_send_script(scr_len: 5, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] . [1d] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [05] . [00] . [00] . [00] F [46] . [00] . [00] . [00] . [00]
Pickit5_send_script(scr_len: 1, param_len: 0, payload_len: 0)
Usbdev_send: . [00] . [01] . [00] . [00] . [00] . [00] . [00] . [00] . [19] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [01] . [00] . [00] . [00] D [44]

Avrdude done.  Thank you.
-------------------------------
Re-running to create error logs
^C

@MX682X
Copy link
Contributor Author

MX682X commented Nov 26, 2024

I've reworked the prodsig retrieval - now it retrieves all bytes at once when the first address is requested, otherwise it serves a buffer. This should fix sernum and tempsense.

And with the Attiny15 - I have no idea why it doesn't work It seems however that test8 is timeouting on reading the eeprom, but the rest seems to work?. The script is pretty much the same compared to 328p, only the commands for programming are different.

I wonder however, if the problem persists with other tinies aswell, like the attiny85/84. I would appreciate if somone could test them aswell

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.

4 participants