Interfacing a 1967 Paper Tape Reader: Part 3Follow article
How do you feel about this article? Help us to provide better content for you.
Thank you! Your feedback has been received.
There was a problem submitting your feedback, please try again later.
What do you think of this article?
Close-up of the TRM250 in action with the capstan roller visible under its plastic finger guard. To the right of the capstan, the lamp illuminates the tape as it moves over the photosensors beneath: it’s just about possible to make out the bright bar of light directly over them. The passive friction brake lies under the lowered flap over the tape on the right of the illuminated area.
In Part 1 of this series, I introduced a piece of computing history – data storage on paper-tape – and announced my intention to interface a 1967 vintage paper-tape reader to a modern microcontroller system. I gave various reasons for this seemingly pointless task in that article. Nostalgia is a factor, but I also wanted a vehicle for demonstrating how a product can be engineered for long-term reliability and easily repaired when bits do break. It adds up to what we might call Sustainable Engineering. Part 2 described the interface circuits necessary to make the signals from the reader’s photosensor amplifiers compatible with a modern microcontroller. The recommended design for the clutch solenoid driver from the original technical manual was considered. I decided to work on a less complicated design based on less obsolete components and that’s what I’ll talk about in this article – amongst other things.
Clutch (Pinch-Roller) solenoid driver
The recommended design in the technical manual required twelve components and three different power supply voltages. The new one requires only four, with a single supply rail (Fig.1). Three transistors are replaced by two configured as a Darlington pair and packaged in a single device. A Power Darlington is really useful as an interface between a low-current (mA) GPIO output, and a current-hungry (A) actuator such as a solenoid or motor. I selected the BD677Awith its 4A drive capability and current gain of 750. This particular device has a built-in ‘Flyback’ diode to protect it from high reverse voltages when switching highly-inductive loads such as the clutch solenoid. The solenoid requires about 1A to operate, supplied by a 12V power supply via a 10Ω 25W wire-wound resistor . I kept the varistor from the original design as a kind of ‘belt and braces’ approach to protecting the transistor.
After considering a number of nano-format microcontroller modules including the Raspberry Pi Pico, I decided to design a custom board based on a DIP-packaged Microchip PIC24 device I found in my chip collection. Readers familiar with my FORTHdsPIC projects will spot my laziness here: the PIC24 is essentially a dsPIC shorn of all its DSP functionality. In other words, the PIC24 has a subset of the dsPIC’s instruction set, and a reduced version of its hardware architecture. I have a PICkit 3 debug/programming tool (now available as PICkit 4which works with MPLAB X, the IDE used to develop FORTHdsPIC. The In-Circuit Serial Programming (ICSP) interface between the PICkit and chip itself is about as simple as you could imagine, so what’s not to like? The circuit of the microcontroller section is shown in Fig.2. The specific device I used is the PIC24HJ128GP502. There are just enough GPIO pins available to the job and only a handful of resistors and capacitors need to be added to create a working control system. The only component requiring more explanation is the quad 2-i/p NAND chip IC1; its four gates are wired to form a pair of set-reset flip-flops used to ‘debounce’ the Run-Out pushbutton (RO) and the Tape-Out sensing microswitch (TO) signals. The flip-flop circuit only works with changeover switches and that’s what we have here. The pole of each switch is connected to 0V while the N/O and N/C contacts drive the set and reset inputs of the flip-flop respectively. It’s important not to forget the 10kΩ pull-up resistors otherwise operation could be at best erratic. There is a third sense input monitoring the 9V lamp power side of the Motor/Lamp toggle switch on the front panel. It looks like this signal was a later addition to my machine – probably because operators frequently commanded a tape read without realising the lamp and motor were switched off. A simple potential divider circuit takes this 9V signal (M/L) down to the 3V acceptable to the MCU.The basic function of the MCU firmware will be to convert the parallel data from the photosensors to a serial format using one of the chip’s UART modules. Serial Tx/Rx data signals are brought out to a 3-pin header, and initial testing will involve a direct connection to the host processor’s UART pins with proper RS-232 drivers being added later.
Finally, I mustn’t forget the essential ‘Hello World’ LED. Although it might be given a permanent role later, the main reason for its inclusion is to allow the whole programming/debug system to be checked out with just a few lines of code.
The finished interface board. The nine level-changers are on the left, with the PIC24 MCU in the centre, and the solenoid driver on the right. The chip in the heatsink, top centre, is an LD1117A voltage regulator providing a +3.3Vdc rail from an incoming +6Vdc supply.
Close-up of the clutch solenoid and pinch-roller mechanism. When energised, the solenoid pulls down one end of a see-saw arm, so rotating the other end with pinch-roller attached upwards. The tape is thus pushed into contact with the rotating capstan roller. The spring under the pinch roller ensures rapid disengagement when the solenoid is de-energised. Note the operating arm of the Tape Out microswitch peeking out from the deck next to the open friction brake cover.
The LED Saga
It was such a simple idea: replace the old 48W automotive filament bulb with an equivalent LED version using the same P35s lamp base. I tried several different products with different numbers of LED chips, but none of them produced a reaction from the photosensors. I got some response with a home-made effort but nothing like enough. What’s so frustrating is that the filament lamp works perfectly – even when underrun with 9V instead of 12V and emitting a distinctly yellow light. I’ve come to the conclusion that the optics were designed around light emission from a continuous, vertically mounted filament about 7mm long. A line of discrete LEDs just won’t cut it. So, it’s back to the old lamp, for now. Even when underrun it still takes 3.5 amps and I’m running it off a 9V 4A mains SMPSU.
Using a mains PSU to drive a low-voltage filament lamp had an interesting effect. When switched on from cold, the filament began to glow then slowly faded out. It repeated this a few times, getting dimmer each time until it remained dark. Turning the power off then on again led to full brightness immediately. It did take me a few seconds to remember that the tungsten filament has a resistance characteristic that increases with temperature. When cold, its resistance is near zero so a sudden application of voltage causes a very large ‘inrush’ current to flow. The filament rapidly heats up, and starts to glow ever more brightly until the rising resistance brings the current down to its running value of 3.5A. A normal ‘mains’ bulb will come to full brightness almost immediately because the mains supply can handle the brief but heavy overload. It explains why old, end-of-life bulbs with thin, eroded filaments tend to ‘blow’ just as they’re switched on. It also explains the odd behaviour when powered from a low-voltage power supply, with automatic current limiting. Cycling the power switch immediately afterwards works, because the filament is still fairly hot, causing a much lower surge current. The plus side of this phenomenon could be that current limiting helps to increase the life of the bulb.
Not long ago, building the power supply was an essential part of any electronics project. Nowadays, most projects based around a microcontroller board will probably work off the 5 volts from a USB link to a laptop. This one though, needs five different supply voltages: +3.3V, +6V, -6V, +9V and +12V! The MCU/Logic +3.3V supply will be obtained by regulating down from the +6V rail, but the others will need independent mains inputs. The +9V rail supplies a current of 4 amps to the lamp alone and needs to be kept separate. Similarly, the +12V rail will see pulsed 1A current demands from the solenoid, so again I wouldn’t want to drive anything else from it. I decided the prospect of cramming multiple power supplies into the case involved far too much effort. Instead, I am using four mains plug-in adapters. This approach does have significant advantages:
- No design required.
- No space taken up in the case.
- If current consumption is increased because of modifications, just plug in a beefier unit.
- Unless the equipment is destined for continuous operation, its supplies can be used temporarily on other projects.
Here is a list of the PSUs I propose to use:
GEM06I06-P1J 6V 1A power supply (2 off)
ACM24US12 12V 2A power supply with UK plug adapter
ACM36US09 9V 4A power supply with UK plug adapter
I hope to report on the wiring of all the links between the PTR and its interface box, and the successful testing of the core firmware.
If you're stuck for something to do, follow my posts on Twitter. I link to interesting articles on new electronics and related technologies, retweeting posts I spot about robots, space exploration and other issues.