http://openprog.altervista.org/OP_eng.html
An open source USB programmer for PIC micros, ATMEL micros, I2C-SPI-MicroWire-OneWire-UNIO EEPROMs, generic I2C/SPI devices and (soon) other devices
Quick facts
Completely free and Open Source (including firmware)
Programs PIC10-12-16-18-24, dsPIC30-33, ATMEL AVR (serial and HV serial programming), serial EEPROMs type 24xxxx (I2C), 25xxx (SPI), 93xx6 (MicroWire), DS24xx (OneWire), 11xxx (UNIO), communicates with generic I2C & SPI devices (see supported devices)
Can work as ICD debugger
USB 2.0 Full Speed interface, HID class (same as keyboards, mice, etc.)
Self powered
Doesn't need drivers
Built from easy to find components (estimated cost ~10€)
Hardware generated timings for maximum speed and reliability (writes a 18F2550 in 15s)
Doesn't saturate your CPU and doesn't suffer when other programs are running
Open source control programs for Linux and Windows
It's not another PicKit clone