PIC Programmers

You are in home \ microcontroller \ PIC microcontrollers (back)  

Note: This page is very old. I have not maintained it for ages as I've not used PICs for ages. (Although currently building another PIC programmer :)
Although many links are broken, the sites can often be found elsewhere (use a search engine), and some links to within other sites that have broken can be remedied by address-surfing - chopping off the 'folder-tail' of the web-address and finding the site.
As to recommended Pics, the 16F84 is still a good one, but the 16f876 (or whatever it's called) and its range are now considered the better price/complexity/performance range for hobbyists. Do search for Tony Nixon (ROMZap), Myke Predko (El Cheapo), and Michael Covington (NOPPP) though, as they are still recommended. Good Luck.

The advantages of beginning microcontrollers with the PIC is that it is widely supported with many resources. Development kits are cheap and can be of excellent quality, and there are untold free designs available to build yourself at very little cost.

Now which PIC microcontroller to choose?
In my opinion the beginner can narrow the selection down to 2 or 3 to choose from.

PIC 16F84
The most common PIC to select is the PIC 16F84, which is an ideal beginning point. This microcontroller forms the basis of numerous tutorials, projects (on the internet & in electronics magazines), kitsets and products.

If you feel confident building your own programmer using the free plans and software available, then that would be the cheapest way to start. Some PIC 16F84 programmers are recommended below, which I feel are better than the rest. Then you can always move on to programming the smaller 12c508's, and move up to the 16F877's.
If you're not into constructing your own programmer, but would rather buy a development kit, check out the links later on this page, and make your comparisons.

PIC 16F8xx
The PIC 16F877 (16F8xx range) has more code-space, low voltage programming mode and a built in serial port, which can be used to drive a monitor during development, when a hardware serial port is called for, and even as another means of in-circuit programming, which can result in rapid 'code - burn - run' turnaround times.
Tony Nixon's ROMZap (on his Pic'n'Poke site) is well worth considering buying, as this provides an excellent development environment for the PIC 16F8xx series and at a good price too.

PIC 12c508
To program the smaller 12c508's (as used in PSX ModChipping) for smaller projects, it is a good idea to develop code on the 16F84, and when done burn it into the 508. The 508 (& the 12c509a) are worth looking into once you've begun using the 16F84. See the Talking Electronics website for the best way to begin on the 12c508's.


Okay, you'll want to check the price and availability of any chips you'll intend using, and what your ambitions and abilities are. Some questions to ask are: Can I assemble and solder up a circuit from plans off the internet, and troubleshoot it myself, how much can I afford to get started, how ambitious are my project plans? (remember, once you become familiar with the PIC, a world of possibilities will open up anyway). How suitable is this microcontroller for my projects?
Unfortunately these can be difficult questions to answer if beginning, but fortunately the 16F84 is an ideal PIC, both for beginning and intermediate use.

You won't go wrong with the 16F84, as it is a low cost introduction, and choosing the right free programmer to build yourself will save you hassle and money. Of course it is even less hassle to buy a working development kit, in which case you should seriously consider the ROMZap, which uses the PIC 16F877 micro.

Oops, I nearly forgot to mention MicroChip's www.microchip.com website, where the free Assembler and simulator, and all data sheets can be downloaded from. They're the ones who make the PIC's :)


Recommended PIC 16F84 programmer designs

The following PIC Programmers are probably the best for the build-it-yourself PIC microcontroller enthusiast.
1). David Tait's TOPIC programmer ( topic03.zip [128k] ). http://www.labyrinth.net.au/~donmck/dtait/topic03.zip
Unfortunately David Tait no longer supports it, but many folk have his pages up. Eg. at: http://www.labyrinth.net.au/~donmck/dtait/index.html

2). Michael A. Covington's NO Parts Pic Programmer (NOPPP) http://www.covingtoninnovations.com/noppp/index.html (well documented) His NOPPP is also in Electronics Now (EN September 1998).

3). Myke Predko's ElCheapo Pic Programmer (well documented) http://www.rentron.com/Myke4.htm


Several of the others are very good too, and you'll probably want to check out Nigel Goodwin's software and S.G.Willis's circuit as well.

Nigel Goodwin Programmer (1996) File: PIC84PGM.ZIP. ( Prg: PICPROG.EXE. CFG files allow inv/non-inv buffer & 4066/pnp circuit options, so it's configurable to work with D.Tait, Don McKenzie, S.G.Willis and other's boards. Disassembler provided too.)(Worth grabbing to check out!) http://www.lpilsley.demon.co.uk/


S.G.Willis Programmer (1995) 'PP87' (Cct: Pp87word.doc. Uses 7406.)
Robert Spur - Analog Design Specialists has a programmer design. (Cct: 00589A.PDF, Prg: AN589.ZIP containing ADS_1ST.CPP) Have a look at http://www.microchip.com

And a few general links:

PICmicro WebRing An easy way to browse through many PIC related websites...

PICList FAQ The PICList is a most valuable resource, read the FAQ to maximise its usefulness.

PIC Archives Search the archives for answers to threads already thoroughly discussed before repeating a question asked only a while ago.

PICList Archives Search the archives for answers to threads already thoroughly discussed before repeating a question asked only a while ago.

Microchip net resources

Dontronics Pic related links A huge site with much to offer, check out his SIMM Stick concept too...

Hints and tips Notebook A handy and helpful bunch of elegantly presented notes...


And some PIC programming & related websites:

These guys are the Guru's of the PIC. Definitely check out their websites!
James Newton
Don McKenzie (DonTronics)
Scott Dattalo
Adam Davis
Bob Drzyzgula
Tony Nixon
Myke Predko (Microcontroller Reference Page)
Marco Di Leo
Andrew Warren
PICmicro Mecca
Eric Smith
Paul B. Webster
Wagner Lipnharski (UST Research Inc.)
Michael A. Covington
Hints and tips Notebook

(Any corrections or comments appreciated.)

My first programmer was...

The first programmer I built was Derren Crome's design, as in Everyday & Practical Electronics magazine (EPE Feb 1996, EPE March 1998) because it was so simple, and there was a lot of tutorial info about it in EPE.

The programmer ( SEND.EXE ) was designed to program .OBJ assembled by TASM. (Not to be confused with the commercial TASM). Included is David Tait's HEX2OBJ converter, for those wishing to use MPASM assembled .HEX with D. Crome's SEND.EXE, and also a version of SEND called SENDHEX.EXE to do so directly. And Nigel Goodwin did include a version with the EPE design to convert binary .OBJ back to TASM assembly (EEDISASM.EXE). EPE also ran a whole series of articles introducing programming the PIC 16x84. (See EPE & their PICTutor at http://epemag.wimborne.co.uk )

Then I made one of David Taits programmers, but I replaced part of his power supply section with a modification of the charge pump from Charles Mannings design. This was to reduce the voltage requirement of the programmer. (Combination of best features :)

More recently I got into Atmel's AT89C2051 for myself, and also AT89C8252.
Now I'm interested in the PIC 12C508/509A which would suit some of my projects, and wanted to use my spare 16F84's to develop for the '508.

Then I discovered Talking Electronics had a web site up, at http://www.pipeline.com.au/users/talking/default.htm and provides just such a kit for the beginner.

Currently I'm making my own programmer for Atmels AT89c2051/4051.


Charles Manning's articles are in Electronics Australia magazine. (EA November 1995 (intro to PIC), EA April 1996 (programmer cct), EA May 1996 (example application circuit). (Uses: 7405)
Steve Marchant (EA) (Cct: PROG84.PDF, Prg: PP84.EXE. Target-cct & i/f: PIC84.pdf) Note that Steve Marchant claims software compatability with Robert Spur's 00589A.pdf hardware design.
About David Tait's PIC Programmers:

1994 - 'BASIC Programmer' File: PIC84PGM.ZIP
  (Cct: PP.ASC, Prg: PP.EXE. Used 7406, 4066) .
1995 - 'SIMPLE Programmer' File: PIC84ART.ZIP
  (Cct: ppschem.pcx. Used NPN transistors)
1996 - 'CLASSIC Programmer' File: PIC84V04.ZIP
  (Cct: PP.PCX, Prg: PP.EXE Used 7407)
1996 - 'TOPIC Programmer' File: TOPIC03.ZIP
  (Cct: TOPICLOW.GIF, Prg:TOPIC.EXE. Uses 7406)

David Tait's Archives can be found at:
David Tait
http://www.thepicarchive.cwc.net/dtpa/links.html
http://www.pi.infn.it/~stamerra/piclinks_dtait.html
http://engmtasd.derby.ac.uk/mirrors/pic/index.html
http://members.optushome.com.au/donmck/dtait/piclinks.html


With a few considerations, In-System Programming is easy to achieve. EEPROM Programming Specifications in 30189D.PDF, and ICSP details in: 31028A.PDF (on MicroChips website)

The following programmers are ISP compatable:

With a few design details of the target circuit (eg, jumpered /MCLR pullup), most non-ICSP Programmers could be made to work In-System. Watch where the power comes from.
Other Programmers:
- Ken Segler. File: Pgm16cxx.zip, Configurable to use Tait or Reiss's hardware or your own.
- Mark J. Cox File: BLOWPIC.ZIP. (1994) Very simple ascii circuit, and asm source code) (Cct: in BLOWPIC.ASM, Prg: BLOWPIC.COM) (LPT)
- Andrew M. Errington, 1995. File: PROG84B.ZIP. Windows VB programmer, using the circuit described in Microchip's Application Note AN589.
- Jens D. Madsen File: JDM.ZIP. (Cct: newpic0.gif, Prg: pgm84v28.zip. Serial.) ( http://www.ozemail.com.au/~cyendle/psx/pcb2.html )
- Stephen M. Nolan, 1996. File: PICBAS.ZIP. (Prg: DOWNLOAD.EXE) incl. BASIC Source.
- Russ Reiss
Some of the buffer chips used in some of the programmers: The 7404,7405 7406, 7407, (& 7416, 7417) all have the same pinout:
In pin-1 & Out pin-2, In pin-3 & Out pin-4, In pin-5 & Out pin-6, pin-7 to Ground, In pin-8 & Out pin-9, In pin-10 & Out pin-11, In pin-12 & Out pin-13, pin-14 to +5V.

C compilers for PIC