Read, program, erase PIC chips. Originally targetted at 16-bit families (i.e., PIC24H, dsPIC33F, PIC24F, and dsPIC30F), but now moving in the 8-bit and 32-bit directions.
goodfet.pic is a decent but unstable client. You can expect its command-line arguments to change as new chip families become supported and as the PIC app evolves.
A Python class that subsumes goodfet.pic (whereby goodfet.pic will become a mere frontend to several methods of the class) is in the works. Stay tuned.
ICSP likely supported families
Specific chips tested
The following verbs are supported. Note that the standard verbs are currently not implemented in their < 0x80 address (confer the manual). The PIC app is still young and, given variations in access methods across chip families, it is not ready to commit to standard verbs.
- *33F - targets PIC24H and dsPIC33F chips.
|0x81||PIC_DEVID33F||Read Device ID, application ID, and hardware revision.|
|0x82||PIC_SIX33F||ICSP six command; execute instruction on target (sourcing clock from PGC).|
|0x83||PIC_REGOUT33F||Read out VISI register.|
|0x84||PIC_START33F||Start ICSP session.|
|0x85||PIC_STOP33F||Stop ICSP session (basically, drop !MCLR pin and pause briefly).|
|0x86||PIC_SIXLIST33F||Buffer list of instructions to MSP430, then execute them over ICSP session with target dsPIC33F/PIC24H chip. This reduces overhead of UART communication between client and app.|
|0x87||PIC_RESET33F||Reset attached dsPIC33F/PIC24H chip||0x88||PIC_CMDLIST||Same as PIC_SIXLIST33F, but with an ICSP command before each instruction.|