Frozen 18th May 1999
THIS PAGE AND RELATED PAGES ON THIS SITE WILL BE DELETED ON MONDAY 24TH MAY.
The entire site (including the PIC archive) can be downloaded as a
gzipped tar file (5Mb) (this is a familar Unix/Linux format;
Windows users will probably end up with a file called PIC_tar.gz:
use Winzip to gunzip the file then
rename the result as PIC.tar and Winzip will untar it too).
I would be happy to see the contents of the archive made available
elsewhere but please do not publish versions of this page
without at least editing it remove all references to me.
The entire site (including the PIC archive) can be downloaded as a gzipped tar file (5Mb) (this is a familar Unix/Linux format; Windows users will probably end up with a file called PIC_tar.gz: use Winzip to gunzip the file then rename the result as PIC.tar and Winzip will untar it too).
I would be happy to see the contents of the archive made available elsewhere but please do not publish versions of this page without at least editing it remove all references to me.
Here I have collected a few links related to PIC (aka PICmicro) microcontrollers. The links have been carefully listed in a totally random order. I've tried to keep nearly everything on one graphics-free page deliberately; even though the page is quite large now it should take less time to download than the opening graphics of most commercial sites.
You can probably turn up many more PIC related links yourself with a WWW search and if you find anything interesting let me know.
A collection of PIC-related files available via the Web or by FTP. If you have any information you think would be of interest to PIC fans just e-mail me and I'll let you know how to upload your file. The archive is also where I keep my own contributions to the PIC scene:
Visit this site (or use FTP) to get free PIC development tools plus PDF data sheets and application notes. A gold mine of information as you would expect from the makers of the PIC. Many regreted the demise of Microchip's dial-up bulletin board but they now have several online discussion groups with much the same content.
There was PIC-FAQ once upon a time; you can still get the text version but it's hopelessly out of date.
Manufacturers of PIC programmers and the PIC-based BASIC Stamps. Useful information available here or via FTP. The PIC applications handbook is essential reading even though the examples don't use Microchip mnemonics (Parallax had a utility called swapcode that did a fair job of translation between MPASM compatible assembly language and their 8051-like dialect). Christer Johansson maintains a List of Stamp Applications. UK agents for Parallax are Milford Instruments.
For electronic hobbyists keen to dabble with microcontrollers the PIC16F84 (or the older 16C84) is one of the best chips to get started with (nowadays it has strong competition from the Atmel AVR chips and look out for the new 16F87x family). One of the most compelling reasons for starting with the 16F84 is that it uses EEPROM technology; this means the edit-assemble-program-test cycle can be very rapid indeed - you'll never want to use UV erasable chips again. Most hobbyists are also attracted to this device because Microchip provide free development tools and it is easy to homebrew a cheap and cheerful programmer. For example, Andrew Errington's PIC page tells you how he got started with PICs. Andy wrote some Windows based software to control the PIC16C84 programmer described in the Microchip application note AN589. Steve Marchant has developed his own in-system programmer; Steve's page also has pointers to all the documentation you'll need to get you started. Another guide to getting started is provided by Sam Engström. If you are confident you can develop PIC based projects then you are likely to have all the skills necessary to build a simple PIC16C84 programmer so have a go. Your first project can be based on a very simple test circuit; or a slightly more complicated re-programmable test circuit and associated demo programs. Peter Anderson provides lots of introductory material and more projects you can try. DIY Electronics sell PIC-based kits including a PIC programmer kit designed by Charles Manning and the documentation includes an Introduction to the 16C84 in Word format which many will find helpful. Stan Ockers says he clearly remembers his first steps and has put together a short tutorial introducing the 16F84 (and more) through a temperature logging application.
Personally I think Microchip's PIC databook and Embedded Control Handbook are the most useful PIC books. Virtually everything in both is available on-line from Microchip's WWW site or CD-ROM. Nigel Gardner's "A Beginner's Guide to the Microchip PIC" is now available in revised form (revision 2.0). The book includes basic facts about the baseline and midrange PICs and illustrates the steps involved in PIC project development. My feeling is you'll soon outgrow the book, however, it does contain some useful advice and is less intimidating than a datasheet if you are meeting PICs for the first time. Nigel Gardner and Peter Birnie have produced a followup to the beginner's guide called the "PIC Cookbook - Volume 1" (Volume 2 should be around by now). The authors manage to describe 40 working applications in a 162 page A5 format book which is only possible by leaving out the program listings, however, fully commented source is provided on a companion disk. Whatever stage you are at, seeing examples of PIC hardware and PIC source code is useful. Gardner books are available in the high street from Maplin. Another book mentioned in the FAQ is David Benson's "Easy PIC'n" which by all accounts is a good introduction (pity about the title :-). This book is large format and has a very informal style. It has some useful things to say and although the examples don't really get you beyond the LED flashing, key pushing stage that's certainly a good start. A follow-up to "Easy PIC'n" is the intermediate level book called "PIC'n Up the Pace" and an even more advanced book is in the pipeline I believe. (UK residents can order copies of David Benson's books from Edward Buckley). Other books I've heard about include "PICs in Practice" by Volpe and Volpe (mostly 16C5X stuff) from Elektor Electronics; one from PICLIST regular Myke Predko entitled "Programming and Customizing the PIC Microcontroller" (I've heard good things about this one) and a book dedicated to the 8-pin PICs by Gordon MacNee called "The Greatest Little PIC Book" (available from Farnell). John Peatman wrote a textbook I used during my undergrad days and he has recently turned his attention to the PIC with "Design with PIC Microcontrollers" (see Prof Peatman's homepage for more info). One I've just come across (Jul/98) is by John Morton called "PIC - Your Personal Introductory Course". A search for PIC on www.amazon.com may turn up even more.
Microchip tools are of limited use if you don't use a PC with a Microsoft operating system. Furthermore, the only readily available PIC programming hardware is aimed at PC owners. The rest of you are on your own. Even the Mac has little support although there are a few things: Rick's PicMac page and, for DIYers, Francis Deck's Web page gives you all you need; or see Lauri Pirttiaho's KISS approach. The Warp-17 17CXX programmer from Newfound Electronics can be used with Macs (both 68K and Power PC based) thanks to Kevin Coble's MacPIC package. The Amiga is served by Dirk Duesterberg and Ioannes Petroglou's Amiga PIC tools page. Amiga owners can now use DIY 16C84 programmers (including the Maplin kit) thanks to Nick Waterman's Amiga port of the original PC software (see Nick Veitch's article on PIC programming in the July 1998 issue of Amiga Format). Also for the Amiga is the Epic PIC16C84 programmer. There were some attempts to produce PIC tools for Acorn machines and Stuart Tyrrell runs the PicAcorn mailing list pages which have few things. Search this page for Linux/Unix/NetBSD stuff.
Gareth Downes-Powell has put together a set of pages dedicated to the PIC16C84 and is looking for contributions. The pages also describe a range of PIC development boards you can buy.
An Italian site dedicated to PICs run by Tiziano Galizia and Sergio Tanzilli. Lots of information available in both Italian and English. Must see.
Antti Lukats' Silicon Studio has lots of goodies - have a look a the new SimmSticks for example. Several interestings things can be found in the download area such as the PICSTART lookalike programming software PIP-02 which can be used with a number of popular PIC programmer designs. (I have made a local copy of PIP-02 but its unlikely to be the latest version.) Other interesting things from Silicon Studio are available by FTP.
Here I've tried to collect links to companies that have useful PIC tools or PIC-based products but haven't already got a mention elsewhere on this page. (For some others Arrick Robotics provide contact addresses rather than links). This list will never be complete ...
There are lots of consultants specialising in PIC-based solutions. A few have their own WWW pages like Nigel Gardner's (of PIC book fame) Bluebird Electronics. PIC solutions are also a speciality of ML Electronics.
Erik Hermann designed an ultra-simple PIC16C84 programmer which plugs into the serial port of a PC and doesn't need an external power supply. It's very neat but may not work on PCs that have less than ideal serial ports (like most laptops). There are several versions described on the net including: Rolan Yang's PICBlaster; Silicon Studio's COM84 (gone?); Ludwig Catta's Ludipipo (now with Windows software thanks to Tord Andersson and brief English documentation by Michael Covington); and Jens Madsen's improved version. Ralph Metzler wrote a C++ driver so that an ultra-simple programmer can be used with Linux. Luigi Rizzo's PIC related tools page has another variant. On a similar theme Jens Madsen has designed what he claims is the "World's most easy" PIC programmer which uses just one resistor and a 5V power supply!
It's also possible to make an ultra-simple programmer for the printer port of the PC. Probably the first, blowpic, was designed by Mark Cox. Derren Crome's EPE programmer is much the same but programs the PIC in-circuit. The general idea is illustrated by the "quick and dirty" programmer. My 16X8X programming software is compatible with all three. The programmer section of my TOPIC board is just a bit more complicated but doesn't require you to fiddle with switches during the programming process. Michael Covington has stripped the TOPIC programmer to the bone to produce what he calls a "no parts PIC programmer". You could also consider Stephen Nolan's 8 component programmer. This programmer was used as the basis of Niagara College's Computer Systems Design course COMP630.
Simple parallel port designs like my "Classic" 16C84 programmer (see schematic: PDF or GIF) can be used as near universal PIC programmers. For example, Tato computers' ProPic programmer design comes with Windows software for programming a wide selection of PICs and EEPROMS. A similar design is described by Bojan Dobaj. The latter design can be bought as a kit (kit 96) from DIY Electronics or DonTronics Kit 96 page. G. Mueller has developed programmers for several popular microcontrollers. The PIC programmer, called PIC-Flash II, is capable of programming many different types although the free version is limited to the 16x8x.
Although Microchip maintains an extensive list of approved sales offices (some have their own WWW sites), nowadays you can buy PICs from almost any distributor. In the UK the two best known are Farnell and RS Components. Possibly hobbyists are more familiar with Maplin and their high-street outlets. Although PICs are relatively cheap the prices in the Farnell, RS and Maplin catalogues don't compare favourably with US distributors like Digikey. The PIC16x84 is available cheaply in the UK thanks to the much maligned pay-TV hackers. Several companies specialise in supplying PIC-based smartcard replacements and often have 16C84s for sale at attractive prices; for example see Techtronics price list. Some time ago I found Crownhill Associates Ltd's pre-tax price of £2.20 for PIC16C84-04/Ps too good to miss and was pleasantly surprised by the speedy service. More recently I bought ten PIC16F84-04/P chips from Keymaster Software Ltd for £1.89 each plus tax. Going by their price list another good source is Kestrel Electronics. Crownhill, Keymaster and several others advertise cheap PICs and EEPROMs on Usenet in the alt.satellite.tv forsale and crypt newsgroups.
An interesting site that describes a variety of pretty inventive things to do with PICs. Eric is now developing things using the ultrafast Scenix chip.
Kalle Pihlajasaari has put together a collection of links and describes his own favourite PIC projects.
Started by Rick Miller but now maintained by James Bowman, the GNUPIC project is an effort to produce free PIC development tools for multiple platforms. When I last looked Paul Vollebregt's European GNUPIC mirror was still going.
The PICLIST is a mailing list dedicated to PICs and is very active (about 1500-2000 members generating 50-100 messages a day!). It was started a few years ago by Jory Bell. To subscribe you send a message to email@example.com with a body that says SUBSCRIBE PICLIST Your Name (to leave the PICLIST send a message saying SIGNOFF PICLIST). Alan Nickerson maintains the PICLIST archives. Another way to get old PICLIST traffic is by sending the list server a "GET PICLIST LOGyymm" command (where yy and mm are year and month respectively) - expect a very large file! Jeff Keyser keeps an alternative searchable PIC mailing list archive. Myke Predko has put together some info on PICLIST netiquette and Tjaart van der Walt tells you How to unsubscribe. A word to the wise: if you have a question about PICs don't ask me send your question to the PICLIST; you have a lot more chance of getting a useful answer! I recently deleted a lot of PICLIST mail I had accumulated but before I did I scanned it for links. in the hope that they might prove useful.
I guess everyone has at least few links on their pages but here's a few sites with more comprehensive lists. Industry watcher EG3 Communications has trawled the net for PIC resources and identify Alexey Vladimirov's (ORMIX) page as probably the best for the enthusiast so be sure to have a look. See also the Universal PIC Resource Locator which is an annotated PIC links page put together by Alessandro Zummo and Eric Schlaepfer's links. Jonathan Cline's list is constructed by extracting URLs from postings to the PICLIST and other PIC links pages. Other useful lists are provided by Wolfgang Kynast and DonTronics. Links2go have chosen this page and several others as key PIC resources. Another way of finding links is by traversing the PICmicro webring.
The PICLIST is without a doubt the most active forum for discussing PICs. A subject that is often discussed is whether the list should be replaced by a newsgroup but the answer has always been no. In any case there are a few groups that already include posts about PIC related matters. The most relevant are comp.arch.embedded and the sci.electronics hierarchy (sci.electronics.design and sci.electronics.components are the main ones) but comp.robotics.misc is also popular with PIC people. Although they don't have much PIC specific traffic, comp.realtime and comp.arch.arithmetic are also worth a look. The group alt.microcontrollers.8bit looks like a good place for PIC discussions but seems to be neglected at the moment.
DonTronics, based in Australia and run by Don McKenzie offers PIC programmer kits and lots more. Don has a page devoted to Silicon Studio's little PIC (or whatever) project boards called SimmSticks. US residents can purchase Don's PIC stuff from Wirz Electronics. You can also find DOS/Windows/NT software to support my 16x84 programmer there.
A Source of inexpensive PIC programmers. Newfound show how a low-cost single PIC interface can permit simple DIY parallel port programmers to be used directly from MPLAB. Bob Blick has built his programmer around one.
E-LAB manufactures and supports a microcontroller board using the PIC16C57 microcontroller. They also generously provide an Embedded Electronics Resource Directory.
Like it or not, PICs play a big part in the pay-TV hacking world. The idea is to emulate the smartcard needed by a pay-TV decoder (decrypter) using a card based on the PIC16C84. This is either illegal or at best in a grey area of the law depending on where you live (see Robin Marshall's personal opinion of pay-TV hacking and the law). I'm afraid I know very little about pay-TV hacking but I often get asked about it simply because my programmer could be used to program a PIC-based card. If you want to know more then Defiant's pages (and the associated FTP site) seem to be the primary source of information. Look for PIC information in the picprog and the d2macpic directories. You can also try CLaNZeR, Tonto, Scansat (complete with a "newbie" page) and the Multimac site. Paul Maxwell-King has lots of information including details of a programmer you can buy. Pay-TV hackers often get into a tizzy about hex formats (they always have the wrong one) and Peter Jonasson provides a converter as does Scansat. (I wrote my own hex utilities for fun). Thankfully, most hackers build the Henk Schaer programmer (beware an error in the 7407 pinouts) but there is some hacker-oriented software to drive mine in the form of Bengt Lindgren's PIX and a program from Willem Kloosterhuis. There are some commercial programmers or anonymously contributed programming files which are based on my programmer description. This means I often get requests for "support" but it would be better if all questions about this subject were aimed at the hackers who inhabit alt.satellite.tv.crypt. Commercial programmers specially aimed at the pay-TV hacking audience are getting more sophisticated (which is just as well as many hackers have difficulty putting together simple PIC programmers it seems). For example, I was interested to see the Keymaster programmer, which looks like a nice product at a keen price. Low cost programmers are available via Nigel's pages.
The popularity of the PIC16C84 in smartcards (or at least in pirate smartcards) means hackers have put a tremendous amount of work into trying to defeat its code protection mechanism. One attack on code protection security was discussed on the PICLIST and some other information on cracking PICs is available from Dejan Kaljevic. Well known pay-TV hacker Markus Kuhn has recently co-authored a paper on hardware security attacks that mentions this and much more. Several companies advertise specialised programmers (often called "PIC Busters") and following the links provided by the pay-TV sites mentioned above will eventually lead you to one. For example, Justin Farrell sells a self-contained device for copying protected 16C84s and offers a service to "bust" other PICs including the 16F84 which was supposed to be more secure than the 16C84. The non-EEPROM PICS were thought to be immune to attacks short of probing the die (too expensive and difficult for anyone but the most rich and determined). However, some companies claim they can crack code protection and advertise this service in Nuts & Volts Magazine. There was considerable interest in popping 16C54s in particular, mostly due to people wanting to pirate the Sony Playstation hack though now there is DIY info available for several PICs including the 8 pin versions. (See also Paul Maxwell-King's extensive Playstation pages.)
Microchip have introduced some security measures in newer PICs that can hit the unsuspecting hobbyist in the wallet. If any of these PICs is protected it cannot be reprogrammed because once code-protection is enabled it is permanent even if the chip is UV erasable; quite a blow as windowed PICs are quite expensive in one-offs (some people claim it is possible to recover such PICs by prolonged - several hours - exposure to UV).
The PIC is a great processor for ham radio applications. A really novel application is Mark Sullivan's PIC-based beacon - the PIC itself is used as the transmitter. The (unfortunately no longer available) Perth Radio Experimenters Group prefer the PIC for their projects (a PIC-based frequency counter and 50MHz synthesizer). Jeff Otterson's 16C84 based talking repeater controller. PicCon - a hidden radio transmitter controller by Byon Garrabrant. G0BZF kits (morse tutor, keyers and beacon controller). Embedded Research claim to have the World's smallest iambic keyer (based on an 8-pin PIC). The PIC is popular with packet radio enthusiasts as controllers for radio modems (TNCs). The Bavarian Packet Radio Group page (or mirror) describes a 9600 bps FSK modem incorporating a 16C84. GMSK Data Products use PICs in their high-speed TNCs. The G-QRP club have featured several PIC-based projects in their magazine SPRAT. In the Winter 1996 edition they claimed a UK first by publishing a 16C74 controlled DDS design by Mick Hodges (Mick was the author of several of the PIC projects and apart from the DDS controller he designed a frequency counter and iambic keyer; Mick now supplies the source code). The April 1997 edition of the RSGB journal RadCom has an article by Andy Talbot and Lee Wiltshire describing a 16C71 based serial port ADC for a PC - connect a radio and try some DSP! (Andy and Lee have generously supplied full details including several DSP-oriented programs for the PC complete with source code). The January 1998 issue of QST described Bob Anding's PIC-based morse IDer (the source code is available). Amateur TV (ATV) enthusiasts (and others) might be interested in Alain Fort's single PIC video generator. The British Amateur Television Club have featured a few PIC projects in their CQ-TV magazine. Some really polished projects for ATV are described by S51KQ. Make sure you have a look a Charlos Potma's page as he has a couple of interesting things based on the 16F84 (50MHz microwattmeter and a frequency display) and promises more. If you are struggling with learning morse code check out the Morse tutor from Brian Jones. Even better, Lawrence Foltzer's article in Ham Radio Online explains how a PIC can read morse for you. K1EL sells iambic keyer chips (programmed 12C5XXs) and provides info on how to "roll your own". TAPR have some projects based on the PIC (currently you can hear RealAudio presentaions by TAPR members). Jacques, VE2EMM describes a "Fox" controller and doppler unit. New Jersey QRP club host the "Ham-PIC" page.
Undoubtedly most people program PICs in assembly language (there are two main variants: Microchip's own and an 8051-like language from Parallax). For higher level programming BASIC, C and Forth compilers are available. I could be wrong but I think the only true BASIC compilers are PicBasic from microEngineering Labs and PIC BASIC from FED (other BASICs exist but they do not generate native PIC code). For those who prefer C there is a lot of choice. MPC from Byte Craft and Microchip's MPLAB-C apparently started out the same but are now quite different from each other. PCM from CCS is a relatively inexpensive compiler for PIC16CXX microcontrollers and seems quite popular. Don McKenzie resells the CCS compiler but he offers an impartial user review of four popular C compilers. A PCM specific review is provided by Hahntronix. Randy Rasa has more information about PIC C compilers including a review of MPC. The CC5X compiler, despite it's name, is suitable for both baseline and midrange PICs. Hi-Tech have a working demo of their PIC ANSI C compiler available for evaluation purposes and this is the only compiler I've tried much - I liked it. The stack-oriented language Forth seems an unlikely candidate for programming the stack starved mid-range PICs but Michael Josefsson has managed to produce a Forth compiler for the PIC16C84. A commercial Forth compiler is available from RAM Technology Systems. Some experimenters have devised their own high-level languages and offer compilers for them.
Respected technical author Don Lancaster seems pretty enthusiastic about the PIC as you can see for yourself by reading his PIC related articles. It's probably worth your while sifting through Don's haphazard list of PIC Web sites as there is bound to be many that I don't have on this page.
PIC development tools, PIC BASIC, and details of Robin Abbott's PIC programmer (published in the now defunct ETI in 1995) are here.
Nowadays virtually every magazine for the electronics hobbyist features PIC based projects from time to time. Some magazines have WWW sites. The UK magazine Everyday Practical Electronics (EPE) has featured the PIC in several projects recently, for example a simple 16C84 programmer, a mains power meter and a novel digital clock (a row of LEDs on the end of a pendulum produces the display). The source code for EPE's PIC projects is available by FTP and via Thomas Stratford's WWW mirror. For three issues starting in March 1998 EPE is including a supplement with a PIC tutorial. EPE is now available in an online edition. (at the time of writing you can donload a free copy which includes a PIC project). Elektor Electronics have featured some very interesting PIC projects including the obligatory PIC programmer and a transistor tester based on a 16C71. (Elektor is a trans-European magazine and you might find more their German WWW site worth a look.) I'm less familiar with non-UK magazines but I'm told that PIC articles have appeared in Electronics Now and Popular Electronics. Steve Ciarcia's Circuit Cellar Ink often features PIC based projects and makes support material available; this includes a file to accompany Ken Pergola's Micro-bRISC PIC programmer described in the January 1996 issue. Nuts & Volts carries Scott Edward's BASIC Stamp applications column (if you have never seen Nuts & Volts try a sample copy). Another magazine with a WWW presence is the Canadian Micro Control Journal. One of my favourites for on-line browsing is EDN; you'll need to register to look at back issues but registration is free. PICs are sometimes featured in the "Design Ideas" pages. Spread spectrum enthusiasts have their own online magazine and some PIC stuff.
Several projects at MIT's media lab use PICs particularly the PIC16C84. For example: R. Dunbar Poor's "personal" interface board called the iRX 2.0; and the Cricket project (tiny communicating robots) from Fred Martin. Elsewhere at MIT Randy Sargent has developed a PIC simulator/assembler for UNIX.
This is a list of a few PIC experimenters I have come across while "surfing" or reading the PICLIST - most have useful information or files to share.
A PIC macro-assembler called ASPIC. How to control LCD modules including a PIC example. (I wrote a C program to test a Hitachi LCD module by hanging it off a PC parallel port but see Randy Rasa's LCD project page for a more comprehensive version.) Although Dave Negro doesn't specifically mention PICs, his page is a good place to start looking for IR remote control information. Mark Sullivan provides an automatic PIC code generator for infix expressions. A very nice looking programmer powered by a PC parallel port. There are FTP sites devoted to the PIC in Finland - ftp.funet.fi (look in burners and pictools for some PIC development tools for Linux) - plus a couple in Sweden - ftp.sics.se and ftp.luth.se (where you can grab a PD C compiler for the PIC16C84 and PIC projects for R/C models by Ken Hewitt and Phillipe Techer). A PIC-based servo controller from Rick Farmer. A PIC16C54 metronome in C. Tom Coonan's synthetic PIC - a VHDL model of a PIC. A Stamp based rocket altimeter. PIC information mostly culled from Usenet. PIC programs to accompany Maxim Application Notes on an inclinometer and battery charger.
Comments, suggestions and queries to firstname.lastname@example.org
Web space provided by Manchester University.
Copyright © 1996-1999 David Tait.