Vintage Computing Paper Tape Reader

Using the reader

To use the paper tape reader, simply connect it to a Windows 10, Linux or Mac OS computer via USB. The reader should automatically register as a USB CDC device (communication device class, a virtual serial port).

Start a terminal program of your choice and select the right (virtual) serial port. No need to set the baud rate etc., since no physical serial port is involved. The reader will start sending data as soon as you pull paper tape through.

Before the first operation, or when switching to a new type of paper tape with very different transparency, calibrate the reader as described below.


Two LEDs on the Pro Micro board are used to signal the operating status. They are labelled on the detector PCB:

FEED flashes once for every valid feed hole detected during operation and calibration. CAL indicates that calibration mode is active, or that a calibration is recommended.

CAL indication meaning
Steady ON Calibration mode is active
Flashing, 1 Hz Waiting for user to start calibration (press CAL button), or for 10 s timeout
Flashing, 10 Hz Error during the calibration process
ON in read mode Invalid brightness levels have been read (no clear high or low). Recalibration is recommended.



Three different tape widths can be set via jumpers. Setting them properly is recommended to avoid “CAL” indications from invalid detection levels at the tape edges, and to mask invalid bits from the output bytes.

Tape width Tape/bit placement Jumper settings
8 bit 76543.210 5BIT=open, TST=open
7 bit - 6543.210 5BIT=set, TST=set
5 bit - - 432.10 - 5BIT=set, TST=set

Setting only the TST jumper will activate test mode, where the raw ADC readings from all 9 channels are printed on the output in an endless loop. A high value, up to 255, indicates high brightness.

The INV jumper will set the reader to use inverted intensity thresholds, i.e. a logical ‘1’ or an active feed track pulse are signaled by a dark light level. This is useful for reading paper tapes which have not been punched, but printed on light paper – for demonstrations or tests where real paper tape and a punch device are not available. Since the light levels will be lower in this case, it is recommended to replace the resistor array RN1 by a 22 kOhm array.

TX is not a jumper, but an output. All data read from paper tape will be transmitted as a serial data stream (9600 baud, 8 data bits, no parity, 1 stop bit, 5V TTL level). This is meant for interfacing legacy equipment. Neither calibration data and prompts nor the raw ADC readings in TST mode will be transmitted via this output.