Wednesday, December 11, 2019

Beeping out the rest of the Control Logic board to verify traces and schematic, found a big problem

MISSING AND BONUS COMPONENTS VERSUS SCHEMATIC

I spent some time reconciling the components found on the PCB and in the schematics. Once I had my spreadsheet in good shape I was able to quickly locate parts for beeping out connections.

I discovered quite a few that were on the schematic, in the range of R82 to R88 along with associated capacitors from C64 to C67 that were not on my board. Where these parts were shown on the schematic, straight connections existed.

Two resistors, R80 and R81, were added onto my board as a rework in an unprofessional style that led me to believe that the prior owner added these on their own. Another component R77 on the PCB was found to be in line with a connection that is a straight wire on the schematic, thus it was deleted in later boards.
R80 added under U1B

R81 added with tubing and loose resistor
I also found that resistor R76 was not on the schematic and the board has a 0 ohm resistor installed, thus this was a rework to the schematic version of the circuit from an earlier version of the board.

TRUDGING ALONG BEEPING EVERY PIN TO ITS OTHER END(S)

After another two hours I had the rest of schematic page 2 verified. Perhaps I am speeding up a bit, based on a new method where I first extract all the tests from the schematic as a list of connections; a made-up example would be U4A 4 - U2A 2 - U5E 10- R22. When I had a full page of connections listed, I could swing through with the continuity tester and check off each as it passed. Thus I projected that my average speed for the remaining four would be 3 hours per page.

After only another hour I had page 1 complete - quite a speedup. Page 3 went a bit slower but by the time I reached the end of that page, without having found any broken traces, my confidence in the basic integrity of the board had grown substantially. I could still have bad ICs, since I have already found seven of them, but the board continuity is sound. I had a dinner appointment thus work on pages 4 and 5 started the next afternoon.

I wrapped up work on page 5, finding no missing connections to components. It was time to hook this back up and begin checking out the various circuits as I introduced inputs.

ODDBALL MEASUREMENT OF OPEN COLLECTOR INVERTER OUTPUT

One part of the logic that controls the BACKWRAP output signal is an open collector inverter, pulled up to +5V by a 10K resistor, whose output is feeding two AND gate inputs. When I measure the resistance on the inverter output pin U6E 10, I see 5K to up to +5V but the pullup resistor R79 is 10K.

Portion of the BACKWRAP signal circuit
I lifted the pullup resistor from the circuit and measured open circuit. I measured the lifted resistor as 10K. When I soldered it back in place, the measurement on U6E pin 10 went back to 5K ohms. There would be no resistor in the output circuit of U6E but perhaps some interaction with the AND gate inputs is giving me the reading.

THAT 'DOH' MOMENT

Look carefully at the schematic excerpt above, at gate U2J. I read that as 74LS00 and installed one in the board, but in fact the gate is a dual input AND, while the 74LS00 is a dual input NAND. The correct part number is 74LS08N.

After I checked all the other chips I replaced with74LS00, looking at the schematic carefully, I knew that the five such chips I declared bad based on the boolean logic behavior were in fact supposed to be AND gates.

I will remove all five (again) and populate them with the correct chip. To be safe, after the soldering I have to beep out all connections from the 70 pins, but that will be pretty quick compared to the comprehensive scan I just finished.

Sunday, December 8, 2019

Seventh chip replaced, testing resumes at a snail's pace

After replacing the bad 74LS05N chip, I repeated the test to verify that the BACKWRAP output signal would float high if hooked to a suitable pull-up resistor, while the machine was in the idle (REST) state. That did not happen, and it appeared to be the fault of the the same gate. It had a low input, open collector inverter gate with a pullup resistor on the output. This should result in a high output.

Suspiciously, the resistance from the output pin to +5V was measured as 5K but the resistor is marked 10K. This leads me to think that a trace is shorted to some other trace with a 10K resistor as well, producing the reading I found. If the other trace is another open collector output that is pulled to ground, it would match the behavior I saw.

I have been testing connectivity to every pin as I solder in the replacement chips, but that won't show me shorts to additional traces. I will have to find it by trial and error, coupled with hints from the schematics such as OC gates with 10K pullup resistors.

The board has 90 chips, quite a few capacitors and so forth, plus a ton of resistors. The location of the resistor on the PCB is almost random, often nowhere near the chips it is connected to. Further, the numbers hop around randomly by location. It forces me to carefully search the board for each resistor I want to locate, wasting significant time.

To make this easier, I decided to use a high res picture of the board in order to build a spreadsheet for all the components. The chips are labeled strictly by their physical location on the board, but nothing else is so conveniently numbered. The chip rows are numbered 1 to 6 and the columns are labeled A through J.

Therefore I will apply that location scheme to my spreadsheet. Parts below row 1 of the chips are in component row 1, parts between rows 1 and 2 are in component row 2, and component row 7 is for parts above the top row of chips. When a part is to the side of a column letter, I will use the letter to the left of the part. Any part to the left of the J column will be marked as component row K.

My first pass looked at components on the board, placing them in their site by the scheme above. The second pass covered the five pages of the schematic, identifying each component with its page number and approximate spot on the page. I used a Left-Center-Right and Top-Middle-Bottom grid for the schematic locations.

I was left with a few components I could see on the board but not on the schematic. Other components were drawn on the schematic but no visible on the board. I suspect a version mismatch between the board and the schematic. The first signal I traced out which had components on the schematic but not on the board was an input line that had a series resistor and capacitor to ground, intended as a debouncer, but beeping the circuit showed that the input line went directly to the gate. Thus, I will have to contend with the documentation mismatch.

I began a very tedious process of beeping out all the connections between the chips and to the input/output pads. With 90 chips having an average of 14 pins, plus a couple hundred non-chip components on the board, there was a lot of testing to complete. In many cases, one of the pins is fed or leads to a part on a different schematic page, so flipping and recording of source/destination is necessary.

I began randomly with schematic page 2. I realized that once I had tested all the off-page connections from this page, they were tested whenever a signal ran from another page back to 2. This will speed up my page flipping as I advance through more completed pages.

More discrepancies between the schematic and the board arose. For example, when the loading state machine enters the Wrap state, a timer was triggered that on the schematic had a 15K resistor and 100uf capacitor, but on the board I found a 470K resistor and 2.8 uf capacitor. Those combinations are about the same RC constant although with very different currents during charging.

It took me about two hours to complete 1/3 of a schematic page, thus a linear extrapolation would put the remainder of the task at 28 hours work. Some of the pages are sparser and there will be the speedup effect dealing with off-page connections to pages I have already completed, but a conservative estimate is another 2 or 3 days elapsed time.

Friday, December 6, 2019

Continuing debug of control logic board

I proceeded to push the L/Rew button by temporarily grounding the appropriate input, while watching the state machine for an advance to WAIT before timing out and ending at LD CHECK state. Initially it didn't work, which I traced to the reset of the state machine forced by leaving the IN-LIM-1G0 input high.

This signals that the tape is in the vacuum columns between the low and high points. Once the tape has loaded like that, the load sequence is over and reset is forced. I added a wire to pull it to ground which then allowed the L/REW pushbutton to advanced the state machine from REST to WAIT.  It sat there until the timer expired, then jumped forward to load check state.

In between each such test, I 'push' the Reset button by grounding its input, to restore the state machine to REST and to clear all errors. This process worked fine. I won't document this step any further but will reset between every test attempt.

I also checked that the appropriate outputs such as BACKWRAP were activated while in WAIT. This is an open collector output, thus I had to pull it up with a resistor before probing the output pin. When in the idle (REST) position, this signal is pulled high but upon entering WAIT it is pulled low.

Another initial failure, as the signal was always on (pulled low). I traced through the signals that generate this output to see whether there was another input I needed to force low or high. I analyzed the gates to figure out what would make the output normally high but drop low while in WAIT.

The key signals and their required state, in order for the BACKWRAP to be triggered only in the WAIT state, are:
  • CRT-PRS-0X0 should be high, indicating that an autoload cartridge is not present
  • TAPE-PRS-1G1 should be low, indicating that the tape is not in the path near the tape head
  • P-EOT-SW-1S1 should be low, indicating that the end of tape is not near the entry slot
  • WRAP-1+2-1G0 should be low since the state machine is in REST or WAIT
  • HUB-V-SW-0S2 should be high indicating that tape is not wound around the take-up reel
  • THRD-1+2-1G0 should be low since the state machine is in REST or WAIT
With the conditions above satisfied, the output of the BACKWRAP signal is high (logically off) until the WAIT state signal goes active which drops the output to low to signal to the reel motor preamp board that it should slowly rotate the supply reel counter-clockwise.

I fired up the board, left it in the default REST state and probed all the signals above to determine which ones were incorrect. I immediately found another bad chip (U6E), a 74LS05N hex open collector inverter. When I measured the resistance of the output to +5 (pull-up resistor in the circuit), I got about 500 ohms but the resistor in question was 10K.

I looked at the pullup values of the other five inverter outputs, then calculated the equivalent parallel resistance if all six outputs were shorted together - 556 ohms. I removed the chip from the board, confirming that all outputs were shorted to ground with the chip unconnected. Time to replace it with a good chip and hope that I don't have too many other blown chips waiting to pop their heads up as I check out the logic.

Tuesday, December 3, 2019

Replacing defective chips on the drive B Control Logic board

FINISHING SOME CHIP TESTING

I did look at the outputs of the 96L02 since it has both Q and Qnot, which must be different. The LM311 op amps I tested by swinging the input voltage and watching the output. The open collector 7416s drove off board circuits and had no pullup resistors, so I added it to the probe and performed the irrational combination test. The only chips for which I had no test at all were the NE555 timers and the ULS2003 which drove indicator lamps and thus was open collector too.

DEFERRING THE DECISION

I began to remove the bad chips, letting the effort involved determine whether I will continue to take all of them off and replace them. The method I used makes use of a vacuum desoldering station, a soldering station and clipping away the chip body.

I snipped off all 14 leads up at the chip body, removing the IC itself. This left me with short metal pins that were soldered into the board. I attached forceps to each pin, dangling on the underside of the board, while I applied heat on the top side of the board. The goal is to have the pin pulled out cleanly.

Once all the pins were removed I couild use the Hakko vacuum desolderer with a small tip size to suck the solder out of the holes. That gave me six chip sites with all the holes clean and ready for the new chip. My decision was made - time to replace the chips with new ones and continue testing.

VERIFYING THE SUBSTITUTE CHIPS ONCE SOLDERED TO THE BOARD

I have a supply of all chips on hand, so I began merrily installing and soldering the 84 pins to the board. Before I power up a board where I have replaced chips, I do some continuity testing to ensure that the pins of the chips are hooked into the circuit per the schematic. This is particularly important with the visible desoldering heat damage at one location.

New chip in place - some heat damage to board on lower right

Resoldered pins on the bottom of the board
For the 74LS14 chip, I had to check the six inverters, testing that the input came from the other components on the board and that the output went to its intended destination component. I found a problem with one of the inverters - the input pin was not connected to the resistors and capacitor as it should be. The solution is a small wire from pin 13 of the chip to the resistor.

The other five chips, each a 74LS00N, have three three-input NAND gates apiece. This means I needed to verify connectivity of 60 pins, 12 per chip. Fortunately, all checked out fine, so only one rework wire needed.

The final complication to sort out was existing rework on the board, consisting of several small blue wires that connect to various chip pins and other components. I wasn't sure what this was doing, so I recorded all the connections, located the chips on the schematic, and drew out the purpose of the rework.
Part of the rework I found on the board
Once I began tracing it out, I found that these were replicating connections shown in the schematic. That suggests that these were added to compensate for broken traces that occurred at some prior time. Another sign that this was an old and perhaps scrapped board stuffed into the cage after the shipping damage.

INDUCTOR REPLACEMENT NEEDS REPLACEMENT

The inductor I bought from Anchor, a 100uh axial, has almost 5 ohm resistance. Since this is a choke on the 5V input to the board it is going to drop a fair amount of voltage - for example if the board draws only 100ma then the inductor will cut the 5V supply to 4.5V at the chips.

Digikey had a replacement that can handle up to 1.3A with just 0.2 ohms resistance - a much better component for the board. It should arrive in a few days and I will swap it for the inadequate one.

Check all ICs on Control Logic board for irrational combinations

IRRATIONAL COMBINATIONS

Each logic gate type has defined behavior. The simple combinatorial gates in particular have easily checked conditions. The inverter must have opposite states on the input and output. AND gates must obey the logic equation, only having a positive output if all inputs are positive. Of the 15 types of chips on the board, eleven fit this category where some combinations of states represent a failed chip.

The NE555 timer chips have defined behaviors but no irrational combinations to check. The LM311 op amps do not have illogical combinations but I can check their behavior by varying the input signals thus they can be separately checked. The

CHECKING ALMOST FIFTY CHIPS FOR IRRATIONAL COMBINATIONS

I printed the data sheets of all the possible irrational combinations so that I could perform the checks on the logic board. Previously I had pored over the five pages of schematics and built a list of the chip types at each of the 94 locations. Armed with this, I powered up the board and began stepping through all the chip tests.

I found quite a few bad chips. This board had previously had a missing inductor and a broken resistor, then I discovered a bad inverter chip which is why I thought I would do a scan for irrational combinations prior to replacing the inverter.

The final tally is five 74SL00 and one 74LS14 chips.

MY SUSPICIONS ABOUT DRIVE B

With this many chips bad, I suspect this is evidence of insurance fraud. The reason for my suspicion is the signs that this board failed in service on some other drive. With the high number of bad components, it would have been either sent for rework or scrapped.

However, since a shipper damaged the drive with a forklift, the entire drive would be written off by the insurance company and the unit scrapped. By rights, the intact boards inside belonged to the insurance company.

If an unscrupulous organization took the opportunity to swap out all the good boards, repopulating the card cage with bad cards, they would avoid the charges for the bad boards and obtain good spares from the drive that is now property of the insurance company.

Other explanations are possible so I can't be totally certain. When the drive fell backwards and bent its frame, perhaps the shock broke leads inside the IC packages. It is a very high number of chips to have damaged like this, but it is possible.

The five bad 74LS00 are all marked El Salvador, but the 74LS14 is not. Some of the good 74LS00 are also from El Salvador and that is the only source for all the 74LS00 chips. There may be a bond on the chip, as it was made in that factory, that is susceptible to shock, leading to a high failure rate. The fact that only 6 of the 84 chips failed and that five of them were this type, may support that theory.

As a counter theory, the board has pen ink marks on some pins of the chips, which likely occurred as a technician traced a path while debugging the board. Once they discovered that six chips were bad at a minimum, they likely tossed it in the scrap pile where it waited until a drive was damaged in transit.

PLANS FOR THE BOARD AND FOR DRIVE B

The major hassle in reworking these six chips is that I have to clear solder from 84 pins to remove them, then insert the replacement chip pins in the partially clogged holes. The cost of the chips is insignificant, it is the time and effort that looms large.

There is no guarantee that the chips which passed the irrational combination tests are working properly, only that they weren't provably bad like these six. Some other bonds may have failed or portions of the chip dies might be bad but not show up with the particular combination of inputs at idle.

Since I am doing this restoration for the hobby fun, having no purpose for the drives once they are running, I have to think a while about whether to proceed.

Monday, December 2, 2019

Chasing faults in second drive Control Logic board

HOW BACKWRAP SIGNAL IS GENERATED

Gates that produce the BACKWRAP signal
As we study the schematic above, it shows that the BACKWRAP signal is produced by both inputs to AND gate 215 being high. Essentially this is active in the WAIT state of the sequencer when the autoload cartridge is not detected, but can be broken by sensing the physical end of tape and by a few other error conditions.

VERIFYING THAT BACKWRAP IS ACTIVE

I set up the bad control logic board in the tape drive, with probes hooked up to pin 07, the BACKWRAP signal, as well as to one pin of the binary-decimal decoder chip that indicates whether the sequencer is in the WAIT state.

At power-up the sequencer should be at the REST state and therefore we should not be producing BACKWRAP. My tests showed that BACKWRAP was floating low and that the REST state was NOT active! At this point I need to do more debugging to figure out what is happening.

PREPARING TO TEST OUT OF THE MACHINE

I pushed on my 70 pin connector to the board in preparation for wiring up the power rails and beginning testing. I happened to check connectivity between the VCC pins of the TTL logic and the +5V input and immediately found my (first) problem. The choke inductor L1 that connects the +5V from the backplane to the rest of the board is missing!

100uh inductor goes here
I took a quick run to Anchor Electronics for the inductor, then soldered it onto the board. I took the time to wire up the power and input lines from the connector to the terminal strips I also bought. This gives me a 1x20 and 1x15 for each side to cover all 70 positions (eventually).

Initially I chose only 35 wires to solder, still a tedious task. Making matters worse, one of the pins broke off on the connector. I was able to tack solder that wire back, just in case I need to simulate the End of Tape (EOT) sensor input which is assigned to that pin number. .

With everything in place, I hauled out my triple power supply to provide the +5 and -12V DC voltages to the board. Another power supply provided 12.6VAC which let me fully power the board.

Most of the inputs have pull-up resistors on the board and depend on a sensor or switch connecting the line to ground in order to activate it. That is convenient because I could leave most lines unconnected and still get reasonable behavior.

BENCH CHECKOUT OF THE CONTROL LOGIC BOARD

First up was power application and a sanity check of the state of various outputs and internal gates. I wanted to ensure that none of the movement command outputs were active (low) and that the loading state machine was sitting at the REST state initially.

Indeed the state machine was at REST and none of the REV, FWD, WRAP and other movement oriented signals were active. However, when I 'pushed' the Load/Rewind button the sequence didn't advance. I looked at the circuitry that should trigger the step input to advance the load state machine.

I found that the logic asserts that the L/Rew pushbutton is active, so I traced back to see why this is happening. The switch itself activates to ground with the line pulled up to 5V when inactive. It passes through an inverter so that the low logic level of the active pushbutton turns into a high level for use to advance the state machine.

Both the input and the output of the inverter are at logic high level! Since the button isn't pushed, the input makes sense but the output should be low. I checked the operation when I grounded the input to simulate the pushbutton. The input to the inverter does move properly but the output is bad.

I decided to check the other inverters on that chip to see if there are any other gates in the chip showing incompatible logic levels. Indeed, the very next one I checked was also showing high-high so the chip is blown. I located another 74LS14 chip on the board and found that its gates had compatible values on the inputs and outputs.

Before I replace this one, I will do a sanity check on all the chips on the board, looking for illogical combinations of inputs and output. I would prefer to assess the scale of the problems on this board and identify if any other chips need replacing so I can do them all at the same time.

I need another trip to Anchor to pick up replacement chips for any that I don't have in stock.

Sunday, December 1, 2019

Studying Control Logic to allow me to debug loading and repair second PCB

STATE OF THE CONTROL LOGIC PCBS

I have two boards, one from each of the two tape drives. One of them is clearly defective, because the supply reel will slowly rotate at power-up. The other is seemingly working, but I do have the problem that my drive won't autothread successfully nor dump and go ready successfully.

I would like to repair the bad board which is justification enough to study this board and debug it. But, it is possible that the other board is not working properly causing the loading faults, thus it would be great to debug that one as well.

APPROACH FOR DEBUGGING

I could attempt to record all the signals as the boards work while installed in the drive card cage. The other method I can use is to hook it up to a connector on the test bench and provide suitable input signals, thus verifying its behavior with full access to all component leads as well as the board connector signals.

This needs to be powered with +5V, +12V, -12V and 12VAC, thus I need my triple power supply and a separate AC source. The PCB connector is dual sided, 36 fingers per side. 53 of the fingers are used for inputs and outputs, another 13 for the power connections. Six are unused, but I need a convenient way to hook up to the 66 that are active.

Some will be permanently wired (power and steady input signals), some will be probed only to watch outputs, and the others will be variously toggled on and off to drive the logic board through its paces.
Pushbuttons command actions such as Load/Rewind, tape drive sensors report on the presence of vacuum, tape at various points, light at the BOT sensor and so forth. These need to be switched.

ANALYSIS OF CONTROL LOGIC

This board monitors the operator pushbuttons (e.g. Load/Rewind, Reset, and Unload) to perform the requested actions. It monitors the photosensors looking for the beginning of tape and end of tape markers and the sensor detecting that the take-up reel is almost empty of tape. It sees the vacuum and pressure switches that detect a auto-open cartridge, tape wrapped around the take-up hub, vacuum in the vacuum columns, and the end of the tape present near the entry throat to the tape path chamber.

A large potion of the logic is involved with the autoloading capability of the drive. This is centered on a state machine built with integrated circuits, not a controller or microprocessor chip. A binary to decimal decoder chip outputs one of eight valid states of the machine or has all turned off for the remaining inputs.

The state machine assumes each new value by a trigger signal. It is a line that is raised by combinatorial logic when one of the conditions occurs which should cause a state transition. As such, the circuitry is mainly asynchronous rather than clocked.

At power-on or when the Reset button is pressed, the flip flops are set to zero and the decoded state is 0 - the REST state. The first event that occurs to cause a clock to change the state is when the Load/Rewind button is pressed. This causes the decoder to output a 1 for the WAIT state.

The trigger signal to advance the state can be generated to kick off autoloading by the Load/Rewind button, but it also is generated by two classes of events. First, a physical sensor is activated, such as when the tape is detected wrapped around the take-up reel hub. Second, a timer goes off if the desired activity has not completed in the alloted time. .

In each of the states where some physical action has to occur, such as the two above, a 555 timer is set. The timer can be set to various durations, all multi-second. If the physical sensor is triggered before the timer pops the timer is reset and the state machine successfully advances.

The single 555 timer is used to provide several different time intervals by switching in resistors. Three transistors are used, switching in a 330K, 200K and 100K resistor respectively. The highest selects an 8.5s interval. In addition to three times using a single resistor, more than one can be switched in to produce additional durations.

Some logic on the board will drive the tape forward or in reverse, either momentarily while a test switch is pressed or in multisecond cycles driven by a pair of interlocked timers. This is for manual testing.

Commands either from the tape control unit or the test switches request the capstan to move tape forward or reverse. The control unit can simply move the tape or it can watch the data flowing from the read board or send data to the write board if it is performing a read or write. Rewind and Unload are two other commands that can come from the control unit or locally by button presses.

Each state of the autoloading sequencer commands different behaviors from the two reel motors and the capstan. For example, the BACKWRAP command rotates the supply reel counterclockwise until air pressure flips the end of the tape over the vacuum sensor hole near the entry to the tape path chamber. This is during the WAIT state.

After detecting the end of tape, the state machine advances to THRD-1 which asserts the WRAP command to cause the supply and takeup reels to both rotate clockwise. This feeds the tape into the tape path chamber, down through the head and out to feed onto the take-up reel.

Other logic on the board will control the rewind and unload processes, much simpler than the autoloading process thus only needing a few flipflops and not a state machine.

HINTS FOR WHERE TO LOOK FIRST TO DEBUG THE BROKEN CONTROL BOARD

The bad behavior manifested by the broken control logic board is counterclockwise rotation of the supply reel immediately at power up. This would be caused by the BACKWRAP command being asserted even though the autoload state machine is still at the idle REST state.

I can probe the state of some pins on the backplane while the broken board is installed. After I verify that BACKWRAP is asserted, I can check that the state machine is in the REST state. If so, the problem is in a few gates that generate BACKWRAP. If not, the state machine logic is not working properly. Either way, I can dive in from there.