Ever want to go back to the “good old” days of computing, when all coding was done on punch-cards? OK, maybe you don’t, but it’s always fun to combine old technology with new concepts, like this interface that let’s you tweet via punch cards.
The first step in making this clever retro-computing experiment was how to actually read the cards and transmit this information into a modern computer. The reader was made, after a brief attempt using mechanical contacts, with a series of infrared LEDs and photo-transistors salvaged from an HP print station. These LED/transistor pairs were attached to two plastic cards so that when a punch card is passed between the two, it can tell whether a hole is punched or not.
This data is decoded by a Teensy 3.1 per IBM model 029 keypunch codes found here. This Teensy microcontroller then acts as a USB keyboard to the “mother” computer, transmitting whatever text equivalent is contained on the card. If you’d like to try this kind of experiement yourself, you can find the code on TimJay’s GitHub page, or you can just follow “it” on Twitter.
So far the reader hasn’t said much, but I’m hopeful there are some interesting quips on the horizon!
15 thoughts on “Punch Card Interface Now on Twitter”
Nice. Now, I can read all those programs I wrote back in college.
“Face Down, 9 Edge First”
I can see one possible issue with this, though — it can’t count blank columns. There’s no per column clock pulse. But, you could fix this, by “reading” the “1” row markers, using a retro-reflective sensor, tuned to discriminate between the ink and the card background. It would be a bit tricky to tune, I suspect, and you’d need to account for holes, perhaps it could also have a detector under it and would replace the IR LED for that row.
Thinking a bit about the tuning for “1” vs card background — you have a processor, so adaptively varying the current through the LED might do it. But you woul dneed cards with a “1” in every column, all along the row, and no pesky divider lines to break up the pattern.
Now, you’re going to need an 029 card punch. Finding *that* may be a bit more challenging…
Or you could use a motor to feed the card through. I think a stepper motor might be simplest since it would be easiest to calibrate it.
Pinch roller with an encoder on it
I don’t think that there is a valid “blank column” on a punch card. So this might not be a problem. I think the minimum is 1 hole punched, and the maximum is 3.
Unless you are in cool. Then you run a card through a few times to get all holes punched. Then you read it through your punch card machine in duplicate mode. CHUNKA CHUNKA CHUNKA!
Blank columns are indeed valid…
I like the stepper motor feed idea best
You are right, thanks for setting me right dbell5!
I think I may have an old manual punch block hidden away somewhere.
It was a machined aluminum plate, with a cover that had holes for each position and a tethered punch tool. Very much like a manual voting punch, right down to the hanging chads!
I would buy that off of you. (ebay?)
The elegant solution, but one which perhaps doesn’t handle blank columns at the left side of the card, would be to derive the feed rate from the measured width of a punch.
Overall, I like the stepper motor feed solution the best. Use the measured punch width and location to recalibrate for slippage.
Because of the clocking problem, we’ve been discussing modern alternative methods of reading punchcards over the past 20 years on a mailing list I’m on. There’s no reason not to snapshot the entire card, and deskew and detect holes entirely in software. I did some experiments with it using an old sheet-feed paper scanner, a “small document envelope” and a full-sized sheet of colored paper (for hole contrast) and even wrote a bit of C code to look for the outline of the card in the TIFF file from the scanner. One trick was to scan the backside of the card which almost never has printing on it. It just made the detection software easy because of less “noise”. These days, it shouldn’t be hard to take a Raspberry Pi and PiCam and pass cards in front of the unit and decode them in real-time with a script.
I learned FORTRAN programming on punched cards in 1981 which was the last year my university used them for the students. This brings back a lot of memories.
How fun! Just a comment: I suspect the author meant it more as “back in the old days,” but the “when men were men” toootally threw me off this article, especially on Make. Besides, most or at least many of the early punchcard operators were women!
True in commercial environments, but at University, operators were students, punching their own programs, so (almost) equally men and women. Probably skewed more towards men, as we had an engineering school.
My wife worked behind the counter, running jobs. I repaired Teletypes used for timesharing. Talk about obsolete skills!
It was definitely meant to be tongue in cheek, and I meant no offense to women in computing/technology! Thanks for reading, and I’ll see if I can get it revised.
Sold a few 029’s in early 80’s. We had a card sorter and punched a different number on each color of card and on tours I told people it sorted the cards by color. I had to make a card reader for computer merit badge in boy scouts, our group was the first in iowa to get the badge. We used recipe cards and used straight pins 4 or pins for each hole and tinfoil on a door you closed the card in.
Comments are closed.