Monday, May 21, 2018

Beginning to install USB interface into Documation card readers


Having built both boards, it was time to install them into the two card readers I own and test them out. The faster of the two reads at 1000 cards per minute, although I have not yet used it. I decided to work on this one first.

First step was to hook up power and verify basic functionality - at least the ability to develop vacuum, blower pressure and to recognize the proper states of the machine. That was the plan, but the power cord was incompatible in an odd way.

The other Documation has a NEMA ML-2R receptacle - this has two curved blades and a hollow center tube for ground. The plug ML-2P is the female side for the hot and neutral blades plus a male center ground pin. That is the standard configuration of the NEMA ML-2 connectors.

The 1000 CPM machine has a receptacle with male blades AND a male ground pin, which won't mate with the standard plug. I have ordered a standard ML-2R receptacle and will install it when it arrives.

In the meantime, I wired up the plug directly to the machine and turned on the power. The power light lit up, in stop mode, with no vacuum or blower. This is the normal condition it should be in. Once cards were placed in the hopper, I hit the Reset button which should spin up the vacuum and air blower in preparation of Pick commands from the interface.

The vacuum, blower and card movement mechanisms spun up, although I could hear some rubbing or grinding which suggests either lack of lubrication or bearing issues. This was mostly good news, although the circuit breaker tripped after about 30 seconds. I tried it a few times, always with the same result.

Time to pull it all apart and begin checking out the power supplies, filter capacitors and motors to determine what is causing the overcurrent. I am hoping it is bad filter capacitors, but we shall see.

As built, the Documation card readers have a design flaw that will suffer false read check errors if the punched cards being read have a diagonal notch on the right side of the card. While most cards have a left side notch, there is no reason that a right side one can't be used. Unfortunately, the notch allows enough light to leak through that the logic believes the card has cleared the photocells too early.

The checking logic of the Documation tests at certain times to be sure the card is moving through appropriately. When the card edge first reaches the photocells, it blocks one or more row cells and starts the timer for reading columns.

The first check is when we are at column 0, the one before the first real data column. The presence of any light on any row is an error, since the card should not have any holes at this position.

The second check is when the card reaches the column after the end, column 81. Again, there should be no holes punched so the logic tests that against the photocell signals. This is where we have our problem with right notched cards, since the row 12 photocell picks up a little bit of light and triggers the read error.

The final check is at the time of column 84, which should be past the end of the card. Indeed, the test is that all 12 rows should see light, otherwise the card timing is off.

I developed a fix for the readers, implemented in my other reader and in Marc's machine. I block the signal from the row 12 photocell when we are at column 81 time. The only time this fix will miss an error is if the card has only a 12 punch in column 80 and is off by one position. Hopefully, the column 84 check will correct for this, but it is an extremely rare error.

In practice, decks are read twice, verifying that the same data is captured for every card. This would catch a problem if the unlikely situation occurred where my fix blocked a read check that should have occurred, since the slippage won't happen the same way twice.

To make the fix requires me to introduce a NOR gate at one point in the circuit that tests for any lit row. This happens at the open collector inverter chip at 8D, where the output of one inverter (pin 2) is routed to be the input of the next inverter (pin 13). This path is a trace that runs directly underneath the chip, so to cut it I either have to remove the chip temporarily or cut and twist up the leg of the chip.

I pulled the chip and will clean up the board, then wire in a small daughter card with the NOR gate on it. The NOR gate is connected to the Column81 signal as well as the inverter output of 8D pin 2, with the output of the NOR gate connected to 8D pin 13. The card also gets connected to +5V and ground of course.

Chip removed, time to do some cleanup and cut the trace
Looking at the trace, however, shows me that I can't just cut it. The chip, a 7405, is an open collector hex inverter. That means that each of the inverters needs a pull-up resistor to work. I can see that the pull up resistor is connected to pin 13, then through the trace to pin 2. If I cut the trace between 2 and 13, then there is no pullup for the inverter whose output is 2.

I could go to plan B, where I twist pin 13 of the chip up so it doesn't touch the pad. I can then take the signal from the pad over to the NOR and bring that NOR gate output back to the twisted up pin of the chip.

However, there is an easier way, where I do cut the trace. The wire from pin 2 that runs to the daughter card will get its pullup from the small card, and the original pullup on the main board will serve as a pullup for my NOR gate. I chose a 7433 chip, which is an open collector NOR gate, which works perfectly for this purpose. Thus, I only have to run wires from the pin 2 and pin 13 pads over to my daugther card.

The daughter card gets its Column81 signal from the backplane connector, a simple matter of tapping the trace as it comes out of the socket. The +5 and ground rails are easy to access to complete the connection of the new boards.

I have the parts for the daughter card on order, which I will finish up as I install the new interface board. Before that happens, I will switch over and work on the 600 CPM model, which I know works because I recently used it to read 7000 cards. 

No comments:

Post a Comment