It took me a while to figure out what was wrong with my ProMicro…
When trying to program it from Linux/Ubuntu, avrdude was not working, with the following error :
avrdude: ser_open(): can't open device "/dev/ttyACM0": Device or resource busy Eavrdude: butterfly_recv(): programmer is not responding
The command I was using :
avrdude -v -P /dev/ttyACM0 -c avr109 -p atmega32u4 -U flash:w:program.hex:i
After some trials, I noticed that ModemManager was in fact stealing the access to ttyACM0, briefly when the ProMicro was reset, causing the problem.
The solution : sudo apt-get purge modemmanager