I've seen noobs like me whining about this problem for years.
I couldn't tell you what I did (or if I did anything) to cause this but intermittently it has become harder and harder to program my MKR ZERO.
The compiler/uploader doesn't tell me anything specific but this only happens on some projects sometimes.
I've tried all the usual usb troubleshooting steps in windows 10 as far as disconnecting, removing from dev manager, restarting.
Windows just seems to love to eat up comm ports, cache VID/PID driver info and generally cause me to not know where to even troubleshoot next.
The whole "bootloader" is still a mystery to me and I have NO idea what direction to go next.
This is an example of what I get when I try to upload (intermittently). It looks like it's completed but the program doesn't load. I've tried hitting the reset button (like it says) if it's hung up.
Any suggestions? I feel like I'm going backwards.
Set binary mode
readWord(addr=0)=0x20007ffc
readWord(addr=0xe000ed00)=0x410cc601
readWord(addr=0x41002018)=0x10010305
version()=v2.0 [Arduino:XYZ] Mar 14 2019 14:12:02
chipId=0x10010005
Connected at 921600 baud
readWord(addr=0)=0x20007ffc
readWord(addr=0xe000ed00)=0x410cc601
readWord(addr=0x41002018)=0x10010305
Atmel SMART device 0x10010005 found
write(addr=0x20004000,size=0x34)
writeWord(addr=0x20004030,value=0x10)
writeWord(addr=0x20004020,value=0x20008000)
Device : ATSAMD21G18A
readWord(addr=0)=0x20007ffc
readWord(addr=0xe000ed00)=0x410cc601
readWord(addr=0x41002018)=0x10010305
Chip ID : 10010005
version()=v2.0 [Arduino:XYZ] Mar 14 2019 14:12:02
Version : v2.0 [Arduino:XYZ] Mar 14 2019 14:12:02
Address : 8192
Pages : 3968
Page Size : 64 bytes
Total Size : 248KB
Planes : 1
Lock Regions : 16
Locked : readWord(addr=0x41004020)=0xffff
readWord(addr=0x41004020)=0xffff
readWord(addr=0x41004020)=0xffff
readWord(addr=0x41004020)=0xffff
readWord(addr=0x41004020)=0xffff
readWord(addr=0x41004020)=0xffff
readWord(addr=0x41004020)=0xffff
readWord(addr=0x41004020)=0xffff
readWord(addr=0x41004020)=0xffff
readWord(addr=0x41004020)=0xffff
readWord(addr=0x41004020)=0xffff
readWord(addr=0x41004020)=0xffff
readWord(addr=0x41004020)=0xffff
readWord(addr=0x41004020)=0xffff
readWord(addr=0x41004020)=0xffff
readWord(addr=0x41004020)=0xffff
none
readWord(addr=0x41004018)=0
Security : false
Boot Flash : true
readWord(addr=0x40000834)=0x7000a
BOD : true
readWord(addr=0x40000834)=0x7000a
BOR : true
Arduino : FAST_CHIP_ERASE
Arduino : FAST_MULTI_PAGE_WRITE
Arduino : CAN_CHECKSUM_MEMORY_BUFFER
Erase flash
chipErase(addr=0x2000)
done in 0.860 seconds
Write 70644 bytes to flash (1104 pages)
write(addr=0x20005000,size=0x1000)
writeBuffer(scr_addr=0x20005000, dst_addr=0x2000, size=0x1000)
[= ] 5% (64/1104 pages)write(addr=0x20005000,size=0x1000)
writeBuffer(scr_addr=0x20005000, dst_addr=0x3000, size=0x1000)
[=== ] 11% (128/1104 pages)write(addr=0x20005000,size=0x1000)
writeBuffer(scr_addr=0x20005000, dst_addr=0x4000, size=0x1000)
[===== ] 17% (192/1104 pages)write(addr=0x20005000,size=0x1000)
writeBuffer(scr_addr=0x20005000, dst_addr=0x5000, size=0x1000)
[====== ] 23% (256/1104 pages)write(addr=0x20005000,size=0x1000)
writeBuffer(scr_addr=0x20005000, dst_addr=0x6000, size=0x1000)
[======== ] 28% (320/1104 pages)write(addr=0x20005000,size=0x1000)
writeBuffer(scr_addr=0x20005000, dst_addr=0x7000, size=0x1000)
[========== ] 34% (384/1104 pages)write(addr=0x20005000,size=0x1000)
writeBuffer(scr_addr=0x20005000, dst_addr=0x8000, size=0x1000)
[============ ] 40% (448/1104 pages)write(addr=0x20005000,size=0x1000)
writeBuffer(scr_addr=0x20005000, dst_addr=0x9000, size=0x1000)
[============= ] 46% (512/1104 pages)write(addr=0x20005000,size=0x1000)
writeBuffer(scr_addr=0x20005000, dst_addr=0xa000, size=0x1000)
[=============== ] 52% (576/1104 pages)write(addr=0x20005000,size=0x1000)
writeBuffer(scr_addr=0x20005000, dst_addr=0xb000, size=0x1000)
[================= ] 57% (640/1104 pages)write(addr=0x20005000,size=0x1000)
writeBuffer(scr_addr=0x20005000, dst_addr=0xc000, size=0x1000)
[=================== ] 63% (704/1104 pages)write(addr=0x20005000,size=0x1000)
writeBuffer(scr_addr=0x20005000, dst_addr=0xd000, size=0x1000)
[==================== ] 69% (768/1104 pages)write(addr=0x20005000,size=0x1000)
writeBuffer(scr_addr=0x20005000, dst_addr=0xe000, size=0x1000)
[====================== ] 75% (832/1104 pages)write(addr=0x20005000,size=0x1000)
writeBuffer(scr_addr=0x20005000, dst_addr=0xf000, size=0x1000)
[======================== ] 81% (896/1104 pages)write(addr=0x20005000,size=0x1000)
writeBuffer(scr_addr=0x20005000, dst_addr=0x10000, size=0x1000)
[========================== ] 86% (960/1104 pages)write(addr=0x20005000,size=0x1000)
writeBuffer(scr_addr=0x20005000, dst_addr=0x11000, size=0x1000)
[=========================== ] 92% (1024/1104 pages)write(addr=0x20005000,size=0x1000)
writeBuffer(scr_addr=0x20005000, dst_addr=0x12000, size=0x1000)
[============================= ] 98% (1088/1104 pages)write(addr=0x20005000,size=0x400)
writeBuffer(scr_addr=0x20005000, dst_addr=0x13000, size=0x400)
[==============================] 100% (1104/1104 pages)
done in 0.558 seconds
Verify 70644 bytes of flash with checksum.
checksumBuffer(start_addr=0x2000, size=0x1000) = ecdd
checksumBuffer(start_addr=0x3000, size=0x1000) = 72f3
checksumBuffer(start_addr=0x4000, size=0x1000) = d188
checksumBuffer(start_addr=0x5000, size=0x1000) = 20a0
checksumBuffer(start_addr=0x6000, size=0x1000) = ee43
checksumBuffer(start_addr=0x7000, size=0x1000) = c5b
checksumBuffer(start_addr=0x8000, size=0x1000) = a751
checksumBuffer(start_addr=0x9000, size=0x1000) = 2f9c
checksumBuffer(start_addr=0xa000, size=0x1000) = 1730
checksumBuffer(start_addr=0xb000, size=0x1000) = 6929
checksumBuffer(start_addr=0xc000, size=0x1000) = bf4f
checksumBuffer(start_addr=0xd000, size=0x1000) = 8603
checksumBuffer(start_addr=0xe000, size=0x1000) = 55f7
checksumBuffer(start_addr=0xf000, size=0x1000) = 342c
checksumBuffer(start_addr=0x10000, size=0x1000) = 8178
checksumBuffer(start_addr=0x11000, size=0x1000) = 8e19
checksumBuffer(start_addr=0x12000, size=0x1000) = 9079
checksumBuffer(start_addr=0x13000, size=0x3f4) = 81b4
Verify successful
done in 0.056 seconds
CPU reset.
readWord(addr=0)=0x20007ffc
readWord(addr=0xe000ed00)=0x410cc601
readWord(addr=0x41002018)=0x10010305
writeWord(addr=0xe000ed0c,value=0x5fa0004)