Pro Micro Lobotomizer
The Lobot is my third version of a Pro Micro ISP programmer. The first version used a Pro Micro running the Arduino ISP sketch. The second version was a Raspberry Pi 0 using it's GPIO pins. I use these to replace the Arduino caterina bootloader with the standard Atmel DFU bootloader.
The caterina bootloader works fine when used with the Arduino IDE. It is automatic. However when being programmed outside of Arduino you have to manually deal with the reset timing which many people have problems with. The DFU bootloader is much simpler, once reset into bootloader mode it will stay in bootloader until power cycled or given the run command from the flashing software.
This version makes it easier to align the victim Pro Micro against the pogo pins. It also uses either an Arduino Nano or a TinyUSB programmer. Both are very cheap. There are many TinyUSB variants, these purple ones are easy to find on eBay or Aliexpress.
The Arduino Nano is programmed with the Arduino ISP sketch. The TinyUSB comes pre-programmed, but you may need to install a driver if you are running windows. The Arduino Nano shows up as a serial device, the TinyUSB is a LibUSB device.
The Arduino Nano has TX/RX lights so you can see when it is transmitting data. The TinyUSB has no activity lights, but it is faster. You can see the programming progress on screen so you don't lose much not having flashing LEDs.
You can create your own bootloader using LUFA or flash the stock DFU bootloader. Atmel was purchased by Microchip and their website is a mess. You can download the stock DFU bootloader via a Wayback snapshot. The FLIP utility for Windows is also available there.
Programming is through avrdude. To flash stock DFU with the Arduino Nano the commands are:
avrdude -p m32u4 -c avrisp -P comXX -b 19200 -U lfuse:w:0x5e:m -U hfuse:w:0x99:m -U efuse:w:0xf3:m -v
avrdude -p m32u4 -c avrisp -P comXX -b 19200 -B 4 -U flash:w:"ATMega32U4-usbdevice_dfu-1_0_0.hex" -v
Replace XX in comXX with the COM port number of the Arduino Nano. The first line sets the fuses. It will give a warning about changing them back, answer No. The second line flashes the bootloader.
With the USBtiny the commands are the same but with a different programmer and no serial port/speed.
avrdude -p m32u4 -c usbtiny -U lfuse:w:0x5e:m -U hfuse:w:0x99:m -U efuse:w:0xf3:m -v
avrdude -p m32u4 -c usbtiny -B 4 -U flash:w:"ATMega32U4-usbdevice_dfu-1_0_0.hex" -v
It takes about 10-15 seconds to program. The TinyUSB is faster than the Arduino Nano.
Gerber files on github.
Black and Green Pro Micros. The Blue has very large holes, not all I have seen are as large as this one. The Black and Green have smaller holes.