This sounds crazy at first glance, but when you start looking at this, it sounds obvious and logical way. Dean Camera, who is creator of famous LUFA project decided to refresh his enthusiasm to developing by making bootloader based on printing. The idea of this is to flash AVR microcontroller by simply printing hex file like you would print it on paper.
The trick was to write a bootloader which would be seen as USB printer device. So PC using standard drivers would accept it. Luckily windows already comes with “generic Text-Only” printer driver which deals nicely with text files. All is left is to print hex file to device. Bootloader runs Intel HEX parser which takes data to be written to flash memory. From one side this seems to be funny approach, but in other hand it can be really practical way. Drivers are all there and no special hardware is needed. Why not?
Embedds highly recommends EasyEDA for circuit and PCB design