Microchip PIC programmer for the Mac


icd2prog.dmg (88KB)

Once you have downlaoded the files you will need to install them in the corrct place. Copy icd2prog to /usr/local/bin/ and icd2prog.config to /usr/local/etc/ . You will need to be root (or use sudo).. It may be thay you also need to create thos directories, in which case you will need to add /usr/local/bin to your search path.

Another option is to run icd2prog from your own home dircetory, but if the ocnfig file is not in /usr/local/etc you will need to specify its location from the command line, see usage below.

You may not reverse engineer, decompile or disassemble the software, except and only to the extent that such activity is expressly permitted by applicable law notwithstanding this limitation.

You may not sell, rent, lease, sub-lease or incorporate the whole or any part of the use of the software in any other program or system without express written agreement.


The command line utility is called icd2prog, and it only needs a few options :-

icd2prog [-c <config> ] -t <tty> [-v] <file.hex>

-t <config> allows you to specify the location of the config file (see above).

-t <tty> allows you to specify the tty device that the ICD2 is connect to. This is a mandatory option.

-v Is optional, and means that you only wish to verify the hex file against the PIC, and not program it.

The command I use to program the bootloader from my USB DMX Interface is :-

icd2prog -t /dev/tty.USA19QW3b1P1.1 bootloader.hex

icd2prog auto detects the the PIC that it is connected to. If VDD is not detected from the target circuit, it is automaticaly provided by the ICD2. The PIC is then programmed with the hex file, all options (configuration, eeprom memory etc) are read from the hex file. Possibly in a future version, if I find I need it, I will allow them to be over ridden from the command line. The PIC is programmed and verified at the same time (thus allowing verification of code protected PICs).

Supported Processors

In theory this should support all the processors that the ICD2 can program. Having said that I only use the PIC16F87 and PIC16F87xA families of processors, so thats all I have tested it with. Each processor that you are going to program must have its details included in the icd2prog.config file. This allows the application to know various parameteres it needs for the programming, and identification of the processor.

If you add a processor to the config file, and it works please let me know and I'll add it to the downlaod and place a note here to say its tested for that processor. If you can't figure out how to add a processor, don't worry, drop me an email and I'll add it for you.

Copyright © 2005 Ben Suffolk.