Alberto Maccioni designed this multi-chip opensource programmer based on a PIC18F2550. Currently it supports PIC, I2C-SPI-MicroWire EEPROMs, some ATMEL AVRs, and (soon) other devices. It even supports some PIC 24Fs, like the 24Fj64GA002 used on the Bus Pirate.
In the last few years, as serial and parallel interfaces have almost disappeared, electronics enthusiasts find even more difficult to program microcontrollers; old time programmers don’t work any more; common solutions include using USB to serial adapters (which can’t accept direct access but only slow API calls), or add-on interface chips, like FTDIxxxx, which appear substantially as serial interfaces and require custom or proprietary drivers.
So why not use PIC controllers and their native USB interface?
After searching a while I couldn’t find an USB programmer which was at the same time functional, free, and open source, so I decided to design one.
Open source means that all sources and schematics are given free of charge with the rights to modify and release them.
Check out the impressive design documentation. It includes a good overview of PIC programming, and a detailed look at the booster circuit used to get the 13volt PIC programming voltage. The programmer is compatible with Linux and Windows, and is released under the GPL.