Don't expect this to work for you unaltered! For the record, these are my notes, not a guide for you :-)
Anything over 28k will begin to overwrite the boot loader, which is a pain!
Be sure to check file size with:
avr-size meira_promicro_grahampheath.hex
I've added a 8ohm 0.5W speaker, its a bit large, but it fits in approximately the same space as the ProMicro. I soldered directly to PC6 and GND.
As the Meira code stood, adding sound increased the hex beyond what the boot loader could handle, so I had to dial way back on features that I wasnt using, like backlighting and RGB support. I also removed function keys, though I think you could restore some of these features, you certainly can't restore all of them and still fit with a boot loader.
Built for the ProMicro with:
make meira/promicro:grahampheath
Build and upload with, which is cool because it will sense your port.
make meira/promicro:grahampheath:avrdude
Program a hex directly with:
avrdude -p atmega32u4 -P /dev/tty.usbmodem14111 -c avr109 -v -e -D -U flash:w:meira_promicro_grahampheath.hex
If you use an AVRISP you will be program a hex without a boot loader:
avrdude -p atmega32u4 -P /dev/tty.usbmodem14111 -c avrisp -v -e -U flash:w:meira_promicro_grahampheath.hex
Did you overwrite your boot loader?
I did...
I used an Ardunio as an ISP, and was able to program various boot loaders. Ultimately it seemed like this was the right combo:
ProMicro boot loader hex is called Caterina-promicro16.hex
and is stored on Sparkfun's GitHub
avrdude -c avrisp -p m32u4 -P /dev/tty.usbmodem14141 -v -e -U flash:w:Caterina-promicro16.hex -U efuse:w:0xcb:m -U hfuse:w:0xd8:m -U lfuse:w:0xff:m