Pro Micro clone (ATmega32U4) appears as Leonardo bootloader for 8 seconds, upload fails

Hi,

I'm trying to recover a Chinese Pro Micro clone (ATmega32U4, 5V/16MHz) that became unusable after I flashed SimHub firmware to it.

What happened

  • The board originally worked fine.
  • I uploaded sketches from Arduino IDE without issues.
  • Later I flashed SimHub firmware.
  • After that I tried to upload my own sketch again from Arduino IDE.
  • Since then I have been unable to upload anything.

Current behavior

The board is normally not detected by Windows.

If I short RST to GND, Windows plays the USB connection sound and the board enters what appears to be the Caterina bootloader for about 8 seconds.

During those 8 seconds, Device Manager shows:

Ports (COM & LPT)
 └─ Arduino Leonardo bootloader (COM4)

After approximately 8 seconds:

  • the entire Ports (COM & LPT) category (including Arduino Leonardo bootloader (COM4)) disappears from Device Manager
  • Windows plays the USB disconnect sound

This happens every time.

What I have already tried

I have tried every timing variation I can think of regarding Upload and Reset in A-IDE:

  1. Click Upload and press Reset at roughly the same time.
  2. Press Reset first, then click Upload.
  3. Click Upload first, then press Reset.
  4. Hold Reset during upload and release later.
  5. Release Reset when "Uploading..." appears.
  6. Release Reset before "Uploading..." appears.
  7. Double-reset.
  8. Repeated resets during upload.
  9. Every possible timing and variation of the above.

The bootloader always appears for a few seconds, then disappears before the upload succeeds.

Typical errors

Sometimes:

Error: unable to write: sorry no info avail
Error: butterfly_send(pgm, cmd, sizeof(cmd)) failed

Other times:

Error: cannot open port \\.\COM4: The system cannot find the file specified.

Error: unable to open port COM4 for programmer avr109
Failed uploading: uploading error: exit status 1

Additional troubleshooting

I also tried restoring the bootloader using another known-good Pro Micro clone as ISP.

I uploaded ArduinoISP to the good board and connected:

VCC -> VCC
GND -> GND
14  -> 14
15  -> 15
16  -> 16
10  -> RST

(using the pin numbers printed on both boards)

Then:

Board: Arduino Leonardo
Programmer: Arduino as ISP
Tools -> Burn Bootloader

Result:

Error: programmer is not responding
Warning: attempt 1 of 10: not in sync: resp=0x00

The programmer board can still upload and run sketches normally, so Arduino IDE, drivers and USB communication appear to be working.

Question

Has anyone seen a Pro Micro clone get into this state after flashing SimHub firmware?

The fact that:

  • the bootloader appears correctly as Arduino Leonardo bootloader (COM4)
  • stays alive for about 8 seconds
  • then completely disconnects from Windows

makes me wonder whether:

  1. the main firmware is crashing USB immediately after bootloader timeout,
  2. the bootloader itself is corrupted,
  3. the ATmega32U4 flash contents are damaged,
  4. or my ISP recovery attempt is missing something obvious.

Any suggestions would be appreciated.

Select Tools > Programmer > Arduino as ISP (ATmega32U4) and then try the "Burn Bootloader" operation once more. Hopefully it will complete successfully this time.

The 8-second appearance as “Arduino Leonardo bootloader” sounds normal for the Caterina bootloader. After the timeout, it jumps to the user sketch, and if that sketch has broken USB initialization, Windows will drop the port.

I would focus on the ISP recovery path. On Pro Micro/Leonardo, the ISP pins are usually MISO, MOSI, SCK, RESET, VCC, GND. The printed pin numbers 14/15/16 may not match the SPI pins the way you expect, especially on clones. Try using the actual ICSP/SPI pins instead:

Also add a 10uF capacitor between RESET and GND on the programmer board to stop it auto-resetting during ISP programming.

If ISP still gives 0x00, check wiring, board power, and whether RESET on the target is actually being pulled low during programming. The bootloader may still be fine; the main firmware is probably just killing USB after the bootloader exits.

Have you tried to upload a normal sketch during those 8 seconds? Timing is not critical; when the IDE reports the memory usage just before the upload process starts reset the board by shorting RST to GND.

Thanks for the input guys. It suddenly dawned on me that I had the Pro Micro connected through a 5 m USB extension cable. Since it all seemed a bit sensitive regarding bootloader timing and such I thought I would just test through a 0,5 m cable instead. And sure enough, it worked. No more issues. Lesson learned.
Thanks again for contributing.