Free programming software for various of the MicroChip PIC series of micro-controllers by Nigel Goodwin.

Following the name change to WinPicProg I’ve now bought the domain name so all future updates will be under this address, with links from my old pages. I’m happy to try and help with any problems people have, either via email or (preferably) via the new PHPBB support forum, where other users will be able to take advantage of the answers. I’ve added an FAQ page to the support forum, and the first stop with any queries should be to look there!, all users are required to register, and will be emailed when any updates take place.

I’ve had a lot of requests for a circuit diagram for a programmer, so you can download the diagram for the P16PRO40 programmer here, this works nicely with my software, and is one of the programmers I use. You can order it as a complete kit from Dontronics. I’ve been sent PCB layouts for a couple of modified versions of the P16PRO40, you can download details on how to build them, Ozipic by Martin Sniedze  and P16PRO by Carlier Patrick, Carlier has offered to make small quantities of boards available, you can contact him on [email protected].Free programming software for various of the MicroChip PIC series of micro-controllers by Nigel Goodwin.

At one time there were plenty of P16PRO40 (and other) kits available, but these seem to have all but disappeared. Happily, I received an email from a gentleman called “Gajjar Dinesh” in India, who’s now selling a parallel port ICSP programmer, and he kindly sent me a sample to evaluate. He dispatched the kit on 25th August, and I received it on 30th August, which I thought was pretty good considering it spanned a weekend and a bank holiday Monday!. The kit includes a very high quality PCB (which you can order separately), and all the required components, and only took about half an hour to put together.

You can order the kit from his website at, it’s the FD-ICP, and he also sent me the optional “Programming Adaptor Board” which allows you to use it as a normal (non-ICSP) programmer – I would suggest you order that as well.

To use the FD-ICP you need to set WinPicProg to ‘Custom Hardware’ mode and set it like this, I also had to set the Vpp Delay to about 5mS, this is because of the reset pulse generated on the programmer board – you might need to experiment with this setting. The reset pulse is a vital part of ISCP, and is a major reason why non-ICSP programmers don’t work with ICSP.
Vdd     Vpp     Vpp40     MCLR     Output     Clock     Input
Pin     D2     D3     D4     N/A     D0     D1     Ack
Invert     No     Yes     Yes     N/A     Yes     Yes     Yes

PIC Tutorial Series

Supported Chips

This is the latest revision of my PicProg series, it has undergone fairly drastic changes, and I’ve now added support for a limited range of EPROM based PIC’s, in particular the 12C508/9, the 12C671/2, and the 16C505. Because of the increased number of chips supported, I’ve changed the Processor selection to a drop-down box. These supported EPROM PIC’s are the only ones I currently have JW (UV erasable) versions of, if anyone wants a particular chip adding I’m willing to look into adding it, but would appreciate an erasable chip sending for testing (as the 16C505JW was – thank you Gene!). I haven’t had time to update the help file for a fair while now, so it’s no longer included with the program downloads. You can download the last version of the help file from here Download HelpFile.

This picture shows the main screen, set to write to a PIC12C672, with a file already loaded and the filename displayed at the top.Free programming software for various of the MicroChip PIC series of micro-controllers by Nigel Goodwin. schematic As the 12C672 doesn’t have any on-board EEPROM data area, the buffer area to the right hand side is blank. Also, as this is an EPROM chip, the ‘Blank Chk’ box is visible, as this is checked (the default setting) the chip will be checked for being blank before programming – any problems with stored Oscillator Calibration values will result in a prompt, asking for a Yes/No reply before continuing. If you only want to alter a few bytes (obviously only ones to zeros), you can do so by un-checking the ‘Blank Chk’ box,  an already programmed chip can then be written with no checks performed.

With the addition of the 12 bit EPROM chips I’ve had to extend the dis-assembler, it now copes with both 12 and 14 bit code, it also now is able to display larger source files, and I’ve added a much greater range of register and flag labels, it appears to be working extremely well – as usual, I’ll be pleased to hear of any problems or suggestions. One ‘problem’ I already know off (and don’t really see a satisfactory resolution for!) is dis-assembling of Org instructions in 12 bit code, with 14 bit code I do this by checking for a blank byte ($3FFF), but with the 12 bit code a blank byte ($FFF) is a valid instruction ‘xorlw 0xff’, which amazingly was used in the first code I tried it on!, as things stand it will be dis-assembled as an Org line – but will still assemble and run as normal.



For more detail: Free programming software for various of the MicroChip PIC series of micro-controllers by Nigel Goodwin.

About The Author

Ibrar Ayyub

I am an experienced technical writer holding a Master's degree in computer science from BZU Multan, Pakistan University. With a background spanning various industries, particularly in home automation and engineering, I have honed my skills in crafting clear and concise content. Proficient in leveraging infographics and diagrams, I strive to simplify complex concepts for readers. My strength lies in thorough research and presenting information in a structured and logical format.

Follow Us: