reading cards

Babbage, probably inspired by the control mechanism in Jacquard's fabric looms, 


proposed using punched cards in the Analytical Engine for three purposes:

  1. Operation cards that hold the "instructions" for the computer
  2. Variable cards that specify which locations in the Store (memory) should be read or written
  3. Number cards that hold constants needed for the calculation
His card reading mechanisms most often used a six-sided cylindrical object he called a "prism" that the cards were wrapped around, draping down below for as many cards as needed. The front-facing side of the prism was advanced against a serial of pins or rods, which would either be pushed by the card or not, depending on whether there was a hole in that position. The movement of those rods would control other mechanisms in the machine.

(Remember: you can click to get larger versions of all the images.)

The rods shown here (drawing A/094 from August 14, 1841) are in pairs, linked so that when one goes in, the other goes out. That obviates that need for some other mechanism to restore the pushed rods to the inactive state before the next card is read. Babbage also, of course, required that the rods be locked in position when the card retreats. 

I have spent the last few weeks building my version of the card reader, which seems finally to be working. My cards implement 24 rods in pairs, so they hold 12 "bits" (Babbage would not have used that terminology) of information. Each rod has a central section with a rack that links it through a small pinion to its paired rod. Here are the rods, and the horizontal locking bars with small cups that engage vertical pins in the center of the racks.

 

Here is a top view showing the prism with cards wrapped around it, and the mechanism that rotates the prism to go to the next or previous card.


The jumble on the left are 12 "bell cranks" that convert the horizontal motion of the rods into vertical motion transmitted down to the rest of the machine, which for my prototype is the "21st century" section of switches and stepper motors that temporarily take the place of 19th century mechanical controls. Designing the bell cranks to avoid interference was quite a challenge.


To link the cards into a chain, Babbage variously talked about using flat tapes or cords. Jacquard loom cards use cords. I experimented with various ways of stitching the cards together with a continuous cord, but never found an acceptable scheme, so at the moment I'm just tying each pair together at the corners.



The protuberances on the sides are alignment pins that settle the card into position as it rotates onto the prism. But it can't be too far off, so I made this jig to keep the cards at the right distance from each other when they are being tied.

The cards fold, accordion-style, into nice piles at the level under the prism. 


Making the cards out of 80 PT (0.08" thick) Kraft cardboard chipboard was fun. I first tried using a hand leather punch, but the holes were not clean, and were not positioned accurately enough. So I used this as an excuse to get yet another new tool: a 65W CO2 laser cutter. It's overkill for this application, but I can also use it in the future as a better way than my router to cut holes in the 3/8" acrylic framing plates.

The challenge in cutting cardboard with a laser is finding settings that cut completely through without igniting the cardboard. Eventually I did, but the initial attempt amusingly produced this:


Each card for this reader has 12 "bits" that would have individually controlled mechanisms in the rest of the machine. (Actually they are "trits", because one of the options is to have both holes of a pair of rods punched, in which case the rods don't move and the operation is "same as before".)

But just as a modern-day test, I decided to consider each card to be holding two 6-bit binary numbers representing characters in "sixbit ASCII", so I can encode a message in a series of cards. Here's the card reader in operation, showing at the end the message being decoded.


The "CB", of course, stands for "Charles Babbage".

Comments