Programming issue with new Pro Micro

I just got a 3.3V pro micro that I was going to connect to a Si7021 to log humidity. I being silly, soldered on the power and i2c headers and connected the Si7021 to the pro micro, then hooked it up to my laptop. I then tried to program the [example code. I followed [the readme to add support to my arduino IDE (1.8.5).

When I hit the “program” button on the IDE it gave me a lot of

 ***failed;  
 ...
  ***failed;  
 avrdude: Error: butterfly programmer uses avr_write_page() but does not
provide a cmd() method.
 *** page 71 (addresses 0x1ec8 - 0x1f47) failed to write
  ***failed;  
  ...
   ***failed;

with:

avrdude: butterfly_recv(): programmer is not responding
avrdude: butterfly_recv(): programmer is not responding
avrdude: butterfly_recv(): programmer is not responding
avrdude: butterfly_recv(): programmer is not responding
avrdude: verification error, first mismatch at byte 0x01b8
         0x24 != 0x11
avrdude: verification error; content mismatch
avrdude: verification error; content mismatch

at the end.

I did realize that I had [DSView open in another work-space while training all this.

I now can’t get the programmer to program the pro micro with any of multiple errors including the one above and

avrdude: Expected signature for ATmega32U4 is 1E 95 87
         Double check chip, or use -F to override this check.
avrdude: error: programmer did not respond to command: leave prog mode
avrdude: error: programmer did not respond to command: exit bootloader
avrdude: error: programmer did not respond to command: exit bootloader

or

Couldn't find a Board on the selected port. Check that you have the correct port selected. If it is correct, try pressing the board's reset button after initiating the upload.

or

processing.app.debug.RunnerException
	at cc.arduino.packages.uploaders.SerialUploader.uploadUsingPreferences(SerialUploader.java:160)
	at cc.arduino.UploaderUtils.upload(UploaderUtils.java:78)
	at processing.app.SketchController.upload(SketchController.java:713)
	at processing.app.SketchController.exportApplet(SketchController.java:686)
	at processing.app.Editor$DefaultExportHandler.run(Editor.java:2168)
	at java.lang.Thread.run(Thread.java:748)
Caused by: processing.app.SerialException: Error touching serial port '/dev/ttyACM0'.
	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 - /dev/ttyACM0; Method name - openPort(); Exception type - Port busy.
	at jssc.SerialPort.openPort(SerialPort.java:164)
	at processing.app.Serial.touchForCDCReset(Serial.java:101)
	... 6 more

depending on when in relation to resetting the board (with the reset “button”)](http://www.dreamsourcelab.com/download.html)](GitHub - sparkfun/Arduino_Boards: Board definitions for SparkFun-manufactured AVR, ARM, and ESP-based Arduino boards.)](https://github.com/sparkfun/Si7021_Breakout/tree/master/Libraries/Arduino/Si7021/examples/SparkFun_Si7021_Breakout_Example)

Thinking along… the error seems to be caused by not able to open /dev/ttyACM0. (busy) Then it can not communicate with your board. unplug the USB cable, reboot the system. Then plug in the USBcable, make sure the right access permissions are on /dev/ttyACM0 : sudo chmod 666 /dev/ttyACM0. Next in tools, set the board & set port correct and try to get board info.

Board info shows this:

BN: Unknown board
VID: 1B4F
PID: 9204
SN: Upload any sketch to obtain it

There is another type of error that has shown up:

Sketch uses 8008 bytes (27%) of program storage space. Maximum is 28672 bytes.
Global variables use 450 bytes (17%) of dynamic memory, leaving 2110 bytes for local variables. Maximum is 2560 bytes.
Found programmer: Id = "CATERIN"; type = E
    Software Version = 
.C; Hardware Version = A.T
avrdude: error: buffered memory access not supported. Maybe it isn't
a butterfly/AVR109 but a AVR910 device?
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.

avrdude: error: programmer did not respond to command: leave prog mode
avrdude: error: programmer did not respond to command: exit bootloader
avrdude: error: programmer did not respond to command: exit bootloader

Have you selected the Pro Micro board in board selection. That is not there by default you have you installed the board in the IDE . https://learn.sparkfun.com/tutorials/pr … okup-guide, installing Arduino Add-on. some others mention that it might help to press reset and try it again… others say to try a different USB port and/or different cable.

“Have you selected the Pro Micro board in board selection” yes. I ordered more pro micros gotten them in and had the same results and have tried different usb cables none have worked.

I did the install as you mentioned, now i have two sets of boards.

Now I have yet another useless error code. I think I’m going to have to return these.

Sketch uses 8008 bytes (27%) of program storage space. Maximum is 28672 bytes.
Global variables use 450 bytes (17%) of dynamic memory, leaving 2110 bytes for local variables. Maximum is 2560 bytes.

    Device code: 0x0d
    Device code: 0x43
    Device code: 0x41
    Device code: 0x54
    Device code: 0x45
    Device code: 0x52
    Device code: 0x49
    Device code: 0x4e
    Device code: 0xfb
    Device code: 0x0d
    Device code: 0x3f
    Device code: 0xff
    Device code: 0xff
    Device code: 0x0d
avrdude: butterfly_recv(): programmer is not responding
    Device code: 0x0d

If i put serial monitor on the board i get

CATERIN⸮
?⸮⸮

after reading this page https://learn.sparkfun.com/tutorials/pr … -reinstall I am quite certan the boot loader mods sparkfun made don’t work

I got board info to show up as

BN: Unknown board
VID: 1B4F
PID: 9203
SN: Upload any sketch to obtain it

for about half a second if I reset the board by shorting the reset pin to ground twice and within half a second do “board info”

Anybody experiencing this issue, I fixed it by doing https://learn.sparkfun.com/tutorials/pr … #ts-revive on a windows computer, I could not get it to work on Linux.

Found the solution for linux: https://www.defproc.co.uk/blog/2016/Spa … vice-busy/

I have a similar problem with a Pro Micro 5V/16MHz (tried 2 different boards and a few different USB cables).

The IDE sees the device on COM’nn’ when I first start up, but then during the download it apparently attempts to toggle DTR (or whatever causes the board to reset) and then tries to download to COM’nn+1’. But every time it comes back saying that the port COM’nn+1’ doesn’t exist.

I understand that in bootloader mode a different COM port pops up and apparently there is only a 750msec window of time for the IDE to start the transfer (using the bootloader). It appears that the IDE just do that quick enough.

Anyway, the only way I’ve been able to get around this is to use the avrdude command that the IDE tries to execute to do the download, but from a CMD window…

I set the COM port to the ‘nn+1’ setting, then I double-tap the Rst pin to Gnd so that the bootloader stays active for 8 seconds. As soon as I double tap, I issue the avrdude command (in the CMD window) and things work fine, the application downloads and runs correctly. Unfortunately, though I have to do that every time now, so there must be a better way!

Any one seen this?

Ed

Yes, I am having a similar problem with a Pro Micro 5V/16MHz, in Win 10 Arduino 1.8.7 (and same thing with VS2017/Visual Micro). I can see the port the Micro is using via Device Manager, and I see it change from one number to another when the upload completes. In my last trial, the Pro Micro started out on Port 13. When the upload starts, the Micro resets and comes back as Com9, then at the end of the upload it resets again and comes back as Com13 again. The serial monitor for Com13 shows the port opens, but there is no communication with the Micro (print statements don’t show up).

The weird thing about this is, I actually had this board working just yesterday with my VS2017/VM setup, using the ‘Leonardo’ board selection. Then I had to go and screw it up by downloading and installing the Sparkfun custom board info for the Pro Micro :-(. When I went through the custom board installation process, I found that the url to the latest board info didn’t work, but an older one published by Sparkfun here:

https://learn.sparkfun.com/tutorials/pr … ng-windows

now I can’t get the board to program either by selecting the newly installed Pro Micro board or by selecting the already-existing (and working just a day or so ago) ‘Leonardo’ board.

Grrrrr

Frank