M0 upload failing, programmer is not responding

Board: M0
IDE: 1.8.3 with all latest the libraries
OS: Win 10 Pro, 32 bit, US

I am having some serious issues with an Arduino M0 when it comes to uploading. I have tried to uninstall all Arduino and reinstall with all the latest the libraries but nothing seems to help. I can upload to the M0 board on another PC with W10 Home, 64 bit, US.

I can see the board on COM10 in the Device Manager. But still the programmer is not responding. I have also tried to remove the driver and install it again. During the reinstallation of the driver the board is often only recognized as a USB device without any Arduino identification. I then manually navigate to the correct driver and installs this one.

Below is the output from the IDE.

Build options changed, rebuilding all
Sketch uses 9552 bytes (3%) of program storage space. Maximum is 262144 bytes.
Forcing reset using 1200bps open/close on port COM10
PORTS {COM1, COM2, COM10, } / {COM1, COM2, COM10, } => {}
PORTS {COM1, COM2, COM10, } / {COM1, COM2, COM10, } => {}
PORTS {COM1, COM2, COM10, } / {COM1, COM2, COM10, } => {}
PORTS {COM1, COM2, COM10, } / {COM1, COM2, COM10, } => {}
PORTS {COM1, COM2, COM10, } / {COM1, COM2, COM10, } => {}
PORTS {COM1, COM2, COM10, } / {COM1, COM2, COM10, } => {}
PORTS {COM1, COM2, COM10, } / {COM1, COM2, COM10, } => {}
PORTS {COM1, COM2, COM10, } / {COM1, COM2, COM10, } => {}
PORTS {COM1, COM2, COM10, } / {COM1, COM2, COM10, } => {}
PORTS {COM1, COM2, COM10, } / {COM1, COM2, COM10, } => {}
PORTS {COM1, COM2, COM10, } / {COM1, COM2, COM10, } => {}
PORTS {COM1, COM2, COM10, } / {COM1, COM2, COM10, } => {}
PORTS {COM1, COM2, COM10, } / {COM1, COM2, COM10, } => {}
PORTS {COM1, COM2, COM10, } / {COM1, COM2, COM10, } => {}
PORTS {COM1, COM2, COM10, } / {COM1, COM2, COM10, } => {}
PORTS {COM1, COM2, COM10, } / {COM1, COM2, COM10, } => {}
PORTS {COM1, COM2, COM10, } / {COM1, COM2, COM10, } => {}
PORTS {COM1, COM2, COM10, } / {COM1, COM2, COM10, } => {}
PORTS {COM1, COM2, COM10, } / {COM1, COM2, COM10, } => {}
PORTS {COM1, COM2, COM10, } / {COM1, COM2, COM10, } => {}
Uploading using selected port: COM10
C:\Users\Mik\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9/bin/avrdude -CC:\Users\Mik\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9/etc/avrdude.conf -v -v -patmega2560 -cstk500v2 -PCOM10 -b57600 -Uflash:w:C:\Users\Mik\AppData\Local\Temp\arduino_build_395672/Blink.ino.hex:i 

avrdude: Version 6.3, compiled on Jan 17 2017 at 12:00:53
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "C:\Users\Mik\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9/etc/avrdude.conf"

         Using Port                    : COM10
         Using Programmer              : stk500v2
         Overriding Baud Rate          : 57600
avrdude: ser_recv(): programmer is not responding
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: ser_recv(): programmer is not responding
avrdude: stk500v2_ReceiveMessage(): timeout
Problem uploading to board.  See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

I have searched high and low and came across this link Arduino Sketch upload issue - avrdude: stk500_recv(): programmer is not responding - Stack Overflow which made me try to press the reset button on the M0 board while the IDE tries to find the COM port. Then the below happens.

Sketch uses 9552 bytes (3%) of program storage space. Maximum is 262144 bytes.
Forcing reset using 1200bps open/close on port COM10
PORTS {COM1, COM2, COM10, } / {COM1, COM2, COM10, } => {}
PORTS {COM1, COM2, COM10, } / {COM1, COM2, COM10, } => {}
PORTS {COM1, COM2, COM10, } / {COM1, COM2, COM10, } => {}
PORTS {COM1, COM2, COM10, } / {COM1, COM2, } => {}
PORTS {COM1, COM2, } / {COM1, COM2, } => {}
PORTS {COM1, COM2, } / {COM1, COM2, } => {}
PORTS {COM1, COM2, } / {COM1, COM2, } => {}
PORTS {COM1, COM2, } / {COM1, COM2, } => {}
PORTS {COM1, COM2, } / {COM1, COM2, COM7, } => {COM7, }
Found upload port: COM7
C:\Users\Mik\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9/bin/avrdude -CC:\Users\Mik\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9/etc/avrdude.conf -v -v -patmega2560 -cstk500v2 -PCOM7 -b57600 -Uflash:w:C:\Users\Mik\AppData\Local\Temp\arduino_build_395672/Blink.ino.hex:i 

avrdude: Version 6.3, compiled on Jan 17 2017 at 12:00:53
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "C:\Users\Mik\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9/etc/avrdude.conf"

         Using Port                    : COM7
         Using Programmer              : stk500v2
         Overriding Baud Rate          : 57600
         AVR Part                      : ATmega2560
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PA0
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

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

         Programmer Type : STK500V2
         Description     : Atmel STK500 Version 2.x firmware
         Programmer Model: AVRISP
         Hardware Version: 3
         Firmware Version Master : 4.05
         Vtarget         : 0.0 V
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

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

avrdude: Device signature = 0x1e9801 (probably m2560)
.
. (omitted to save characters)
.
avrdude: writing flash (26192 bytes):

Writing | ################################################## | 100% 0.00s

avrdude: 26192 bytes of flash written
.
. (omitted to save characters)
.
avrdude: reading on-chip flash data:

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

avrdude: verifying ...
avrdude: 26192 bytes of flash verified

avrdude done.  Thank you.

As it can been seen the IDE suddenly sees the board on COM7. If I then changes the COM port to COM7 and tries to upload again, but without resetting, the problem is back and the first dump is the case again. Another reset does not reveal a third COM port.

If I show hidden devices in the Device Manager I can also see

  • Arduino M0 (Bootloader Mode) Native Port (COM7) - hidden
  • Arduino M0 PRO Native Port (COM9) - hidden
  • Arduino M0 Native Port (COM10) - visible
    I have no idea where the "Arduino M0 PRO Native Port (COM9)" comes from.

Any ideas?

Mik

Click reset 2 times when you start your uploading.