Datasheet

select Feather 32u4 for ATMega32u4 based boards! Do not use anything else, do not use
the 32u4 breakout board line.
If you have a Feather M0 (look on the board to read what it is you have) Make sure you
select Feather M0 - do not use 32u4 or Arduino Zero
I'm having problems with COM ports and my Feather 32u4/M0
Theres two COM ports you can have with the 32u4/M0, one is the user port and one is
the bootloader port. They are not the same COM port number!
When you upload a new user program it will come up with a user com port, particularly if
you use Serial in your user program.
If you crash your user program, or have a program that halts or otherwise fails, the user
com port can disappear.
When the user COM port disappears, Arduino will not be able to automatically start the
bootloader and upload new software.
So you will need to help it by performing the click-during upload procedure to re-start the
bootloader, and upload something that is known working like "Blink"
I don't understand why the COM port disappears, this does not happen on my Arduino
UNO!
UNO-type Arduinos have a
seperate
serial port chip (aka "FTDI chip" or "Prolific PL2303"
etc etc) which handles all serial port capability seperately than the main chip. This way if
the main chip fails, you can always use the COM port.
M0 and 32u4-based Arduinos do not have a seperate chip, instead the main processor
performs this task for you. It allows for a lower cost, higher power setup...but requires a
little more effort since you will need to 'kick' into the bootloader manually once in a while
I'm trying to upload to my 32u4, getting "avrdude: butterfly_recv(): programmer is not
responding" errors
This is likely because the bootloader is not kicking in and you are accidentally trying to
upload to the wrong COM port
The best solution is what is detailed above: manually upload Blink or a similar working
sketch by hand by manually launching the bootloader
© Adafruit Industries https://learn.adafruit.com/adafruit-feather-m0-bluefruit-le Page 236 of 238