usbpicprog is a free and open source microchip PIC programmer with simple hardware: one PIC18F2550 and some components.
usbpicprog is easy and cheap to build. Usbpicprog consists of 3 components: hardware, embedded software and a stand-alone program for Mac OS X , Win and Linux.