DIY Punch Card Reader Using a PIC Microcontroller

By Robin Mitchell

 

Modern technology allows us to store gigabytes of information in memory cards that are no bigger than a penny. However, computer users in the past were not so fortunate and had to rely on more primitive methods for storing data. One popular method for permanently storing data was the use of punched card or paper which could be used to store programs or personal information. Incredibly, this technology was used as late as the 90’s and provides a very reliable method for data storage. In this project, we will build a simple punch card reader that be used to read from DIY punched cards!

Punch Card Reader Circuit

You can view a full-sized schematic here

 

How Does it Work?

The circuit uses a microcontroller to read parallel data from the card reader and then stream this data over a UART connection (via TX). This serial connection can be connected to either a computer or other microcontroller so that system can read the punched card. The microcontroller also has a UART receive line to receive the “read character” instruction which starts the motor when executed. The motor stays on until a new clock signal is generated by the card reader. At this point, the microcontroller reads the byte from the card reader and then transmits that over UART.

The card reader consists of 9 paper clips pushed into a conductive base plate. It is important that the paper clips are not under too much stress, otherwise, the paper clips will permanently deform and lose their flexibility. For a long-lasting device, the baseplate should be made from a corrosive material such as stainless steel. In this example, copper is being used for demonstration only.

The motor circuit is a BJT transistor with a protection diode to prevent EMF spikes in the motor from damaging the transistor. The power regulation circuitry (U1) also has two protection diodes where the Schottky diode (D2) provides reverse power protection while the 1N4148 diode (D1) provides EMF spike protection for the regulator.

 

Required Materials

Component

Schematic Reference

Quantity

10K Resistor R1, R2, R3, R4, R5, R6, R7, R8, R10, R11 10
5.6K Resistor R9 1
1N4148 Diode D1, D3 2
1N5817 Diode D2 1
100nf Capacitor C2, C3, C4 3
100uF Capacitor C1 1
2N3904  Q1 1
7805 U1 1
PIC16F1516 IC1 1
DC Motor 1
Paper Clips 9
Metal Plate 1
PIC Programmer

 

Constructing Your Punch Card Reader

The paper tape reader itself consists of 9 paper clips that are cut and bent as to provide a spring-like action. Normally, they make contact with the base copper plate shown in the picture but this contact is broke when paper is fed through. This contact is remade when a hole in the paper appears and this pulls that paper clip to ground (recording a 0).

 

Paper clip bending and cutting

Eight Paper clips as data lines

One paper clip on the back as the clock line

The completed unit

Back of the reader

Tape reader from the front

 

The main circuit is mounted next to the tape reader with fours screws and a piece of wood. The wood helps to prevent the screws from going through the base and this piece of wood is also glued to the main base. Next to the main circuit is an FTDI serial to USB to provide USB output to a serial terminal (mainly for debugging). The motor enable output can be used to connect a motor to the paper tape reader to automatically pull the tape in when a command is transmitted to the paper tape reader via UART.

 

The completed tape reader

Tape reader from the side

 

You can download the project files here: Punch Card Reader Project Files

Recommended Posts

Leave a Comment

+ 42 = 44

Start typing and press Enter to search