picberry is a PIC programmer using GPIOs that doesn't require additional programming hardware, working on the Raspberry Pi, Allwinner A10-based boards (such as the Cubieboard) and TI AM335x-based boards (such as the Beaglebone Black or the AM3359 ICEv2).
It supports dsPIC33E/PIC24E, dsPIC33F/PIC24H, PIC24FJ, PIC18FxxJxx and PIC32 families - but only some PICs have been tested.