Tuesday, December 28, 2021

Archived a few boxes of cards as the M1000 reader gets closer to full working status

 NARROWING IN ON THE FLAKY SECTION OF THE CARD READER

It was my great luck that for a while the flaky behavior turned solid - the reader wouldn't successfully pick at all. The logic analyzer quickly pointed at the issue. The 1Dark signal was permanently on, but should not be until some portion of the card first passes in front of the photocells to block light. 

That transition from logic low to high for 1Dark is what resets the pick cycle and starts the reading of a card, so this blocked the reader pretty solidly. Each pick of a card appears to the circuitry as if the card was NOT picked up, even though it flew through the machine, so the reader tries again for a total of three pick attempts before stopping with a Pick Check.

I grabbed the VOM and tested each of the 12 rows, showing me that it was the 9 position row that was misreading as dark. As I probed around on the card, the issue went away but I do know it is one of the components or connections for row 9 that is producing the intermittent errors.

As an intermittent error, it will manifest by tricking the logic into thinking the card edge has arrived before it really does, thus it reads with a laced hole pattern at the beginning and the data offset a number of columns. In some cases we get an entire card of 80 laced columns, in other cases it triggers a Read Check. Since it is intermittent I can just re-read or re-verify to get around the issue (for now). 

Offset card due to erratic row 9 signal

NEED TO IMPLEMENT MY MODIFICATION TO SUPPORT CARDS WITH RIGHT SIDE CUTS

I attempted to archive the next batch of cards from tray 10 but received immediate Read Check errors, even on the blank first card. Since I had the logic analyzer wired up, I set it to record and trigger to stop when the reader goes into Stop state, a consequence of receiving a Read Check error. 

I could see that the 1Light signal was active at card column 81 time, which triggers the error condition. That occurs when the punched cards have the diagonal cut on the right side rather than the more usual left side. This configuration of card is perfectly legitimate and causes no issues on IBM mainframe card readers. Not so with the Documation. 

I had developed a fix for my M600, essentially it blocks the output of the photocell for the top row (12 zone) when the reader is at card column 81. It required a small daughter board to be added and some rework on the circuit board, not the most elegant solution. I want to make a corresponding modification for the M1000 but hope to avoid add-on boards since I already took up space by moving the Arduino based controller into the card cage leaving little extra room. 

We need one or two additional gates, unfortunately, on a board that does not have any unused gates in any of the installed chips. The board doesn't even have access to the CR81 signal that indicates we are testing for errors at that column position. Fortunately the CR81 signal is carried on the common backplane connector on pin 13, so that we can tack a wire to the finger for pin 13 and receive the signal. 

Several places use open collector gates, so that they can use wire-OR logic to combine tests on all 12 rows. For instance, to generate the 1Light signal, OC inverters for the rows have their outputs tied together and pulled up to VCC with a resistor. If any of the inverters goes low it pulls the entire line down, thus any combination of rows seeing light through a hole (or past the edge of a card) from 1 to all 12 rows will make the line low. 

There is a key point where an inverter for the row 12 signal path is open collector with a pullup resistor even though it only feeds one gate with its output. If I added an open collector inverter and tied the two outputs together, either could force the combined output low. This particular point considers a low to be the absence of light, exactly what we want. Thus, if we feed CR81 to the new inverter, then it will force row 12 to be dark at column 81 time regardless of whether light is leaking past the diagonal cut. 

We still have the issue of where to put the open collector inverter. Possibilities include implementing it on another PCB entirely and bringing the signals up through the card cage, wedging a small daughter card next to the PCB, or building a transistor circuit that is effectively an OC inverter. 

I believe that I could fit the transistor circuit onto the PCB, avoiding the need for daughtercards or use of gates on other PCBs. I will sort out the best place to install it on this board and then implement the modification. 

MUFFIN FAN GOES INOPERATIVE, SWAPPED IN THE FAN FROM M600 READER

The rear cover of the card reader has a large muffin fan to cool the motor and power supplies inside the base. It began to buzz while not rotating at all. Since I have another reader, the M600, I simply swapped the rear covers and continued working with the M1000. At some point I will look into the fan and buy a replacement. 

ARCHIVED A COUPLE OF BOXES OF SOFTWARE WITH THE READER

Once I had the reader working, with only sporadic induced errors with the row 9 signal, I could archive cards. This reader picked much more reliably than the M600 and makes almost no reading errors. I worked through a couple of boxes of software, reading 100-200 cards at a time but probably could have read much larger decks given the excellent reading when row 9 isn't misbehaving. 

TRAGEDY STRUCK DUE TO A HIDDEN INDEX CARD IN A DECK I WAS READING

Alas, I heard a loud thunk and saw a pick check near the end of a deck I was reading. When I looked closely, I saw that an index card had been inserted between cards with handwritten instructions for how to operate the particular utility program. It is thicker than a punched card so it jammed solidly in the entry throat. The sudden deceleration due to the wedge caused the main timing belt to snap!

Snapped belt

The broken belt

SOURCING A REPLACEMENT BELT

The machine had a Pirelli Isoran 160XL 025 belt that connected the motor, roller pulleys and timing wheel. It does appear that I can readily find a suitable replacement then will have to install it and set the adjustments of all the pulleys to each other. It will be a week before the new belt arrives. 

No comments:

Post a Comment