Thursday, May 28, 2015

More time dedicated to the typewriter space, tab and carrier return functioning

Yesterday was such a full day that I didn't get to the 1130 system at all. I was able to help repair a power problem on one of the 1401 systems at the Computer History Museum, during my weekly midday visit, the rest of the day was absorbed by my day job and spent the evening helping my wife, who had a dental crisis with an infected tooth, one that had an old root canal but had cracked internally and abcessed.


I did some partial dis-assembly to work on the sticky carrier return restore, the blocked space button and the failure of the tab button to reliably trigger the space/backspace/tab cam cycle. I had to remove a brace, the motor starter capacitor, unhook the main spring, and loosen the tab/rewind pullies.

With the improved accessibility and visibility, I cleared up the escapement issue that blocked the space button from advancing the carrier. It took quite a bit more to fix up the carrier return issue. I unhooked a few parts of the intermediate lever, latch and restore parts to isolate where the binding is occurring.

My work for the day improved the restore operation substantially, but not completely yet. If it was restoring about 30% before today, it is now restoring to 80% and moving much more crisply. I still need it to get to 100% promptly.

I turned my attention to the tab mechanism. The interposer isn't snapping back far enough to trip the space/backspace/tab cam cycle, although the space and backspace interposers work reliably. Something was different about this one interposer.

One difference is that the interposer has to turn on a microswitch during its trigger, which is switched back off by the end of the cycle as the clutch operates. This would add a bit more resistance, but the design should have sufficient spring tension on the interposer to handle this.

Tuesday, May 26, 2015

More work on console printer (1053)


I worked on the typewriter mechanism most of the day. There are a few anomalies on the triggered actions for tab, space, index and carrier return.

The space button triggers a cycle of the space/backspace/tab operational cam, but it wasn't moving the escapement bar to allow the carrier to move forward one space. Something is not connected properly or is jammed.

The release of the carrier return latch lets the latch begin to restore but it doesn't pop back far enough. Same issue as yesterday.

The tab button will set the latch on the carrier but often the interposer doesn't trigger the tab/space/backspace operational cam so it doesn't complete. If i fire it via the space button, it then accomplishes the tab movement to the next tabset.

The index interposer will not restore all the way sporadically, so that the typewriter occasionally continually repeats indexing until it is interrupted. Most times it restores properly.

I didn't want to keep the 1130 system powered on just to work on the typewriter. I wired up the motor to a temporary power cord that I could plug in separately. This lets me work on the console printer independent of the main 1131 power.

Monday, May 25, 2015

Working on 1053 console printer, attempt to rescue fpga board, and checkout of a Tek 7854 scope


When I reattached the clevis ends to the operational mechanisms, the space was extremely limited. I have attached two photos where you can see the black ends, unconnected, and the limited space to reach them. I was able to get them all attached yesterday. but didn't upload the photos until today. Although I call these clevis ends, there may be a more official name as they are slightly different from the canonical clevis fasteners or pins.

Unconnected clevis joints visible in rectangle in center of picture

Actuator arms with holes where the clevis joint will attach

The flaw I still have in carrier return operation is that when the carrier reaches the left margin and the mechanism releases the clutch latch by pulling the release lever, the clutch latch should be moving back up to idle position promptly and completely; instead, it is oozing up partway.

Latch and release on left, but both rods and all circled parts are moving too little, too slow
I haven't yet found the spring that should be helping the clutch arm snap back into rest position. I have examined the parts catalog diagrams, the theory of operations pictures, the maintenance manual diagrams, and visually inspected the actual machine, all to no avail.

I checked on the escapement and tab operations, which led me to rewind the main spring to improve the quality of the escapement (spacing) and tabbing across the entire span of the carriage. I still have the inadequate unlatching of the carrier return latch to debug, plus sporadically the machine goes into repeated index operations until I fiddle with the interposer lever to get it to re-latch.

This warrants checking for a missing spring on the latch and restore functions of the index and carrier return mechanisms. Another anomaly is in erratic (or actually partial) tripping of the tab function. Sometimes, I push the tab button and it doesn't move or actuate, but if I push the space button it completes the tab operation.

All of these seem to be issues in the interposer trip and reset (or clutch trip and reset). It may be residual sludge from forty years of decaying lubricants, or something else, but that will take a bit more diagnosis.

Watching the tab interposer motion from several angles, it is clear that the backwards pressure on the interposer is not strong enough to activate the space/tab/backspace cam on the operational shaft. The spring is not as stretched as the others and is slanting in a different angle than the others. Could be attached to the wrong place. The spot where it attaches is behind the mainspring and blocked by many other levers and plates, but I will find a way to get to it.

Spring that should pull interposer back but isn't strong enough
My biggest concern remains the restoration of the carrier return latch once it is released. There is either way too much drag somewhere or a spring missing or broken. It should be popping up to its stop position instead of moving half-heartedly up to about 40% of its travel, never fully restoring. If I can get this sorted out, along with the tab issue above, the printer should be ready to cover up and put into place. It will take a bit more time.


I made up a JTAG interface cable for the ztex fpga board, since that is a third way I can load the bitstream on the board. While I might whip up a board to automate the loading at powerup using JTAG, my intention is simply to continue testing the SAC box while I wait for the replacement fpga board to arrive. I have been manually loading the fpga on each powerup anyway, after the failure of the onboard flash chip a couple of months ago, so this won't be much different.

I have an Altera USB to JTAG cord (USB Blaster) which I used to attempt the bitstream load via JTAG, but I couldn't find software to use the cord and recognize the .bit format file built by the Xilinx toolchain. The USB Blaster was found but it asserts that the JTAG chain is not working. I think I have the lines correctly assigned but it isn't worth a huge amount of debugging and testing time today.


I recently acquired a Tek 7854, which is a hybrid machine. It is a four compartment 7000 series 400Mhz analog scope, plus a digitizing processor that can capture waveforms and do quite a bit of processing and measurement on them. It is programmable through its attached keyboard. It has a few problems, which is why I got it free, but they seem to be due to a sync failure between the analog and digital driving of the CRT.

Tek 7854 (not mine but same type, different plug-ins)
Normally, when you have 'readout' on to show plug-in settings on top of an analog signal, the scope alternates painting the CRT with a trace and digitally rendering the pixels of the readout characters. Stored waveforms are displayed in the pure digital pixel mode. A master control either authorizes the analog circuits to drive the CRT plates or the digital circuits to drive them (but alternating so fast the eye doesn't notice).

The symptoms are dashes or interruptions in the traces of analog signals, plus bending/distortion of the characters from the readout function. However, when I click the 'readout' intensity to its 'off' position, the dashed interruptions go away and I have clean traces from the analog scope function. If I set up the analog scope to be silent (e.g. no trace triggered), the readout characters look fine. When I display a stored waveform including readout characters, everything looks fine.

The only problems occur when both are attempting to use the CRT - thus I believe one of the sync signals is bad or the alternation logic is malfunctioning. It shouldn't be hard to debug and fix this. The calibration circuit was put through the four plug-ins installed in the machine. The '2' amplifier of the left plug-in doesn't work, but the '1' amp does and both amps of the right plug-in are fine. Both timebases work well. The vertical mode buttons should light when activated, but the "Left" button does not. It selects properly and lets me view the left plugin but the lamp itself is out.

Keyboard for use with 7854 scope
The attached keyboard is slightly stiff from time but works well. I tried differentiating and integrated a stored waveform, plus conducted various measurements successfully. I feel quite good about the condition of the scope, which definitely replaces my lower bandwidth 7000 series scopes. The machine was $17,000 when new in 1990 (add more for the the keyboard and plug-ins). 

Sunday, May 24, 2015

Reassembled 1052 console, working on carrier return issue, while fpga board in interface box is still fubar


This morning I found the pivot screw and invested a half hour trying to get the nut and lockwasher in place to be threaded into by the pivot screw. I have some masking tape holding the lockwasher in front of the nut, with the hole opened up for the pivot screw thread.

Putting the nut/washer assembly on my smaller forceps, I tried to hold it in position to start the thread from the pivot screw, but several projections on the bracket and nearby mechanisms block me from having a direct vertical approach with the forceps. Attempts to compensate by cocking the nut in the forceps teeth didn't work.

I then hit upon the idea of using some soldering tools I had which were spring clips that could hold the nut and lockwasher at their edge, leaving the hole free. With a bit of effort, I was able to get the pivot screw to mesh and tighten. It was easy to finish up, putting back the springs and the shift magnet assembly to finish up this task.

Now, I have to check and adjust the varous mechanisms to get this to tab, space, backspace, return, index and of course type properly. First up, I had to unlock the various latches that were set while I worked on the typewriter. The original problem that caused me to remove the magnet assembly was failure of the carrier return mechanism to unlatch - which I suspected was due to a missing spring being somehow wedged inside interfering with the CR release.

One big zone of impaired visibility was between the magnet assembly and the operational clutches, but I have just eliminated that by the dis-assembly and re-installation I finished today. I now have to look in a number of nooks and crannies that are covered by many other arms, pivots, levers, gears, rods, springs etc.


Using the USB microscope, I could position the wire well enough to tack it down with solder. I had a bit too much solder, creating a bridge between leads 70 and 71 of the USB chip, but I was able to use some wire braid to wick up the excess solder. It appeared that the wire was attached to the proper pin with no shorts to adjacent pins.

I attempted to load the fpga bitstream, an operation that worked before the damage I had caused but alas it still failed with an error that the 'Done' line didn't go high. I suspect this means the lines I have connected to the USB chip are broken on their way to the Xilinx Spartan 6 chip. Since these pins are balls hidden underneath the chip (a BGA surface mount type), I won't be able to access them to tack on a wire.

The flash is not visible to the USB chip, meaning I have more damage than I thought. I am down to one route to possibly load the fpga, otherwise the board is pure junk. I have the JTAG pins accessible on the external connectors, which might allow me to load it from the bit file with an external circuit I build on another board.

I did pick up a inexpensive fpga board, based on the Altera Cyclone II, which seems to have enough IO pins to use as a slave board. It does not have a USB link on it thus it can't be a substitute for my ztex board. At less than $30, it is a good option for supporting major peripherals such as disk or tape drives, linking them to the SAC Interface Box.

Saturday, May 23, 2015

Began reassembly of 1052 console printer mechanism, plus failed attempts to tack the jumper wire on the fpga board chip lead


I began reassembling the operational selection magnet assembly, which I know has some very very difficult reassembly steps due to almost nonexistent service clearances. However, I am currently stuck on what should be a simple task.

One screw has to hold down a bracket on the side, but the straight line path that a screwdriver would take is blocked by two screwheads jutting out from another assembly. They are too close to find a very short screwdriver, perhaps 1.5" from the screw I have to turn, but close enough to make any screwdriver have to fit at an angle.

That makes rotating it to start into the hole threads a very difficult problem. It is inside where I can just about hold the screw with two finger tips, or with a forceps, but can't rotate it without putting sideways torque and skewing it so it won't enter the threads.

I spent an hour in a near infinite cycle of positioning, turning, skewing and eventually dropping the screw. Finding and picking it up begins the next cycle. This isn't the 'hard' part of the reassembly. which involves attaching five clevis hooks onto rotary arms up inside the inaccessible bowels of the mechanism. These clevis fit onto the actuator rods of the five magnets in the assembly I am installing.

To install a clevis, which can rotate around the rod on which it is fastened, you need to pry one of the two arms away from the other. One arm has a cylindrical pin that fits inside a hole in the actuator arm up inside the machine. The other arm holds the pin inside the hole; it has to be pried apart to allow the pin to slide over the actuator arm edge and find its hold in the center.

Thus, one hand to hold the arm with the pin. One hand to hold the other arm and pry it apart. One hand to stop the clevis from rotating, twisting the arms away from alignment. One hand to hold the clevis over the actuator arm and push it down to get the pin into the hole. That is four hands in a space that is deep inside a mechanism with perhaps 3/16" clearance on the sides, too small for even a small finger to enter.

I had no need to worry about connecting those clevis rods, since I had yet to get the screw into its hole which is one step earlier in the sequence. Fortunately (?), I was finally able to get the screw started and begin connecting clevis rods. The first two were rather easily snapped onto the arms.

After a break, I went back to work on the remaining three clevis connections. Within an hour I had them all attached properly. I have a few more parts to install and then a couple of adjustments that must be made. A pivot arm trips a microswitch to indicate the period during which the 'long' actions are in motion - those are tab movement and carrier return, which take a variable length of time depending up on how far the carrier must move to reach its target, either a set tab or the left margin.

The pivot screw is held by a lockwasher and nut that are inserted inside a bracket where fingers can't reach. I have to figure out a way to hold the nut and lockwasher in position so that I can place the pivot arm on the other side of a bracket and then thread the pivot screw in place. It will be tedious but not otherwise complicated.

The magnet assembly I just attached is adjusted to put the armatures just below the actuating arms they serve and to ensure that the armature end of the clevis rod is a bit forward compared to the actuating arm end. Not particularly finicky adjustments, easy to spot and then I tighten three mounting screws and one mounting nut.

With the assembly adjusted, a spring is attached from one of the mounting screws to the pivot arm. I can check the pivot arms and microswitches to be sure they are closing appropriately when the mechanism is actuated and opening when it relatches.

Microswitches for the shift mechanism then have to be remounted. I needed the bracket they are on swung out of the way while I worked on the magnet assembly. They may need adjustment too.

I closed up the shop before installing the pivot arm and screw, after the pivot screw fell somewhere I couldn't readily find. At least I had a method for holding the washer and nut in place . . . if I only had the screw at the same time.


Gave another try with all the magnifying and lighting tools I have, but I just can't see well enough to position the wire, know it is touching the right lead, and then to apply the solder to tack it down. Based on a suggestion from a blog reader, I bought a USB microscope, to try to lower the cost of the tools I will need to buy. It will arrive late tonight.

The microscope has limits on its field of view and focus distance, but otherwise should give me an accurate enough image. I may not be able to work while the microscope is in position, due to tight spacing under the unit, but if I can position the wire in place and hold it there with decent accuracy, then I can solder with the lesser magnification of my other tools (I think).

Tonight, when the microscope arrived, it was too dark and late to work on the board but I could experiment with the microscope itself. It seems to work great - should be just what I need, even with the shroud in place. Tomorrow I will put it over the board and determine how helpful it might be. There is a chance I will have to remove the plastic shroud that protects the LED light ring and camera lens. 

Friday, May 22, 2015

One small step away from fixing the FPGA board and resuming testing of the SAC Interface


I contacted the fpga board vendor to see if I can modify the order before shipment to switch to express delivery, 2-4 business days. Fingers crossed on this one, as it would get me back in testing mode much sooner.

I next set up my lighted magnifying lens and looked more closely at the board, in conjunction with the schematics and the fpga pin assignments, in order to see what possibilities might exist for repairing the damage.

I found that the signals going to the flash chip are accessible on leads around the outside of the USB module nearby on the board. I first did some verification of the connectivity and correctness of my information. With that verified, I could solder the flash chip to the 7 remaining pads. The final step was to solder on a bridge or jumper wire between pin 2 of my flash chip and the appropriate pin on the USB module.

Tacking the 30 ga wire wrap lead to the pad of the flash chip was easy. The tough part is getting the wire soldered onto the lead of the USB chip. The leads are .012" wide with just .014" gap between them. The copper wire is .01" diameter which is an appropriate width but alignment has to be pretty accurate. If I am off more than one hundredth of an inch, I will be touching an adjacent lead.

This evening I received, not a response to the emails I sent about changing the shipping, but an automated confirmation that the board has shipped the old, slow way so that I won't have it until near the end of June. Disappointing and it makes the need to fix the existing board all the more urgent if I am not to incur a long enforced holiday from the testing.

I tried quite a few ways, but the real limitation is my eyesight. None of the magnifying lenses and lights I have allow me to see a 1/100' inch copper wire on top of a green coated PCB, at least not well enough to be sure of the contact, angle and to allow me to touch solder a .01 x .01 spot. I can use various clamps and jigs to hold the board and the wire, but if I am not sure that it is in contact with the lead properly and not able to see where my soldering tip is placed, I am not going to be able to get the wire tacked down.

This may require an investment in a stereo microscope to allow me to proceed. Tomorrow I will give it another try with the best magnification gear I can set up, before I have to go buy a microscope.

Thursday, May 21, 2015

In the last inches before the completion line, defeat was snatched from the jaws of victory, with a big snag

I helped my daughter and son-in-law move to their new apartment this weekend and up thru Wednesday, which ate up all the time I would have spend with the 1130. My daughter was driving over to her new place to meet the cable modem installer when her tire blew out.

After AAA mounted her spare, we took the car to replace the tire during the time we were moving boxes into her apartment. Tuesday, my wife and I picked up the car and drove over to swap it for the one we loaned my daughter, when five minutes away from our destination we had another tire self-destruct! As you will read further down in this blog entry, it is a week of unforeseen failures.


I made a few changes to the core store/fetch logic and began testing, hoping to quash that last annoying hiccup. The logic analyzer shows the main link FSM jumping backwards for one cycle to a state it had already vacated, but there is no path in my VHDL to make that movement.

I asked the tool to use one-hot encoding to ensure against glitches, which should block such undesired movements, but this could be an instrumentation error rather than a real logic error. The analyzer I am using is an open source unit based on an old fpga board, which adds a third possible source of contaminated data.

Once I found the conditions that led to the glitching of states, I worked on the basic transactional flow until I felt it was solid. At that point, I began testing the core load and virtual 2501 driver functionality to see whether it now passed muster, free of small anomalies or glitches that could cause sporadic failures.

Everything was looking good, although I found one of my data lines going into the 1131 was not working properly. I think I located and fixed the loose connection on the driver board. Before doing more testing, I decided to replace the serial flash chip that was not working on the fpga board.

I dealt with the serial flash chip problem on the fpga board, by removing the presumably bad chip in order to solder a replacement into place. Alas, catastrophe struck.  I damaged one of the pads during removal, even though I thought I was careful enough.

I examined the board to find a way to solder in a way that would create an electrical contact for the damaged pin (pin 2), but that does not seem feasible. It is possible that my only recourses are 1) a replacement board or 2) an external JTAG oriented board with a flash chip to hold the power-up file.

I have just ordered a replacement fgpa board, which should come in three weeks; meanwhile I could continue to load the fpga after powerup manually, as I have been. However, to underscore the major setback I suffered, when I tried to load the fpga directly as I had, the firmware no longer does the load. The 'done' line is damaged somehow, probably it was part of the trace to the damaged pad.

At this time, I can't load the fpga so I can't test anything until my replacement board arrives three weeks from now. I may find a way to restore the fpga loading function, or even to repair the board pad, but at present I am blocked from any futher work on the SAC Interface.