It uses just 12 parts

See Pick a PIC Project

PIC Programmer MkV is not available as a kit
but a similar circuit is:

Multi Chip Programmer
$17.50 plus $6.50 postage
Send an email for: Multi Chip Programmer
 Buying PICkit-2
adapter for PICkit-2


PIC Programmer MkV is designed to get you into PIC Programming for just a few dollars. It uses just 12 components. Most of them will be in your "junk-box" and the PC board is a small piece of matrix board. It's the cheapest way to get started.
As well as PIC PROGRAMMER MkV you will need these 4 things:
1. A desk-top computer with DB-9 serial port. (This programmer will not work on a lap-top computer and may not work with Vista.)
2. A software program called IC-Prog 105C-a and some helpful notes to guide you with setting up your computer. (This project is not suitable for In-Circuit Programming. You need to remove the chip from the project you are creating and program it in the 18 pin socket on the programmer. Eight pin chips are fitted with pin 1 aligning with pin 1 of the socket.)
3. A PIC chip, either PIC12F629 or PIC16F628 and
4. A project using one of these micros.

This will get you into producing a MICROCONTROLLER PROJECT.
We have concentrated on two PIC chips. An 8 pin and 18 pin chip. The 8 pin chip can be either PIC12F629 or PIC12F675 and the 18 pin chip is PIC16F628 or PIC16F675.
The programmer will work with many other chips but we are concentrating on these two types to get you started.
Not only is a microcontroller project simpler than using lots of discrete chips, but it can be cheaper and easier to modify and provide a greater range of features than lots of individual chips.
On top of this you can produce a project that requires a program and this can be "locked" from prying eyes. This makes it saleable and you can protect your Intellectual Property - and make money. 
Talking Electronics has produced a range of simple projects and provides assistance to get you into programming and creating projects that you have only "dreamed of."
Getting into microcontroller programming will change your life.
But before we go any further, let's build the programmer:

Here's the starting point:


The circuit is constructed on a small piece of matrix board. All the components are readily available and the 3 red LEDs act as a visual indication that the programmer is operating as well as creating a 5v rail for the chip. The other two LEDs indicate the clock line is operating and 13v is present on the programming pin. It does not indicate the actual voltage - you will need to measure the voltage with a voltmeter to determine this.
A 470R resistor is connected between pins 4 and 8 inside the plug. This allows 4 lines to be taken to the project.

Complete PIC Programmer MkV


Top and bottom view of PIC Programmer MkV
The wiring is under the board.
The top view shows the underside wiring to help you
follow the circuit.

The lead can be any 4-core cable. We have used 4-core telephone cable. Follow the diagram to prevent any mistakes. The 470R resistor is soldered to pins 4 and 8 of the female plug.


The 5v supply voltage for the chip and the 13v-14v programming voltage comes from the RS-232 feature of the serial port. Some of the lines making up the RS-232 are capable of rising to a positive voltage (about 8 to 12v) and falling to a negative voltage (about -8v to -12v). There are also lines that fluctuate from 0v to +5v. But unfortunately some computers fluctuate between +8v and -8v and some are less.
If the 3 red LEDs on the programmer do not illuminate when a chip is inserted, the most common problem is the 13v rail. The lines are not producing the 13v rail.
To solve this problem, fit 4 tiny button cells between the 15k resistor and Vpp of the chip.
Only a very small current is required when programming and zero current is taken when the chip is removed, so the cells with last a life-time.

PIC PROGRAMMER MkV with 6v Modification

There are many programmers on the market to program PIC chips but this project is the cheapest. We have designed it to program two of the smallest and cheapest chips in the range.
If you don't have a computer with a serial port, you will need a lap-top and  buy a programmer from MicroChip.
It is called PICkit-2 and costs approx $65.00.
It uses the USB port found on most lap top computers.
It comes with 2 disks containing all the software you need and is designed to program "In-Circuit." But you will need an adapter to connect between PICkit-2 and the project you are developing. This
adapter comes from Talking Electronics. You will need to add 5 pins to your project to accept the adapter. More about this on Talking Electronics website. See: 'In Circuit Programming."

PICkit-2 is available from MicroChip:
http://www.microchipdirect.com/productsearch.aspx?Keywords=DV164120 (cost $50.00 USD plus postage). The PICkit-2 from MicroChip is a "package" that also contains 2 CD's and an extra PC board that connects to the programmer so any 8, 14, 18 and 20 pin micros can be programmed. The board contains 4 LEDs, a push-button and a pot as well as some extra lands so you can create a small project. 
adapter  that connects PICkit-2 to the project (you are designing) must be purchased from Talking Electronics - otherwise you will have to use the PC board (called an experimental board) that comes with PICkit-2 from Microchip and move the chip to this board while it gets "burnt" (programmed).


PIC Programmer MkV

2  -  470R     1/4 watt (1 inside socket)
1  -  4k7          "
2  -  10k          "
1  -  15k          "

1  -  100u 25vw electrolytic

1  -  BC 547 transistor or similar
3  -  red 3mm red LEDs
1  -  green 3mm LED
1  -  yellow 3mm LED
1  -  18 pin IC socket

1m -  4-core telephone cable
1  -  9 pin D-type female
1  -  9 pin backshell

30cm  -  very fine solder

1  -  Matrix Board 13holes x 14 holes

Buy a kit
(Multi Chip Programmer)

This programmer requires software to perform the "programming" or "burning" operation.
The software is called IC-Prog 105C-a  and can be found on talking electronics website. Create a file and call it PIC files. Download the .zip file into PIC files. Use: "Extract Here"  to extract the file to produce: icprog105c-a.exe
Right-click your mouse on the file and select "Send to:" Desktop (create shortcut)
A folder will appear on your Desktop with a short-cut to IC-PROG.
For help setting up the port on your computer and getting the program to run, see Multi Chip Programmer on Talking Electronics website. or Multi Chip Programmer
Next put MPASM into PIC files folder. Use: "Extract Here"  to extract the file to produce:MPASM.exe
Next put NotePad2 into PIC files folder. Use: "Extract Here"  to extract the file to produce:NotePad2.exe
Next put .inc into PIC files
Finally look through the list of projects and put one or more .asm files into PIC files

ICONs on your desktop.
MPASM and ICProg are in PIC files folder

Help with installing IC-Prog

You will need the following files:  directio.zip (35KB)   loaddrv.zip (28KB)

problem is to do with running Windows XP and using the "Windows API" option in IC-Prog instead of "Direct IO".
By running a utility called "totalio.sys," (in directio.zip) all applications get full control of the I/O ports and thus IC-Prog works perfectly under Windows XP and Windows 2000, since the IC-Prog driver that is available doesn't work for XP (at least it doesn't work for me).

How To Use IC-Prog with Widows XP/NT/2000:
You can download a driver for IC-Prog from their website - it is called "icprog.sys" but it is really just a renamed driver originally called "giveio.sys". This utility was written by Dale Roberts as one of a set of utilities to give applications under NT more control over the I/O ports. Clicking on the "Enable NT/2000/XP Driver" check box in the settings will try to install this "icprog.sys". Under XP (on my box anyway), it installs but can't be started. There is probably some black magic regarding security permissions when creating symbolic links.
The purpose of this driver is to give an application access to the I/O port but only through the driver. This is because XP, like 2000 and NT, doesn't let you have full access to I/O ports like in 95/98/MS-DOS.
However, there is another way. By using another utility written by Dale Roberts, called "totalio.sys", ALL applications can have full control over the I/O ports, and not through a driver's interface. This means you can let IC-Prog use "Direct I/O" instead of "Windows API (in the "Interface" group of hardware settings) and ignore the "Enable NT/2000/XP Driver" option completely. "totalio.sys" (in theory) should also let any programs which control ports directly to work under XP.

Installing "totalio.sys":
Extract "totalio.sys" from the "directio.zip" file to "C:\Windows\system32\drivers" directory (or equivalent).

Extract "loaddrv.exe" from the "loaddrv.zip" file and run it.
In the edit box, type in the full path to "totalio.sys" eg. "C:\windows\system32\drivers\totalio.sys"
Click "Install".
Click "Start".
Click "OK".

The driver should now be running. You can check this by running "Start->Programs->
Accessories->System Tools->System Information", then clicking on the tree item "System Information->Software Environment->Drivers" and looking for "totalio" in the view on the right.
To start or stop the driver after it has been installed, you could use the "loaddrv.exe" program, or use the following commands in a command prompt:
"net start totalio" to start the driver.
"net stop totalio" to stop the driver.

You could put this in a batch file in the IC-Prog directory, eg.
 @echo off
net start totalio
net stop totalio

You can configure the driver to run automatically on startup, but I wouldn't recommend it. You can do this via Device Manager, select "View->Show hidden devices" and look under "Non-Plug and Play Drivers" to find "totalio", look at its properties, and change the startup type from "Demand" to "Automatic" (NOT "Boot" or "System") in the "Driver" tab.
The batch file concept is safest, as you only run the driver when you need to and unload it when you don't need it.

How to configure IC-Prog:
Goto: Settings->Options->Misc. Tab
Uncheck "Enable NT/2000/XP Driver"
Uncheck "Enable Vcc control for JDM" (the help file says it is experimental and not to use it).
Select "Realtime" in the "Process Priority" group. (in theory, this will prevent other CPU-intensive applications from interrupting your burn process).

Goto: Settings->Hardware
Select "JDM Programmer" from "Programmer" dropdown list.
Select "Direct I/O" from "Interface" group.
Uncheck all the check boxes under "Communication".
Select correct COM port.
Move the "I/O Delay" slider to 10. (other values gave errors for me, but this value could be specific to the PC's CPU speed - tweak until you get no read/write errors).

Why "Windows API" doesn't work:
My hypothesis is that using the Windows API introduces slight delays in setting the serial control lines, such that occasionally the data pulses aren't co-ordinated with the clock pulses during a burn. Whole 14-bit words don't get written, depending on the circuit the word will be all 0 bits or all 1 bits depending on the state of the chip's data line.   In my experience using the Multi-chip programmer, it meant 5% of the words were burned 3FFF, but not consistently, ie. the errors moved around each burn. Read errors were rare (multiple reads returning different data) but they also experienced the occasional incorrect word of 3FFF or just a few bits gone to 1.  

These problems all magically disappear once you use "Direct I/O".


UPDATE!!! : Settings for how to use IC-Prog with Windows XP.

Open a browser and select the file ic-prog.exe 
Press right button on your mouse 
Go to Properties 
Go to Compatibility menu 
Set compatibility mode as Windows 2000 or Windows 98 / Win ME 
Press Apply icon 
Press Accept icon 
You need to copy icprog.sys into the SAME directory as icprog.exe.
Then you can enter in the ic-prog software, go to Settings, Options
and choose the Misc. page. There you can enable the "NT/2000 Driver"
it will then be installed. 

Settings to use IC-Prog with Windows XP:

  1. Open a browser and select the file ic-prog.exe

  2. Press right button on your mouse

  3. Go to Propertties

  4. Go to Compatibility menu

  5. Set compatibilty mode as Windows 2000 or Windows 98 / Win ME

  6. Press Apply icon

  7. Press Accept icon

You need to copy icprog.sys into the SAME directory as icprog.exe. Then you can enter in the ic-prog software, go to Settings, Options and choose the Misc. page. There you can enable the "NT/2000 Driver" it will then be installed.

More help:

I am trying to get my JDM programmer to work using icprog 1.03b under windows 2000 but it won't start comes up with errors missing driver etc. ic-prog driver is not installed .

Get the icprog driver...
Get the latest version of ICPROG.
I now get a message "Privileged instruction " when I try to use. It happens on all versions
Change ic-prog's compatibility to Win98. Right click on the icprog.exe and click on Compatibility Tab.

Make sure you tick the *enable NT/2000/XP driver* under the options> Misc tab. Make sure you have the 6kb driver file in the same folder as the icprog.exe

You can also use other software such as: WinPic800
(website: http://perso.wanadoo.es/siscobf/winpic800.htm ).
WinPIC technical info (http://www.qsl.net/dl4yhf/winpic/ ).

1. Connect the programmer to the PC serial port.
2. Start the IC-Prog software and under 'Settings - Hardware' select JDM Programmer.
3. Insert the PIC into the programming socket.
4. Test the programmer is connected with 'Settings - Hardware Check - Enable Clock'  

Here is a reply from Jon Wilder

I'm here to tell you that I personally have tested the programmer on a computer with Asus A7N8X-E Deluxe motherboard which I got in 2004 and I run a 1.83GHz Athlon XP processor and I got it to work!
What you have to do is go into your computer's BIOS and change the parallel port mode to "SPP" (Standard Parallel Port). ECP+EPP will not work.
Also, I have found a Windows based program that works just fine in WinXP Pro with the programmer as well. Not sure who it's made by but it is called WinPic and for me with the parallel port set to "SPP" mode in the BIOS this program worked flawlessly with the programmer. Here is a link to it -
Just thought I'd post up my experience with the programmer for those of you who either still have them or were planning to build them to let y'all know that it has now been personally tested on a machine with a processor faster than 500MHz and it fully worked with no issues. The only thing to remember is that it will not work with the parallel port set to "Enhanced Parallel Port" mode. It must be set to "Standard Parallel Port" mode.