I have a lot of Arduino Pro Micros that I can't program through the Arduino IDE.
I'm on Windows.
I'm using the SparkFun Pro Micro board information downloaded from SparkFun's website.
I've tried manually reassigning the Pro Micro's COM port in the device manager. It seems to be no different whether I'm at COM1 or COM255.
If I use an Arduino ISP or USBASP to burn the bootloader onto the problematic Pro Micro, it responds for usually one or two more USB programmings but that's about it.
When they get into this problematic state, they are still running their code (I can see the Blink sketch flashing my LED for instance), they just can't be reprogrammed. I can even still open their Serial communications.
Verbose output during the uploading process on first attempt yields the following:
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, } => {}
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, } => {}
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, } => {}
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, } => {}
Uploading using selected port: COM2
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega32u4 -cavr109 -PCOM2 -b57600 -D -Uflash:w:C:\Users\Thompson\AppData\Local\Temp\arduino_build_668056/BareMinimum.ino.hex:i
avrdude: Version 6.3-20171130
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch
System wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"
Using Port : COM2
Using Programmer : avr109
Overriding Baud Rate : 57600
AVR Part : ATmega32U4
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 20 4 0 no 1024 4 0 9000 9000 0x00 0x00
flash 65 6 128 0 yes 32768 128 256 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 : butterfly
Description : Atmel AppNote AVR109 Boot Loader
Connecting to programmer: .avrdude: butterfly_recv(): programmer is not responding
avrdude: butterfly_recv(): programmer is not responding
That last line is where it freezes for an indefinite period. I close and reopen the Arduino IDE and try to reupload, and this is my result:
processing.app.debug.RunnerException
at cc.arduino.packages.uploaders.SerialUploader.uploadUsingPreferences(SerialUploader.java:160)
at cc.arduino.UploaderUtils.upload(UploaderUtils.java:82)
at processing.app.SketchController.upload(SketchController.java:736)
at processing.app.SketchController.exportApplet(SketchController.java:703)
at processing.app.Editor$DefaultExportHandler.run(Editor.java:2039)
at java.lang.Thread.run(Thread.java:748)
Caused by: processing.app.SerialException: Error touching serial port 'COM2'.
at processing.app.Serial.touchForCDCReset(Serial.java:107)
at cc.arduino.packages.uploaders.SerialUploader.uploadUsingPreferences(SerialUploader.java:144)
... 5 more
Caused by: jssc.SerialPortException: Port name - COM2; Method name - openPort(); Exception type - Port not found.
at jssc.SerialPort.openPort(SerialPort.java:167)
at processing.app.Serial.touchForCDCReset(Serial.java:101)
... 6 more
This exact same message (with a different COM number of course) plays out on any Windows machine I try this with.
In the above example I was trying to upload the Bare Minimum example.
Are all of my Pro Micros dead? Is there something wrong with the IDE? Is there an alternative IDE I can get a second opinion from?
EDIT: An update; I've gotten Atom installed with PlatformIO and I was able to write a few sketches to an Arduino Pro Mini. I attempted the same sketches on the Arduino Pro Micro and got the same error and freeze: programmer is not responding