PIC Programmer

Program PICs! 

PIC Programmer


Since buying a commercial PIC programmer will often cost more than any single PIC project altogether, the DIY solution well worth the effort. I built my entire programmer for no more than 15 dollars. The programmer is designed by David Tait and modified by Bob Blick. You can get the schematic and rest of the info from http://www.bobblick.com/techref/projects/picprog/picprog.html.


So that’s how great it can look! If you’re as lucky as me and find a parallel port female and cable, the programmer can be very sleek. One important thing to notice is the input voltage, it must be over 15 volts or the MCLR voltage might not be high enough.


This programmer is very reliable and will work every time once configured correctly.


For burning .hex files I use ICprog. To get ICprog to work do the following;


Download ICprog and NT/2000/XP Driver.


  1. Extract Icprog to any folder
  2. Extract Driver to same folder
  3. Run ICprog, ignore error messages
  4. Settings -> Options -> Misc -> Disable NT/2000/XP driver
  5. Enable Disable NT/2000/XP driver, allow ICprog to restart
  6. Allow driver to be installed


Now after opening the program, press F3, and set the following, if using a 7407.


You’re set!




  • If you get an error at 0000h, open ICprog -> Settings –> Hardware Check. With the programmer plugged in, without a PIC, check off each choice.

Enable MCLR should give 13-14 volts at pin 4

Enable VCC should give 5 volts at pin 14 and light the LED

Enable Clock and Data Out will change the output voltage at either pin 12 or 13.

Test Program

Here’s a little something to test that the programmer is working properly. Download blink.hex and burn it to a PIC16F84A, then build the following schematic. If everything works you should have an expensive blinking LED.



I built the PIC-programmer into a spare floppy disk, greatly improving usability. The pictures describe the construction process. The extra long parallel port cable was made from a standard IDE cable. The I/O for the programmer is soldered to the existing I/O port, after cutting the traces. A small joule thief like boost converter supplies 16V for the regulated 13V line.

This is the boost converter. Inductor is center tapped, and non-critical. The transistor heated on me, so you may want to experiment with different component values.


hit counter