Why would you need to enter bootloader mode in the first place. Glad you asked...
How to Revive a "Bricked" Pro Micro
Incorporating all of the USB tasks on a single chip is an awesome feature that makes the Pro Micro and boards
like it truly unique. But it also places more stress on a single chip, and if anything goes wrong with that chip, the
board becomes nearly unusable. It's not uncommon for Qwiic Pro Micro's to become "bricked" and
unprogrammable. But, in most cases, the bricking is reversible!
The
most common source of Qwiic Pro Micro "bricking" is uploading code to it with an
incorrectly set board
(e.g.
programming a 16MHz/5V Pro Micro with the board set to 8MHz/3.3V). Also, make sure your sketch doesn't mess
with the ATmega32U4's PLLCSR register, or any other register that sets up USB functionality on the
ATmega32U4. The Pro Micro will actually take code compiled for the wrong operating speed, but when it tries to
re-enumerate, you'll be greeted with a notification like this:
To revive the Pro Micro, you'll need to find a way to upload a sketch to it with the board option correctly set. We
can do this with a little help from the bootloader.
First, you'll need to
set the serial port to the bootloader
. But that port is only visible when the board is in
bootloader mode, so hit the reset button or pull the reset line low twice quickly to invoke the bootloader reset
feature discussed above.
While the Pro Micro is in the bootloader
change the '
Tools
>
Serial Port
' menu to the
bootloader COM port. Quick! You've only got eight seconds. On Windows, the bootloader's COM port number is
usually one number higher than the Qwiic Pro Micro's regular port number.
With the serial port set, we're just about ready to re-upload our sketch. But first,
double check that the board is
correctly set
. Then
reset to bootloader again
, and quickly upload your sketch. Again, you'll have to be
quick...you've only got eight seconds. It may help to press the Upload keybind --
CTRL
+
U
/
CMD
+
U
--
immediately after resetting.
It can take a few tries to get the timing right. Since the code has to compile first, it may help to
hit upload first
and
then reset.