page 2 of 4
The unit's original purpose was to load an M Systems' DiskOnChip flash-memory device, which are commonly used in place of hard drives on PC104 embedded systems, with copies of the OS and system software, and to program a Vetra Systems' Keyboard Encoder chip with the correct key-mapping matrix. The daughtercard hanging off the side was added later; it's a simple parallel port-driven PIC programmer to burn production copies of PIC16Cxx chips. Since the power supply already inside the Chiploader didn't provide the correct voltages for PIC programming, I had to add the wall-wart supply. The result was hardly elegant, but it worked.
Here we see the interior of the original unit, including the hand-wired protoboard holding the ZIF sockets for the DiskOnChip and Vetra KB-Encoder chips. The Vetra requires some additional circuitry to make it work; since it's basically a custom-programmed Atmel microcontroller, it needs a crystal to run it, and some open-collector buffers to interface it to a standard PC keyboard port. That stack of boards on the right-hand side of the unit, next to the floppy drive, is an Ampro PC104 computer, which basically compresses an entire PC into a board about 4 inches square. They're used in industrial and embedded applications; this particular one is a 486-based unit (yes, they still sell those... think about it, how much computing power does it really take to run a gasoline pump or control the elevators in a hotel?) attached to an LCD controller for the display. The display itself is a surplus Sharp monochrome LCD panel from All Electronics.
Those PC104 computers typically provide a DIP socket with JEDEC-standard memory-device pinouts, so that you can have the computer boot from a ROM or flash-memory module containing your application software rather than using a hard drive. Theoretically, using the device socket as a programming station should be as simple as putting a ZIF socket in place of the regular one, then booting from a floppy disc to do the O/S installation. Unfortunately, there just wasn't enough room to mount a ZIF socket in place of the regular DIP socket directly on the board, so I had to bring the signals up to a socket mounted elsewhere. Since this socket hooks directly into the memory bus, and is not designed to drive its signals over long distances, I had to keep the leads as short as possible and use some shielded ribbon cable. Yes, they do make shielded ribbon cable! It has a flat copper braid running all the way down the cable, sandwiched in between the "normal" multi-conductor ribbon cable and a second layer of vinyl sheathing. I got several feet of it from a local electronics-supply house, M.C. Howard Electronics. It's kind of difficult to work with, because it's not nearly as flexible as normal ribbon cable and the individual wires don't separate as easily... but this particular hack absolutely will not work without that extra signal shielding. Believe me, I tried. So, when I found out that they'd opened up this unit "once or twice" since I'd left, I immediately suspected one or more of the connections on the relatively stiff shielded ribbon had given way and wasn't making good contact with the socket pins anymore.