Sunday, March 8, 2015

Attempt to fix bad solenoid for column 60 of the 1132 printer, plus completing construction of boards for SAC interface

1132 PRINTER RESTORATION

I measured the coil for column 60 and found it to be an open circuit. I removed the bolts holding the magnet assembly in place and will move it out of the printer and begin looking more closely at the coil. Best case it is a broken external wire. Worst case, I assumed, I swap it for column 120 then rewind the bad coil.

With the magnet assembly pulled out and open to more detailed inspection, I began by verifying that it was on open circuit but that the wires appeared to be connected. I then wiggled the wires various ways in the hope that the break is somehow in the external lead which can be bypassed, rather than inside the winding of the coil itself. It does not appear to be this case.

Magnet unit removed from printer and ready to test out the solenoid of column 60

I removed one pair of armatures to check the left coil which is an open circuit

Wires removed and checked to see if the leads are the problem

Unhooking wires from what I thought was a group of 12 magnets

This is actually a single bar with 24 solenoids left to right
My hope that I could pop the magnet from column 120 and swap it with column 60 does not seem very practical. Magnets are assembled on bars of 24 across, not individually mountable. I can't even swap the group that includes 60 with the group that includes 120, since those two groups are on a single bar. Any swap of a bar with another only moves the bad magnet in a narrow range between columns 56 and 60.

The coil itself is pretty firmly attached to the external metal core which concentrates the field under the actuator arm. I see what appear to be two thin spikes that were driven down between the coil and the core around which it sits, one on each side, to force the coil firmly in place. I tried prying the coil upwards gently but it didn't budge. I can't tell if there is an adhesive in place or it is simply the wedges holding it so tight.

The next step is to attempt to extract one wedge and gauge whether the coil will loosen and be amenable to extraction. There isn't a good angle to get a tool in to grasp the wedge, alas. The removal of the bad coil might be a fully destructive process for that coil, leaving me remnants to use as a template for a replacement coil that would need to be manufactured anew. That isn't a great option.

I thought about building something similar in concept to gear pullers that are used to remove gears or pulleys from the ends of shafts. However, there really isn't enough clearance. I might be drifting towards the semi-destructive removal approach, pulling it out however I can with an attempt to keep it as intact as possible.

In the interim, I may put the printer back together and use it until I have the repaired coil, trying to ignore the gap at column 60.

SAC INTERFACE FOR ADDING PERIPHERALS TO THE 1130

I marked up the capacitor polarity on my diagram first thing in the morning, then checked the continuity and freedom from shorts for the board I put through the reflow oven yesterday. A bit later, I opened the garage and soldered on the capacitors, diodes and the headers. The second board is now ready to be wired into the SAC interface.

Board two finished with manual installation of diodes and capacitors
Once it got a bit less chilly outdoors and the fog burned off, I set up to create the third circuit board using the reflow oven. The steps involved in building one board are:

  1. put the circuit board between the holders and tape the kapton paste mask in place
  2. apply and spread solder paste over the mask to adhere to the metal pads on the board
  3. remove kapton paste mask and board holders
  4. place 36 transistors onto their pads, held by paste, in good orientation
  5. put 24 polarized tantalum capacitors in place
  6. put 12 100 ohm resistors in place
  7. put 12 500 ohm resistors in place
  8. put 12 700 ohm resistors in place
  9. put 12 1000 ohm resistors in place
  10. put 12 1500 ohm resistors in place
  11. put 12 4700 ohm resistors in place
  12. put 12 12,000 ohm resistors in place
  13. carefully lay circuit board in reflow oven
  14. reflow the solder paste to bond the components in place
  15. test all connections for appropriate resistances
  16. install 12 diodes through holes, solder by hand and cut off excess leads
  17. install 3 pin header for power connection and solder by hand
  18. solder 12 2-pin headers for FPGA board input-output
  19. cut four notches for placement on the standups that hold the cards in the enclosure

The longest part of the process occurs in steps 4 through 12, manipulating teeny parts into place in proper orientation, held down by the dab of solder paste on the PCB pads. The next longest task is number 15, verifying that the board is in good condition. While the oven requires about 20 minutes to cycle a board, the third longest activity, I can be doing other things while that proceeds.

A fourth board that contains just five of the 24 possible circuits is the remaining object needed to wire up the interface box. I decided to install all the power filtering capacitors on the board to give good clean power behavior. It was also done by the reflow oven just to get consistent quality and a cleaner appearance similar to the majority of the other boards.

Boards 3 and 4 almost completed, just needed headers solder in place
My new supply of headers arrived in the afternoon which meant I could finish all the boards Boards 2 3 and 4 are waiting on step 19, as I hope to cut the notches all at once, but I am wiring board 2 into the enclosure. By the time I wrapped up work today, I had 15 of the 24 signals from the 160 pin plug attached to it. That brings the total up to 39 of the 77 active signals on that plug, essentially half done. 

Saturday, March 7, 2015

SAC interface board construction underway, solid progress on 1132 printer and card deck punched for 1401

1132 PRINTER RESTORATION

I spent a few minutes checking the column 60 issue, by issuing writes to only that column which should allow me to check for any motion of the various parts of the printer mechanism. Hopefully I can guess what component is stuck, rather than trying to take apart and adjust everything a second time.

I attempted to get to the Interposer Contact switch in order to de-oxidize the contact surfaces and restore operation. It turned out to be easy if you stick one hand from the read under the back of the raised hood and stick the other hand in from the side,twisted about 60 degrees, holding the burnishing tool. A bit of sawing away to remove oxide and the carriage restore function works exactly as it should!

I exercised the printer a while, which did eliminate the sporadic wrong characters which were simply the levers sticking a bit and being too slow to activate. Once they were worked enough through repeated printing, that issue went away.

The missing column 60 problem is more mysterious. I though I had determined that it had to be mechanical but when I stroke the solenoid arm manually, it consistently prints on that column! I might have a bad solenoid, if I am seeing the line fire electrically and the armature moves manually. Time to measure the resistance of the coil.

I am feeling very good about the printer and its rehabilitation. It appears that we are just one problem - column 60 not printing - away from full operation. I can do a test by manually entering the bootstrap loader for DMS2, with the drive active, and bringing up the monitor. It should print a welcome message on the 1132 printer before it goes into a wait due to the card reader being offline.  I am just slightly hesitant because not only is it a lot of toggling to enter 80 words of boot loader card, but then I have wiped out my printer test program which I would have to toggle back into core word by word.

NEW KEYPUNCH INTERFACE DEVELOPMENT

My friend Mike Albaugh updated his program for the 1401 and the deck is now accepted by my keypunch program. I fired up the keypunch and produced the card images for him this morning. I produced 22 cards which I am holding for Mike.

During the course of the punching I discovered a couple of behaviors I didn't like. Sometimes, when a card is not ready in the punch station and you subsequently ready it, the system sits waiting until I touch a key on the PC - any key - after which it picks up and continues. This must be some weirdness having to do with serial communications - perhaps if the Arduino believes that it has part of a character it hangs until the stop bit arrives?

As well, I did see the system drop a card or two when first trying to punch. By rewinding the file and using Pause and Start Punch, I was able to get everything punched out but I need to understand the incorrect behavior and fix it. Another task to stick on the long list.

SAC INTERFACE FOR ADDING PERIPHERALS TO THE 1130

I organized my design, determining where each SAC signal from the circuit boards would be wired onto the FPGA and what pin on the Spartan 6 are connected to those signals. I also printed my SAC interface card layout and marked up which resistors are to be installed at each location across the board. With this, I am ready to continue soldering the first board, while I wait for my solder paste stencil that is currently at the local post office waiting for delivery.

Hand soldered board #1 ready to be wired into SAC Interface box
I finished the board this morning, drilled holes for mounting and then began wiring it to the 160 pin connector. With that finished and all the headers installed, I have done as much as I can until I have the stencils tonight and can produce the next three boards. When those are all done, I can build a harness to connect the FPGA board and four circuit interface PCBs I just completed.

Wired to 160 pin connector but waiting cables to FPGA board
The stencil arrived in the early evening and I decided to make one board. I didn't anticipate how slow and tedious is the process of placing 144 teeny parts on the paste before placing the board into the oven. I only put 120 on the board, as the capacitors are tantalum (polarized) but my guide sheet didn't mark the polarity of the pads. I know that most are placed with + above ground, but a few are flipped.

Stencil and board holders arrived, ready for use
The oven worked great and to the eye, everything soldered perfectly. The resistors couldn't be better, but the transistors did set with some skew. If they are properly connected, all is good since these are low power, not needing a good bond to a head conducting pad, but I do have to do testing. Once the board tests okay as it was soldered, I will hand solder the capacitors plus the through-hole components (a dozen diodes and 13 small headers.

Board #2 after reflow oven - needs diodes, capacitors and headers installed
Now that I know about the tedious process and how sensitive the transistors are to initial placement, I will leave more time to set them up on the next board. I will also have checked and marked the capacitor polarity so they can be put into place as well. 

Friday, March 6, 2015

Found cause of carriage restore issue with 1132 printer, plus began hand soldering a SAC interface card

1132 PRINTER RESTORATION

Running down some signals to diagnose the printer issues - both the missing column on print and the failure to do a carriage restore.

It is clear that the hammer driver was firing for column 60 and I even swapped driver cards only to see the problem remain at the same spot. Definitely mechanical. Another confirmation occured when I swapped the wires between magnets for columns 56 and 60 - no movement of the symptom.

The carriage restore button works fine, sets on the skip start latch and the restore latch in the adapter logic inside the 1131. The skip start should be activating the interposer magnet, but the output of the inverter was about half a volt while the input was good. Not sure whether it is downstream, e.g. a short or problem in the printer itself, or a failed SLT card.

I tried swapping the card with another that is involved in carriage space, but didn't see the restore operate. Tracing back through all the events that occured, it became clear that the cause is that the interposer contacts, a pair of exposed contacts inside the carriage mechanism, are permanently open circuit. They need to close to confirm to the adapter that the gearbox has shifted into high speed mode for a skip.

This type of contact is often oxidized so badly it takes quite a bit of scraping as well as chemical intervention before they are released. I wish it wasn't in a very inconvenient spot that will be a pain to access, but it is nice to know that there is a simple fault here that can be cleaned up in order to make the high speed skip functional again on the printer.

Carriage mechanism, contacts hidden under upper part of this picture

NEW KEYPUNCH INTERFACE DEVELOPMENT

I tried to use my keypunch interface to punch out a 1401 program that a museum docent, Michael Albaugh, has written to play music over an AM radio held near the mainframe. His current deck wouldn't punch because it used an 'invalid' character per the ascii encoding set up at CHM for punching 1401 cards.

My program adheres strictly to the same encoding just to ensure backward compatibility with decks produced at CHM. Mike has to adjust the deck after which I can create his punched cards.

SAC INTERFACE FOR ADDING PERIPHERALS TO THE 1130

I began assigning the signals to the pins and cables I will use with the new FPGA board, although I ran into a conflict between various bits of information from the existing cabling and will need to validate a few things before I finish.

I also got impatient to check out the analog quality of the new boards, since my stencil masks won't arrive until tomorrow, which really means end of day tomorrow. I began hand soldering one board, a tedious process but something that feels like progress.

As of the end of the day, I had all the capacitors and all the diodes on the board, plus half the transistors. Another 18 transistors and then scores of resistors to go. Not too bad, although the SOT-23 sized transistors are the most fussy and slowest to solder down. I am checking continuity and lack of short circuits as I finish each component.

Partially populated board as of end of the day today

Thursday, March 5, 2015

Digging into remaining printer problems plus successful build of reflow oven and arrival of the new FPGA board

1132 PRINTER RESTORATION

I did some chasing down of the signals in the 1131 (processor) that pertain to carriage restore - I saw the odd behavior that the first time after power-on when I pushed the button, I saw both signals change but after that, there was nothing or only the smallest of blips on the incoming signal.

I moved to the 1132 side (printer) to look at the signals, but as I looked at the ALDs I realized I could do some basic voltmeter testing before scoping the lines. The logic for the switches is odd. The switch connects a capacitor to +6V through a resistor when not pressed - the other end of the capacitor is to ground this this charges the capacitors to +6V. When the switch is pressed, it connects the capacitor to a voltage divider whose far end is pulled down to -3V and whose intermediate point is a logic signal going over to the 1131.

When I measured the voltage at the switch for the normally open contact, it registered as -1.2V. I checked the carriage space switch adjacent to it and found that NO terminal to be at -1.9V. This may be normal, with the logic over in the 1131 pulling the -3V up to the measured voltage. Still, I decided to measure the supply voltage at the printer to be sure that the three logic levels of SLT - +3V, +6V and -3V, are all good.

In order to reach the power strip and to put the scope on various SLT card signals inside the printer, I needed to move it out from its current position as the card compartment is at the rear of the printer.

The voltage levels are all solid and I scoped the push button for carriage restore, which is working just fine. On to check the entry of the signal into the 1131 on the other end of the cable - could be cable damage or the problem could be over in the processor.

While I believed I was seeing the printer hammer driven for column 60, the one that is missing, I decided I need to test with the scope on the AND gate that selects for this hammer.

Won't get to any of these additional tests today, but will get on it tomorrow.

SAC INTERFACE FOR ADDING PERIPHERALS TO THE 1130

Spent a couple of hours outdoors finishing the reflow oven construction. After that, I put it in learning mode, which took many cycles during which it has to heat up then cool back down to near ambient temperature. After it learned how to get the board up to a stable near-melting temperature, it then had to learn how to force the temperature up to the liquidus point fast enough yet not overshoot beyond the target max. When it finally could attain and hold temperatures while the solder reflowed, it then was ready to let things cool down.

Newly updated reflow oven

Radiant reflective tape lining inside of the overn
With the controller trained and ready, I put in a sacrificial board and a few SMT components just to check its behavior with a real reflow job. I found some solder paste from about a year ago, which I hoped would still be good. It appeared to be appropriately melting the solder paste but my actual board test was inconclusive.

I ran out to pick up some new solder paste, a sacrificial board that will better test the kinds of components I will be soldering, returned and ran additional tests. The oven is working exactly as it should.

The FPGA board was delivered today and my paste stencils for the circuit boards are expected to arrive on Saturday. All is proceeding well for the creation of the all-new SAC interface box. If I wasn't waiting for the paste masks in order to reflow the boards, I would probably be manually soldering all the parts on a board.

FPGA board to be used in the SAC

Board has about 100 input-output signals

1132 printer debugging and work on the new SAC interface hardware

Today is my usual day to visit with the 1401 restoration team at the Computer History Museum at midday, where we will tackle any remaining issues with the two machines as well as socialize over lunch. I worked on issues with the virtual tape drive and an intermittent error with a real tape drive. Others worked on the card reader of one machine and the punch of the other.

1132 PRINTER RESTORATION

I hooked up the oscilloscope to the printer hammers and fired off a line worth of one character while monitoring the suspect column and another one. I could see both columns 60 (the bad one) and the other columns activating at the solenoid, but nothing prints. This means the first issue, missing column, is a mechanical problem not a logic/electrical one.

The second problem, failure to perform a carriage restore, involves a more circuitous path than one might naively presume. This button is not direct wired to the printer clutch that causes a skip. It is routed over the cable to the 1131 processor, where the printer control unit logic cards detect the signal, command the printer to skip (high speed move), watch the signals from the carriage tape channels, and issues a stop skip when channel 1 is detected.

The carriage space key is also handled indirectly, in this manner, but does work properly. Therefore to debug this second problem I have to move to the 1131 and probe signals there to see what is happening (or not happening).

The third problem on the punch list is incorrect character being printed. Since I experienced this with some single character line-wide prints in my earliest printing tests, this suggests that sluggish movement of levers is the cause. That should work its way out as I print many times, heating and moving the old lubricant around. I will take no action at this time while I work on the first two issues.

SAC INTERFACE FOR ADDING PERIPHERALS TO THE 1130

My FPGA board that left Brooklyn yesterday tagged in last night in Pennsylvania, then went back off the net. It seems to have gained some speed, perhaps, in its leisurely drift towards the west coast.

I found a better controller for my toaster oven hybrid I used to solder all the parts on a board simultaneously -- a tool called a reflow oven. The process involves a paste which is a mix of solder (tin and other metals) plus a rosin which boils away any oxidation to allow a good molecular bonding of the molten metal between the metal pad on a board, the metal pad of the component and the liquified solder itself.

A Kapton mask has holes cut out for the spots where this paste should be smeared in a thin layer onto the board - having openings where each component has a pad that attaches to the board. Using this and a spreader, the paste is applied to the board. The mask comes off and the components are placed into the board, held by the surface tension of the toothpaste-like consistency of the paste we spread previously.

The board with its loosely held components is put into the reflow oven and it begins a careful sequence of temperatures. First, the board and components are brought up to a baseline temperature below the melting point of the resin in the paste and soaked for a while to stabilize temperatures. Then the heat is increased to cause the resin to bubble, cleaning off any oxidation on the metal surfaces of board and components.

Continuing to rise, the heat causes the solder embedded in the past to become molten, a state called liquidous, where it is held for a defined period of time. The molten metal attaches to the metal pads on the board and the metal pads on the component. The miracle of surface tension then helps us - the liquid solder pulls itself into the most compact shape, which drags the component from its rough placement until it is as perfectly aligned over its mounting pads as possible. This minimizes the energy state of the liquid - surface tension at work - and ensures all the parts are exactly where they should be.

The oven then drops the temperature below the liquidous point, causing the solder to solidify. A careful cycle of cooling, to avoid thermal stress that might break the newly formed joints, allows the board to ease down to room temperature. All this heating and cooling happens in about a half hour or less, leaving me with a perfectly soldered PCB.

A few connectors and diodes are then hand-soldered to my board, because the diodes are through-hole parts with wire leads that thread through holes in the board and get soldered onto the back. The connectors, small headers with pins sticking up, also extend through holes and are soldered on the back. That completes a board; rinse and repeat three more times to build the set of boards needed for the SAC interface.

The final board can be built with a subset of the components since it has to implement only five circuits, not the twenty-four that a board usually provides, to complete all 77 signals on the 1130's SAC cable. On the other hand, since the components are relatively cheap, I can build a full fourth board which gives me spare circuits in case I ever need them.

The process of stepping heat up from the stabilizing 'pre-soak' level to liquidous and then the drop downward were accomplished by manually changing the digital setting of a power controller, one which controlled all four heating elements as a unit.

The new controller separates the upper and lower heating elements, adds an additional booster element to the bottom, and automates following the timed profile with a microcontroller that has a thermocouple monitoring the temperatures inside the oven. Since I had always achieved good results with my hand-control method, there is some tolerance to variations with the reflow process, but having a more complete control over the temperature profile has to further improve the quality of boards I produce.

The reflow oven controller was picked up today and I started to update my existing reflow oven. I was about halfway through the installation when light faded away outdoors. A couple of more hours should complete the task, then the oven needs about two more hours, training the controller software to learn how to properly control the heat inside.

The modification separates the upper and lower heating elements, controlling each independently. It adds a third element at the bottom as a booster to increase heat output. Each of the three heat elements is independently switched and its power modulates by use of three solid state relays. The inside of the oven is lined with gold tape to reflect back the radiant heat to maintain temperature.

The controller itself is a variation on an Arduino, designed to manage the heating elements based on the algorithms in the software, the temperature sensed by the thermocouple and by the training that allows it to understand how the oven heats and cools. 

Tuesday, March 3, 2015

'Punch list' of problems with the 1132 printer for further investigation, plus SAC Interface PCBs arrive

1132 PRINTER RESTORATION

I cleaned up my program and pushed the printer to do print my name a ton of times. Next update to the program is to expand it to do this repetitively, spacing down one line each time. However, having run the printer quite a few times, I see both positive and negative signs.

Positive side - the image is getting clearer and everything is loosening up nicely. The test program does set up the print line with my first name repeated across the width.

Negative side - the missing column I had mentioned before. From time to time the program is firing for what it thinks is one character but getting another - for example the emitter says we have a D3 - the letter 'r' - but when it prints it is 'q' which is code D8. Spacing works fine but the carriage restore button is not functional - nothing occurs when I push it.

Missing column - still to do is my test with a storage oscilloscope to determine if the solenoid is trying to fire or not.

Mistaken character - I need to do tests with the storage scope to check signal quality of the encoding disk, as well as verifying that the hammers are firing when it thinks we have a valid character (R not a Q). This could be in the light-disc-photocell path, the photocell amplifiers, the SLT cards in the printer or in the SLT cards for the printer controller sitting inside the 1131 processor. The letter Q is immediately adjacent to R, which leaves the possibility that I just have to perform a timing adjustment to fix the sporadic problem.

Nonfunctional carrier restore - the button could be bad - I have had several of the same type oxidized permanently open - or it could be other circuitry or even the contacts for the carriage control tape. Scoping will help me determine this as well.

SAC INTERFACE FOR ADDING PERIPHERALS TO THE 1130

My PCBs arrived in San Francisco and were on a DHL van for delivery to me today. The FPGA board left Brooklyn last night and is somewhere in the US postal system, rocketing towards me like a snail on sleeping pills.

The boards look very good. A quick test with an ohmmeter verified the power and ground planes are correctly reaching key points on the board. Since most of the traces are visible on the top layer, it would only have been problems in the internal layers that could have been difficult to detect.

My PCB for SAC receiver and driver circuits (12 + 12)

In a few days I will have my kapton solder paste masks, allowing me to spread on the paste (which has microbeads of solder which melt in an oven to flow between the components and the board pads) and construct the boards. All the components are here waiting to go.

Monday, March 2, 2015

Driving the printer and checking its operation while waiting for my SAC interface boards

It was a very heavy work day for me today, but I did get to spend a bit of time with the system.

1132 PRINTER RESTORATION

I worked on some code I can use to exercise the printer. This should work out any sludge and uncover any residual incorrect operation. It was built and tested on the IBM1130 simulator before transfer to the physical 1130.

My code wasn't perfect, but it did drive the printer and made me more confident in the basic soundness. I still see signs of residual stickiness but not that bad, and hope it can be worked out by exercise. As well, I still have one column not printing.

As I first entered the code, it printed three of the four letters of my name, but which one didn't print was random. This means my logic for counting down and searching through the list of characters is flawed. When I switched it from four characters to just one, it was printing different characters than I selected.

I think it most likely that there is a bug in my code, worth a bit of desk checking or single step execution on the simulator. I am still cataloging possible defects - the first known issue is the missing print column. I will put a scope on the solenoid for that column plus one that works fine, verifying whether the issue is mechanical or electrical. I could have a bad SLT card or wiring, or it could be a stuck lever.

SAC INTERFACE FOR ADDING PERIPHERALS TO THE 1130

The boards are on their way to me, having finished fabrication, left Shenzen and was put on an aircraft in Hong Kong. The shipment has ten copies of my interface board, each 6.5" by 3", which will have installed many surface mount transistors, resistors, capacitors and 36 small signal diodes. It landed in Los Angeles and has cleared US customs. This should arrive in just a day or two at this rate.

Multiple SAC interface cards ready for component placement and soldering

My FPGA board arrived in the US and slipped into the black hole of the US postal service on the 28th in NYC. Finally on March 2nd at night it arrived in Brooklyn - it must have ridden on a snail to take that long to move a few miles. It should return to our universe at my doorstep at an indeterminate future date, hopefully during this week.