goodfet.pic

Client

Usage: ./goodfet.pic verb [objects]

./goodfet.pic devid
./goodfet.pic read 0x$addr
./goodfet.pic dump $foo.hex [0x$start 0x$stop] [pretty]
./goodfet.pic config
./goodfet.pic reset
./goodfet.pic program $foo.hex
./goodfet.pic verify $foo.hex
./goodfet.pic write 0x$address 0x$value
./goodfet.pic write_config 0x$reg_address (or $reg_name) [$0x0000]
./goodfet.pic erase [0x$page]
./goodfet.pic six [instruction]
./goodfet.pic sixfile [$foo.txt]
./goodfet.pic regout

Note: use - for stdout.
Warning: only formally supports dsPIC33F/PIC24H,
         but read/write flash memory works with PIC24F.

Pinout

NamePinName
12Vcc
PGD34Vcc
!MCLR56
PGC78
GND910
1112
1314

Examples

To dump the device and application IDs and hardware revision number of an attached dsPIC33F/PIC24H chip, use the goodfet.pic client:

$ ./goodfet.pic devid

To read the configuration registers, with labels for recognized addresses,

$ ./goodfet.pic config
N.B., should only work with PIC24H and dsPIC33F chip family. Much more documentation is needed for the programmer and is forthcoming. For now, here are some quick examples. To bulk erase program memory (this is necessary before programming),
$ ./goodfet.pic erase

Then to program the device with a code file, foo.hex,

$ ./goodfet.pic program foo.hex

To verify programming results,

$ ./goodfet.pic verify foo.hex

Please note that only addresses in given hex file are verified. A quick visual check of results might be a dump of the first few instruction words.

$ ./goodfet.pic - 0x200 0x220 pretty

This command prints (24-bit width) contents of program memory at addresses 0x200 through 0x220 to stdout.

Notes

This client (and corresponding app) are alpha releases. Or rather, I use them in a production environment, but they are only thoroughly tested on my own research hardware. At present, usability features are minimal or absent.

Contact Scott Livingston (slivingston [at] caltech) with any comments, questions, requests, etc.