Wang LOCI-2AC Restoration 2020
We started the restoration by disassembling the machine and looking for damage. We found that the power transformer mounting legs are bent, and the chassis sheet metal where the feet attach is also bent. We attempted to bend the chassis and transformer back into the original shape. We removed the screw that was floating in the bottom of the chassis. It came from the keyboard.
We removed all of the boards and the keyboard. We connected a Variac before the power cord so we could slowly bring up the voltage and see if anything was shorted. We connected a DVM across each electrolytic capacitor, paying attention to the polarity markings on the capacitors, and set the Variac to 10%. We could see voltage on the NIXI, the +10VDC, and the -10VDC power supplies, except that the polarity of the +10VDC supply was reversed. On closer inspection we found that sometime in the past the capacitor for the +10VDC supply was replaced, and they installed it backwards. Usually an electrolytic capacitor will get damaged and start leaking if it is installed backwards. We will remove the capacitor, see if we can reform it with the right polarity, and measure its capacitance to see if it is working OK. If not, we will put a smaller modern capacitor inside of the existing capacitor tube to make it look original.
The boards were very difficult to remove from the chassis. we cleaned the connectors with alcohol and will apply DEOX-IT to the card edge connectors on the keyboard and the boards to improve the connections and lubricate the contacts.
The reciprocal switch in the keyboard works, but takes a lot of pressure to get it to switch. We have another keyboard in the spares kit, so we should be able to make one good one out of the two.
We don't have an extender board for this system, so getting a 'scope probe on individual signals during debugging may be a challenge. It looks like matching card edge receptacles are available, so we could make an extender board.
We reformed the 25,000 uF capacitor on the -10 VDC supply. It works very nicely. We removed one lead from the 3,000 uF capacitor for the +10 VDC supply. The brown electrolyte squeezed out of the end of the capacitor and had hardened. It probably failed a long time ago. We found an identical capacitor on eBay, but rated at 30 V instead of 15 V. It will likely be larger diameter, so hopefully it will fit OK.
We soldered a jumper wire across the broken AC breaker so we can power it on. We replaced the broken 5,000 uF capacitor temporarily with a 10,000 uF. We should have a replacement 5,000 uF capacitor next week. The replacement capacitor is identical to the original except that it is rated for 30 VDC instead of 15 VDC. Hopefully the diameter is not too much bigger and will fit.
We installed the 1501 and the 1401A NIXI display and slowly powered on the system through a Variac. After the AC voltage got to about 60% a zero was displayed in all of the NIXI tubes except for the fourth from the left which was blank. We swapped the third and fourth from the left NIXI tubes and powered it on again. The fourth NIXI from the left was still blank.
We tried the 1401A NIXI display board from the spares kit. The second NIXI from the left had just a little of the zero displayed at about the 4 o'clock position.
We installed the rest of the board in the LOCI and the display worked almost correctly. The left most digit looked pink compared to the rest of the digits so we swapped the NIXI tube for a spare. Looks much better now.
The +10 VDC supply makes 12 VDC, the bias supply is making 6.6 VDC.
We started testing functions. Without reading the Reference Manual we were guessing about what buttons to push. It will add and subtract, so some parts are working.
The S1 and S3 registers drop the second digit from the left when transferring W->S and then S->W. The S2 register returns all zeros. The S0 register looks it works OK.
We swapped each board, one at a time, with the spare boards. None improved the behavior, and the Teletype card really made it behave worse.
It will add and subtract, but none of the more complex functions work.
During the week we will study the documentation and see if we can come up with a debugging plan.
It is showing some signs of life!
We bought a replacement 3000 uF capacitor for the +10 VDC power supply. We were not able to find an exact replacement, so we bought a 30 VDC rated capacitor hoping that it would fit in the limited space. Unfortunately the 30 VDC capacitor is much longer and won't fit. Today we found an exact replacement on eBay, so in two weeks we will replace the temporary capacitor with the correct one. It will not change the behavior, but it will look as original.
We checked the operation of all of the keys on the keyboard. There are problems with the storage registers where the S1 register doesn't work and the others change the second digit to a zero.
We read the LOCI-2 Reference Manual again. There are examples of how to use the calculator at the end of the sections that describe the registers and their use. We found that we were not even close to operating the calculator correctly, and by following the examples were able to get all of the math functions to work except reciprocal of a square. This looks to be a problem with the switch on the keyboard. The switch on the spare keyboard feels better, so between the two keyboards we should be able to get one functional and cosmetically good looking keyboard.
We replaced the +10 VDC capacitor and the circuit breaker. This time we were able to find the same capacitor that was originally installed, so it fit perfectly. We couldn't find a 1.5 A replacement circuit breaker so we replaced it with a 2.5 A that has the same part number and looks identical. There is a screw in the back of the breaker that is probably used to adjust the trip point. It is flush with the back on the 1.5 A breaker and inside by about 2 mm on the 2.5 A breaker.
We connected an Amp-Clamp to the power cord and measured the current draw at 1.2 A. Looks reasonable.
The new capacitor at the top and the new breaker at the bottom.
We connected one of the two card readers. We set the STEP/AUTO/MANL switch in the STEP position, pressed P0 to set the Program Counter to 0, and repeatedly pressed the RUN key. If the contacts in the card reader are working correctly all of the Operation Code lights will be on. In some cases some lights were out. Squeezing the card reader changed the pattern of lights. We cleaned the contact pads with a Scotchbrite, DeOxIt, and alcohol. The card reader works much better, but is still not perfect. Exercising the contacts by opening and closing the card reader many times will likely fix any remaining problems.
We noticed that moving a number from the W register to the A register dropped the second digit. After a few minutes this problem went away. We probably have a transistor or diode that doesn't like being cold.
It looks like all of the S registers drop the second digit. The S2 register drops all digits.
We tried replacing the 1410A board that holds the S registers in core with the spare, but the spare board is completely broken.
Our LOCI is a model 2A so it has 16 S registers in core memory. They are visible in four blocks, and the MSC controls which block of S registers is visible. The STEP MSC button cycles through the four sets of S registers and uses a 4 and 8 light to indicate which set is available. The 4 light for the MSC was not working, and the inverse square button next to the light didn't feel right when pressed. We disassembled the keyboard and found that the 4 light was leaning towards the inverse square microswitch and blocking its motion. We bent it back upright along with the 8 light for the MSC. We tested the inverse square microswitch and it works OK. We reassembled the keyboard and the 4 and 8 MSC lights work OK. The inverse square switch feels OK when pressed, but doesn't cause anything to happen. We will have to trace the signal from the switch to see where it goes and what is broken, probably the 1501A at the very front.
You can see the 4 light for the MSC leaning over to the left and interfering with operation of the inverse square switch
We started punching the first diagnostic program that is listed in the back of the LOCI Reference Manual. When we put the LOCI in STEP mode so we could check the program we found that the Program Counter would not carry from 3->4. Running the program showed it executing the instructions 0->3 and going back to 0. The Program Counter is on the 1408A board, so we swapped it with the spare. Now we can STEP through the program and run the first two parts of the program. We punched the rest of the program and gave it a try. It works OK for the first, second, and fourth test cases, but consistently fails the third test case. If we single step the program it works OK. In this test case it should load 34.56789012 onto the W register, copies the W register to the A register, clears the W register, and copies the A register back to the W register. In the failing case the W register displays 30.16789012 so it is dropping the 4 bit for the second and third digits. This may be caused by a weak transistor in the PC or A register.
We soldered some wires to the 1 bit output of the flip-flops for the first digit of the W-Register on the 1402A board, and to the collector output of the Shift-Pulse circuit. When we press a key on the keyboard we saw nine pulses with a 300 ns rising edge, 12 us high, then it heads low quickly and goes from -.2V to -2.4, and then it takes 18 us to go the rest of the way down to -5.8V. The flip-flops go to ground for a 1 and -6V for a zero.
I was surprised to see 10 shift pulses. I expected to see the register shift one bit for each key press as it shifts the digits left to right in the register. That would not work because the digits would be in the reverse order of what you typed. They could have entered the digits on the right (LSB) side of the register and shifted them to the left for each new digit. This is what modern calculator does. They chose to always rotate the register by 10 digits and then splices in the digit from the keyboard into the correct position in the register while it is being rotated. There has to be a counter somewhere that determines the next location in the register for the new number. Maybe they use the NIXI blanking register for that? They also need to loop the output of the W-Register into the input of the W-Register to rotate the register. We haven't found the circuit that does that. We also haven't found the circuit that takes the BCR encoded number from the key press and splices it into the W-Register while it is being rotated.
We are making an LTspice model of the W-Register at the component level so we can simulate the register's behavior and better understand how it works.
This is the W-Register on the 1402A board when a number on the keyboard is pressed. Yellow is NR SHIFT LINE, light blue is 1/, purple is 2/, blue is 4/ all at the input of the W-register. The data at the left is the LSB of the W-register being rotated into the MSB of the W-register. For each pulse the register is rotated one character. The data is encoded in 4-bit BCD. The 8 bit is not shown. The numbers from left to right are 9, 8, 7, 6, 5, 4, 3, 2, 1.
We are using this machine to test the boards from from the other LOCI. We need to test the 1406A board from the other LOCI because it looks like it has a stuck 4 bit. On this LOCI, entering any series of numbers works OK, except for patterns 000400000 will change to 0000000000. This is probably a problem in the 1406A board.
We did some speed measurements for calculating the Natural Log of some numbers.
ln(0)=invalid, e^x(0)=160 ms, 70 steps
ln(1)=95 ms, e^x(1)=115 ms
ln(2)=95 ms, e^x(2)=115 ms
ln(3)=115 ms, e^x(3)=170 ms
ln(4)=90 ms, e^x(4)=80 ms
While the natural log or anti-log is being calculated the intermediate results are displayed in the W register so they are displayed on the NIXIs. Using an oscilloscope we can see the W register being updated during the calculations, so we can see the intermediate results. We tried to capture the numbers on the NIXIs with a camera in movie mode, but the numbers were displayed too quickly to capture.
We used this system to test the 1406A boards from the LOCI-2A and the spare board. We tested the transistors and diodes that make up the A register, and they all look OK. We watched the state of the flip-flops while we transferred data from the W register, and could not see any state changes. We now suspect that the gating logic that connects the output of the W register to the input of the A register is broken. This circuit is made from LOTS of diodes, to it will take some work to test everything.
The LOCI seems to work OK at power up, except that the 1/square button doesn't do anything
1/9/20 What Works and What Doesn't
CLEAR ERROR: Toggles the ERROR light. We need to check if this is the correct behavior. (it is)
PRIME: Clears the display to all zeros with the decimal point at the far left. The sign is +.
CLEAR W: Clears the display to all zeros with the decimal point at the far left. The sign is +.
Numeric Keys: The 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, and . keys all enter that digit in the display.
CHANGE SIGN: Changes the sign between + and -.
W>A: Entered 123456789.0 into the W-register (display). Pressed W>A. The display changed to 123056789.0. I believe that the W-register has to rotate when the contents are copied to the A-register. After entering 4444444444 and pressing W>A the display showed 4444444444. After entering 4000000000 and pressing W>A the display showed 0000000000. Pressed CLEAR W and the display changed to all zeros with the decimal point at the far left and the sign is +. Pressed A>W and the display changed to 123056789.0. After being turned on for several hours the W-register is working OK. We need to check the behavior of the flip-flops in the W-register.
A>W: After the machine was turned on for a few hours we could W>A, and A>W without changing the contents of the registers.
W>L: for values less than 42.00000000 we can do a W>L and L>W without changing the display. Numbers 100.0000000 or larger result in an error. 42.00000000 changes to 40.00000000. 43.00000000 changes to 41.00000000. 44.00000000 changes to 40.00000000. 45.00000000 changes to 41.00000000. 46.00000000 changes to 40.00000000. 47.00000000 changes to 41.00000000. 48.00000000 stays 48.00000000. 49.00000000 stays 49.00000000. 50.00000000 changes to -41.99999999.
L>W: See above.
-: Performs subtraction between the L and A registers. Works OK.
+: Performs addition between the L and A registers. Works OK.
STEP MSC: Cycles through the four sets of S registers. The 8 light is hard to see and the 4 light is not working. On 1/9/21 we disassembled the keyboard and repositioned the 8 and 4 lights. They work now.
A>S0, S0>A: The second digit is always returned as a zero.
W>S1, S1>W: All digits are returned as a zero.
W>S2, S2>W: The second digit is always returned as a zero.
W>S3, S3>W: The second digit is always returned as a zero.
RUN: Runs a program at the current PC. When in STEP mode would cycle 0->1->2->3->0. On 1/9/21 we replaced the 1408A board. It works correctly now.
Fails the third case in diagnostic test #1. Need to check the W and A registers for a weak transistor.
What has been replaced:
The 1.5 Amp Circuit Breaker/Switch with the same model but 2.5 Amp
The 3000 uF filter capacitor for the +10 VDC power supply with the same part
The 1408A board, Program and Decrement Counters plus Storage