I was doing something with foolish in avrdude, ending in me killing the bootloader on my Arduino Pro Micro . The Arduino Pro Micro bootloader creates a USB connection which the user can upload code, however by overwriting the bootloader, the chip no longer enumerates as a USB device and can no longer accept new sketches. Fortunately, I hadn’t messed up the fuse bits, so I can still upload using ISP. There wasn’t much documentation on doing this for a Pro Micro, so I had to look up the data sheets for the chip and trace the Eagle PCB schematics. Fortunately, all of the ISP connections are accessible via the pin headers. I used my USBasp, but any ISP programmer including another Arduino running Arduino ISP should work.