I have similar - programmer for Atmega chips in 3.3V & 5V system, hex file selected from SD card, no PC access needed.http://crossroadsfencing.com/BobuinoRev17/index.html2 versions: one to select 1 of 16 files, one to select one of 256 files.
@technix, this looks interesting. On the schematic under level shifting, why do you say, "Do not try 3.3...", is that not the point of the level shift so it can program a 3.3V board. In Atmel, doc0943 they say the allowed voltage range for ICSP is 2.7 through 6V. I have a feeling the programming time needs to be compensated for lower voltages. The Dragon I have reads the voltage and also has some sort of level shift. One other problem at least for me is that I use a six pin ICSP interface... just like you have for your MCU. So if you want to program one of your own boards then you will need an adaptor I guess.
That is funny, but at least it makes sense to me now. It also crossed my mind that if the board is running from 5V, then maybe level converting in both directions is overkill. Guess I will have to do my own board to get the six pin, but I think the ideas you have shown are sound.