I have a custom board based on the Sparkfun Pro Micro which is used in an underwater. Because the board spends most of it's time in the ocean it's potted and so I have only access to the Reset and USB pins through an underwater connector. The board has been working fine but on the last deployment I got it back and cannot upload any sketches, although during the deployment the board worked perfectly. I have read through a bunch of forum posts which detail similar issues but cannot seem to find an adequate solution.
The basic problem is this:
- The board appears as SparkFun Pro Micro Bootloader in device manager
- After around 15 seconds the device disappears (Sometimes it is registered as Unknown Device and sometimes not)
- I have tried the reset trick i.e. uploading a small sketch and hitting reset on upload but that has not worked.
The error message I get is as follows
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:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.10.0_x86__mdqgnx93n4wtt\hardware\tools\avr/etc/avrdude.conf"
Using Port : COM11
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: .
Found programmer: Id = "CATERIN"; type = S
Software Version = 1.0; No Hardware Version given.
Programmer supports auto addr increment.
Programmer supports buffered memory access with buffersize=128 bytes.
Programmer supports the following devices:
Device code: 0x44
avrdude: devcode selected: 0x44
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% -0.00s
avrdude: Device signature = 0x1e9587 (probably m32u4)
avrdude: reading input file "C:\Users\jamie\AppData\Local\Temp\arduino_build_459745/Blink.ino.hex"
avrdude: writing flash (4126 bytes):
Writing | avrdude: ser_send(): write error: sorry no info avail
avrdude: ser_recv(): read error: The I/O operation has been aborted because of either a thread exit or an application request.
avrdude: butterfly_recv(): programmer is not responding
avrdude: error: programmer did not respond to command: write block
# ***failed;
***failed;
A few notes:
- The sparkfun pro micro does not have a USB crystal
- The board is connected to a battery so constantly powered. This cannot be disconnected.
- Only USB +5V/GND/D+/D- and RESET pins are available.
I could burn the bootloader again but this will require digging the board out of potting compound which is risky and a lot of work. Plus I would like to understand where this problem might have come from.
So does anyone have any suggestions and/or could provide possible reasons for the error messages I'm receiving?
Thanks in advance for any help.