Punched Tape Reader Peripheral for 8008 Emulator

Some good ideas combined with some idiotic mistakes, and it worked anyway

Similar projects worth following
A paper tape reader from scratch, as a peripheral for emulators, etc. This was integrated with an 8008 emulator (at

Punched Tape Reader Peripheral for 8008 Emulator
It occurred to me that I could build a tiny paper tape reader for my 8008 emulator (see I have some mechanical paper tape readers I've resurrected from industrial equipment combined with new electronics, and a few punches. But I wanted to build a purely optical, pull-through reader from scratch that would match the size of the 8008 emulator.

This is one of those projects that seems conceptually easy, but actually building it was physically challenging for a lot of reasons.

Punch tape works in a 0.1" universe, which is still the way that I work, mostly in the pre-surface mount era. So, my plan was to make an optical head with photo transistors and big 1206 surface mount infrared LED's shining through/reading through one side plated-hole prototyping board. The appropriate nine holes (one for the sprocket/timing hole, 8 for the data) would be drilled out to the size of the paper tape holes. Vishay BPW17N optos were used. Note that common 3mm LED's and optos won't work for this application, because 3mm x 9 = 27mm, and the tape is 1" wide (25.4mm).

I made a sandwich of  boards, optos on the bottom, LED's on the top, with a very thin spacer of thin PCB fiberglass material taped to the board with double-sided tape like that used on modern Apple equipment. Alignment was crucial, and I was careful to solder the LED's so that the die wound up in the center of the holes.  A flashlight helped me align the boards during taping, showing through the three-board optical perfboard sandwich.

The bottom board, which plugs in,  contained the HC165 which would relay the data back to the ESP8266.  The principle was, the small timing opto hole lets light through last after all of the other holes (if any) have lined up. Upon the falling (rising) edge of this, the HC165 data is latched and the ESP8266 is interrupted, and then the ESP8266 clocks the data out of the HC165. i wrote a test program on an ESP8266 to help me debug the hardware.

The recommended way to do this, with optos being analog devices, is to use Schmitt triggers, but the ESP8266 doesn't have this as an option for I/O. I THOUGHT I could do this anyway with careful interrupt timing. Boy, I was wrong. It didn't work no matter what I did.

So, the electronics board was replaced with a board with the HC165 and two 74HC14's (hex Schmitt triggers). Due to space limitations (the box was already made), I could not use sockets and had to point-to-point these with wire wrap wire (VERY nasty). This worked, finally - sort of!

I really didn't give much thought to the brightness of the LED's or the sensitivity of the optos. The optos went through 2k resistors, which made them highly insensitive. Worse, the "tiny" 1206's were amazingly bright. Of course, you can't see the IR from them, so I used a GoPro clone camera with no IR cut filter to view them. They were incredibly bright. I had to put a 500 ohm pot (not good practice) to vary the brightness from very bright to nearly fire-starting. NOTE: Doing this, I discovered that modern phones/cameras all have IR cut filters and you can't use them anymore for detecting IR (like, from a remote).

I made "test tapes" with my punch. These tapes were basically each bit repeated, then the "not" versions of each bit repeated, then alternating patterns thereof. I was testing for "show through" and "crosstalk" in addition to getting the hole/no hole levels right.  Although I found a brightness level that allowed Mylar and black paper tape to work, my "gray" DECtape and cheap yellow fanfold tape did not work, and no adjustment to LED brightness would help. Show-through was a problem, both with the tape and also with the green perfboards themselves.

Getting this in a case was also a challenge. Wood rails were made to slide in the assembly, and front/back pieces were made from aluminum...

Read more »

  • Documentation Delayed due to Bad Chip

    Steve L11/20/2018 at 05:43 0 comments

    The project was somewhat stymied by other commitments and also by an amazing failure of a simple chip. I was putting the finishing touches on a "confidence test" for the paper tape reader, and suddenly only all '1"'s would read. It turned out that the HC165 used for serialization to the ESP8266 just simply stopped clocking out data right in front of me.  Part of the problem in debugging it was that I simply could not believe it. The failure was in the smaller reader (shown to the left of the 8008 emulator) that I built first - the photo details of the build of the PTR  are actually of the second build,  which was large enough for sockets. The first build was smaller, and because I added in the HC14's later, I did point to point wiring of the two HC14 and HC165 chips, which was very nasty, and potentially impossible to fix.

    What I would up doing is cutting out the HC165 up to the plastic body of the chip, putting in a new HC165 with the legs folded in, and soldering the legs of the new chip to what was left of the legs of the old chip. This actually worked! however, I did not replace the 0.01uf decoupling capacitor on top of the chip, and there is a bit of noise causing a misread about every 500 characters.

    I suppose that proves that the decoupling capacitors were needed... :)

    I'll fix that soon, and when I do, updated code and schematics will be available.

  • Second Attempt: Still Mylar Only, But Better Built

    Steve L11/03/2018 at 23:37 0 comments

    Second Attempt (electronics only): Better, Still Mylar/Black Only

    (The photos of internal workings in the gallery are of the second attempt PTR Module)

    So, using some lessons from the first build, I built another, using a mask made of  copper PCB material drilled out for the optos. I also considerably thinned the guide slot by using 0.015" PCB material and the double-sided Apple tape. On this unit, this mounts to the LED board, making assembly/modification much easier. After a few weird component issues (an LM117-3.3 putting out 4 volts and a dead opto, easily found with the test tape and program) this worked better. I still made the 1.000 slot for the paper tape a bit too wide; I corrected this with "cat whiskers" on either side of the slot made of resistor trimmings to fine-guide the tape. This worked VERY well, with no "cross-talk" or show-through problems. But....I still can get good reads only from Mylar or black tape. I suspect that I will have to use op-amp comparators or something like that in attempt #3.  Still, this electronics module is a good build and I will probably use it with an 8080 emulator project.

View all 2 project logs

Enjoy this project?



Steve L wrote 11/06/2018 at 12:16 point

They pull very easily at even fairly high speed, and have enough friction to stop them from going backwards. A small (non-stepper) motor with a shaft and some pulleys with o-rings could probably work through a slot on the top board. I didn't pursue this because I've bought fairly inexpensive stepper-fed paper tape readers on eBay and swapped out their electronics with interfaces more to my liking. Those are much easier for loading longer programs - but those units are larger, of course.

  Are you sure? yes | no

Dave's Dev Lab wrote 11/05/2018 at 20:30 point

interesting work! were you looking into the mechanical portions of feeding the tape as well?

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates