Breadboard Bits - PROG84

Introduction

The original design for the PROG84.
This was my very first PIC programmer. I didn't design it. To the best of my knowledge, it is Steve Marchant's extension to Microchip's original AN589.

The design schematics seem to periodically vanish and resurface, so I'm reposting them here.

I use a patched version of Odyssey to do the programming these days, due to the general antiquity of PP84.

Construction

My little PROG84-based programming board, in original condition.
The first time I built this, I built it directly on a breadboard.

I knew that wouldn't be a solution fit for long-term use, so I took out some prototype board and soldered one up for myself.

I used this board for a long time, although some of the intermediate projects went missing for a long while and I ended up rebuilding most of my development toolchain. The projects did turn up though!

Failure

How it started

Flash forward almost to the present day, when I'm using this board, which is visibly showing its age, to program a PIC18F1320.

Then, I had the night from hell.

What happened

While trying to add support for programmers with tri-state pins, like the PROG84, as well as the actual sections for the PROG84 programming modes, to Odyssey, I ended up overwriting my config files and thus losing the config for both my programmer and for the PIC18F1320, which is not supported out of the box. Eventually, I got the changes added and the config files rebuilt, although it bit another hour.

Then, while I was programming something, the lights on my programmer got dim. Confused, I tried checking the communication, only to have a communication failure. After unplugging it from the computer, the lights went out completely - uh-oh. So I track it down to no voltage leaving the 78L12 - so I replace it with a 7812 I have lying around.

I try to fire it up - but the wires to the wall wart had managed to stretch out of the insulation enough and get wrapped around each other to the point that smoke starts rising from the connector.

Then, after straightening that out, the replaced 7812 still doesn't fix it, and the 78L12 reads as if it's probably still good. Damn, think I, wasted a part, changed a design, and still didn't work.

So I pull the 7812, and it tears two traces clean off the board. I end up having to pull the 78L05 too, and as I'm looking for the short on the 12V line, it hits me - what are those little blobby things that I virtually never use?

Could they be TANTALUM CAPACITORS? Le sigh.

Why it happened (or "why I hate tantalums")

Which brings me to the problems of tantalums. They're polarized, and unlike electrolytics (which just work poorly or fail soft in a mostly-recoverable way), when you get the polarity wrong, they blow up spectacularly. This does not even have to be a case of actually plugging it in backwards either: a small pulse will suffice (tantalums and motors do not mix). And they are the only capacitor that is ESD sensitive. Static will blow them up too. The thin tantalum ceramic is easily perforated, and anything can set it off.

Which brings up the next problem: failure mode. Ceramic caps basically never fail. Electrolytics dry out and lose capacitance, eventually becoming an open circuit. Tantalums just fail dead short. A dead short is bad. It is especially bad for a power supply bypass cap. They have a very nasty habit of going BLAMO in that application, and if I had been running any power supply bigger than the low-current 78L12, it would have incinerated on the board, probably exploding.

As for why people use them, there are two main reasons. Tantalums have a high capacitance by area, and a very low ESR (effective series resistance). It's difficult to replicate their characteristics in any other single type of capacitor. That said, it's generally best to use some electrolytics, which have high capacitance but high ESR, and bypass them with ceramics, which have a lower capacitance but also a low ESR. The result is a bit larger, but at least there is no longer a ticking timebomb sitting on your board.

Repair and Enhancement

The current PIC programmer board, as it stands now.
So I cut the traces to the tantalum, moved the regulators somewhere else on the board, rerouted a few wires to get it up and running, plugged it in...

... and nothing happened. The 78L12 *was* dead, after all! So I pulled it and replaced it again with the 7812. FINALLY my programmer was working again, and I could get back to work.

I also decided to add a plexiglass baseplate this time around, for structural support and insulation of the solder-side.