There are so many other programmers out there, why did I want to design and build my own?

A few years ago I worked with a great technician, George. The man had a very deep voice and a lot of skill. His voice had a way of burning an idea into your head. The project we were working on was cutting edge, but not very well funded, so when we built things, we had to make do with what we had around our lab, thus he was taken to calling us POH folks, as in Parts On Hand. I have managed to collect a few odd tons of surplus components, and I think of it as a challenge to build things without having to resort to (in order of preference) Digi-Key, Electronics Plus (local electronics parts house), or perish the thought, Radio Shack.

Fast forward to December, 1997. I use a Windows NT system at work and I can’t seem to get the PICStart Plus programmer to work for me. I called up Microchip, and they confirmed it, nope, can’t use the PICStart Plus under NT, and we don’t expect to support it for at least a year.

Damn.

Hmmm…. I could use this as an opportunity to learn more about the PIC and to deplete some of my stock! Yeah! Since I’m going about it, I might as well make it a "Production" programmer, which will fill in a niche that is empty at both home and work. Before I went to all this effort, I looked around the various PIC resources on the net to see if there was anything that fit the bill. I found some programmers that would only program the 16C/F84s, but not also the 16C71, which was another part I needed to program.

Since NT is a more "controlled" environment, it is harder to directly access the hardware, which makes the parallel port approach more difficult. At home I do have a system that will boot Windows 95, so I built one of the many parallel port programmers that will run under a DOS/Windows 95 system. I’ve been using that to develop a serial port programmer that doesn’t need direct writes to the ports of the system.

A serial port based approach will allow me to put this programmer on any system that uses a serial port. I would like this programmer to be able to run on any system that I needed it to. It sounds like Java would be a good choice, but there is no standard for Java to access the serial port. There are a number of packages available, but nothing built in and standardized across platforms. On the other hand, another favorite of mine, Perl, is available on just about any system you care to mention. I could write some 99% portable code in Perl, and only have to write it once! I think it would be a good thing for this programmer to be able to run under even a simple terminal program.

So there’s my objective: Design and build a serial port based midrange PIC programmer with a simple ASCII interface that could be used by computer or person. Write the code that supports the programmer in Perl such that it is portable to whatever platform I need. I want to use a reasonably fast interface, but auto-baud detection is beyond what I’m looking for, so how about setting the interface rate to 9600. Not too fast, not too slow, most anything should be able to support it. I could make the variable voltage settable to an arbitrary voltage, but I decided that would be too much work. More realistically, I only need to be able to support 3 voltages at any one time, +5, Vhigh and Vlow, it would be easy enough to adjust the power supplied to whatever voltage is appropriate when I actually need to program according to the "production" algorithm.

These plans are being supplied to you, free of charge, on a few conditions. First of all, all information contained about this programmer is Copyright 1998, Matthew J. Bennett. You must not reproduce anything contained on these pages, except for your own private use.

I make no gaurantees as to the operation of this programmer. All I'll say is that it works for me. It may not work for you. There may be mistakes in the code and the schematics. If you let me know about them, I will try to fix them, as long as I see it as a mistake (not a feature). I welcome suggestions, but I have a full time job, so it may take time for them to be implemented.


This page was last modified 362 weeks ago, on Sun Jan 27 2002.

All information contained on this page is © 1998, Matthew J. Bennett, and may not be reproduced, archived, mirrored, bought, sold, or bartered without express written permission of the Author. Offenders will be forced to endure a variety of punishments, including, but not limited to, Vogon Poetry and waxing my car weekly.