Maker Pro
Maker Pro

optical punch card reader

(*steve*)

¡sǝpodᴉʇuɐ ǝɥʇ ɹɐǝɥd
Moderator
Jan 21, 2010
25,510
Joined
Jan 21, 2010
Messages
25,510
There are two traditional answers to this problem.

The first was another set of holes used either as part of a drive mechanism, or to optically sense a row. When used optically the hole was often smaller so by the time it "appeared" to a sensor, all of the other holes would likewise be lined up.

Another approach is to ensure that every row always has at least one hole in it.

The first approach which "clocks" the data either optically or mechanically is probably the easiest to do in practice.

For many years I had one of my first programs stored on paper tape. It was printed out on an old ASR-33 teletype about 40 years ago. ASR33 teletypes were nearing the end of their life at that point (certainly in "cutting edge computing" -- it was almost quaint then, they're history now.)

edit: I should have posted this 5 minutes earlier :D
 

mattsains

Jun 8, 2012
35
Joined
Jun 8, 2012
Messages
35
I'm too young to have any cred like you do, BUT I think I'm the last generation to remember life without internet (I first visited the internet when I was about 12)
These young ones with their smartphones and facebooks! ;)
 

gorgon

Jun 6, 2011
603
Joined
Jun 6, 2011
Messages
603
It might be a bad idea, but I want to get this to work in the visible spectrum. I hate buying invisible lights, and I'd also like to use these components for other things later

If you want to use visible light, you should make a baffle in front of the phototransistors, to reduce their 'angle of sight' and to dampen the ambient light.
It might in fact be a good idea to use phototransistors with a base, so you can reduce and bias the sensitivity if necessary. If you want be very fancy, you could measure the ambient light and compensate for this in the phototransistor's amplifier.

Regarding the card, and the clock row. If you use a fixed clock row, you will weaken the card and make it fragile lengthwise. If you use a coding sequence that always have a hole punched for each code position, this would not be necessary. You need to do some calculation but your card will be more solid.

TOK ;)
 

mattsains

Jun 8, 2012
35
Joined
Jun 8, 2012
Messages
35
yes, baffles will be necessary.
Gosh, we could get as complicated as we like with it. Checksums, being able to read the card in any orientation (upside down, back to front)
Oh, and can we get a density of 15GB? ;)
EDIT: unrolls a 15km-long card
 

gorgon

Jun 6, 2011
603
Joined
Jun 6, 2011
Messages
603
Well, going from LDR's to Gb sounds like mocking to me, but never mind.

TOK ;)
 
Last edited:

(*steve*)

¡sǝpodᴉʇuɐ ǝɥʇ ɹɐǝɥd
Moderator
Jan 21, 2010
25,510
Joined
Jan 21, 2010
Messages
25,510
Oh, and can we get a density of 15GB?

Sure!

I calculate the areal density of paper tape is about 40GB per square km.

It's not too far behind current disk technology, which was is only 77GB per square cm in 2010.
 

gorgon

Jun 6, 2011
603
Joined
Jun 6, 2011
Messages
603
Sure!

I calculate the areal density of paper tape is about 40GB per square km.

With a 1 inch wide tape, that's close to 1 time around the Earth at equator. With a reading speed of 110bd, as the KSR-33 had, it's 124 years before you know the last byte. :D

A pity I dumped my old 'Olga' the KSR-33 when we moved last time. :(

TOK ;)
 

mattsains

Jun 8, 2012
35
Joined
Jun 8, 2012
Messages
35
Update: I have since built this thing, and it actually works!

Here is the final schematic. I thought I'd use one of the 4051's I bought by accident, just to make it all look fancy, and also to save four analog-to-digital pins.
7596000880_9ee00ddc97_h_d.jpg


I did a bit of a cheat to attach the voltage divider resistor to the 4051instead of using 5 of them on each phototransistor, because I am stingy. I'm not sure if this is to be frowned apon, but it seems to work.
I have a bit of a problem with the ambient light levels, but that could easily be solved by having a moving-average filter on the values (right now I have just thumbsucked static threasholds)

If you're interested, I'll take pictures of the thing in operation, and post them here.

Thanks for all your help
 

gorgon

Jun 6, 2011
603
Joined
Jun 6, 2011
Messages
603
You could also add a separate optotransistor to measure the ambient light and use that to make an automatic threshold adjustment to your hardware, or measure the value and adjust your ADC readings accordingly.

Good work. Multiplexing the channels will only reduce the maximum reading speed. If you can live with that, no problem.

TOK ;)
 

gorgon

Jun 6, 2011
603
Joined
Jun 6, 2011
Messages
603
Looks great.
You should cover the behind of the optotransistors. The ambient light will filter through the plastic from behind. Or you could paint them black on the lead side, to reduce the false light.

TOK ;)
 
Top