I wanted to use QMK, but the on-the-fly macros are stored in volatile memory and it only supports 2 of them (I'm looking at a keyboard design with 12+ macro keys). I was wondering if any of the other open source keyboard firmwares support this feature, and what microcontrollers people would recommend using (with 30+ i/o pins) since the at90usb1286 (the controller i was looking at) only has 4kb of eeprom and i think that might be a bit low. thaanks

Number of macros and the amount macro text allocated to all macros together is configurable. It depends mostly on your EEPROM storage size. E.g. in the fork the default setting is 128 macros taking at most 3586 bytes (all together).

Ok, if it you are comfortable soldering the MCU to your PCB yourself then it would work nicely. I just wanted to mention that since many people would not do it.

The only problem you may encounter is access to an PDI programmer. If you know somebody(*) who has avrdragon or some other PDI programmer then you can ask them to burn bootloader for you. Once bootloader is on the MCU you can burn/update the firmware through USB port.If it is not a problem to buy avrdtragom yourself then you can buy it and burn bootloader to MCU yourself. Avrdragon is about 50 €. There are some other PDI programmers and maybe cheaper but I do not know them. The good thing about avrdragon is that it is also a PDI debugger.

If you intend to tinker with firmware more then you will need something like avrdragon anyway to debug the firmware. Printf debugging (i.e. debugging without a debugger) is a pain in neck for anything than simple code changes.

If you intend to use ATxmega and do not already have some suitable schematic then you can use the one for K80CS as a starting point.

(*) Probably almost anybody who does some AVR development (besides simple firmware update) will have avrdragon.

Edit:There is also a cheap but flimsy way to burn atxmega bootloader: https://community.atmel.com/projects/atxmega-programmer-050I do not recommend it. Expect to spend a few hundreds and a lot of time on your custom keyboard project anyway. Avrdragon is not that much expensive in that view. And if you expect to tinker with the firmware (*) you will appreciate a lot to have a working debugger.

(*) And you definitely will need to play with the keyboard matrix scanning code at least. That is iif you are not going to build exactly what the firmware is provided for by default (e.g. Ergodox/KinesisAdvantageWithCustomController in the case of chris' firmware or K80CS/K84CS int he case of the branch).