Week ending October 6 - typewriter almost done


I began recoding the Arduino to use the 1130 typeball codes, as the position on the typeball is different for BCD type elements such as this one. Although I had believed that the 1130 codes were the inverse of the desired tilt and rotate magnet activations, I was wrong. It is a direct map of all codes with one systematic difference.

Stripped down typewriter mechanism with interface board, during testing

The Memory Typewriter 50 selects the home position of the typeball with R1, R2, and R2A activated but the 1130's mechanism (an IO Selectric) uses just R5 for this position. Thus, the 1130 issues rotate values 0001 for the characters 0, |, -, ?, &, >, @, and % yet I need to issue them as the inverse pattern 1110 just for these eight characters. I have updated the adapter logic to make this swap.

Before I take the wires off the Arduino and move them to the fpga adapter logic, I tested out my ideas for how to remove and disable the other buttons on the typewriter, running a test program to print some output with none of the original buttons on the typewriter connected to the planar.

When that worked properly, I then tested the behavior of the system with the connector #1 on the planar disconnected - this connects the internal tape drive signals. That however did not work out well. The red system light blinks, showing that the planar board is not seeing what it expects from the tape drive, keeping the unit from working as a typewriter.

I am going to have to relocate the tape drive under the printer, even though I am not going to be using it, simply to keep the planar happy.

Power Supply to rear, tape drive in front, detached and ready to relocate under typewriter
I did a run on the machine with these new typeball encodings and was satisfied that everything came out correctly. I was also able to detach the tape drive from the cover and relocate it without any negative effect on the typewriter. I will try moving the power supply and then the planar on Tuesday.

I discovered that if I don't do an explicit shift of the ball between upper and lower case before typing letters from that side of the element, the machine throws in a hidden shift cycle. This adds enough delay that my timing routines were commanding the next character to print before the prior one had finished, resulting in loss of the intended character.

Fortunately, the 1130 adapter logic built by IBM for the 1052 console does this - it shadows the state of the typeball and creates a separate shift cycle whenever the ball has to flip to the other side. That way, it is a separate cycle whose timing matches with the logic, instead of an unpredictable delay in the timing of a regular character print operation.

The last testing I wanted to do using the Arduino as a test driver was to use the feedback signal to see if I can issue a followup character request without timed delays and without loss of any keystrokes. Right now I have to set a fixed delay which is long enough to work if there is no hidden shift cycle. If I can drive the next character as soon as feedback goes back to 1, I could be comfortable that I have the timing control locked in.

The test worked superbly. The only aspect I didn't yet test was using the Interlock signal to hold off for those long movements like carrier return, index and tab operations - I retain the delays to cover these long operations and will test the interlock logic later.

The conclusion of this testing means that I can remove the physical buttons, wire up the default states for those that are not driven by my circuit board and neatly route the wiring as the printer is now usable by the 1130. I had to remove the various buttons surrounding the keyboard, wire their desired 'state' onto the removed connectors, strip off the tape storage unit and rotary track selector unit.

The power supply and planar board had to be relocated to sit beneath the typewriter, not to the rear and right of the mechanism, in order to fit within the enclosure size of the 1052 printer. So far I have moved the tape drive and power supply off the cover but not yet relocated the wiring that would allow them to sit below the typewriter.

The next step was to disconnect the planar assembly (logic board) from the rear of the typewriter so that it could be moved downward to sit below the back of the mechanism rather than behind it (hidden inside my frame). The planar assembly has many cables hooking into it, but the length of all connectors were verified to be long enough to support the desired positioning within the 1130 frame.
Planar (logic board) detached and sitting to rear of mechanism
I had to put together a stand that would hold the typewriter mechanism up in the air above the relocated parts - I slapped together a quick stand with some wood in my shop. At each step in physically changing the typewriter, I re-ran the Arduino test program and verified that nothing was inadvertently broken or disconnected.

The keyboard itself and its linkage to the motor and wiring harnesses had to be removed from the front of the mechanism, in order to fit in the space of a 1052 enclosure. The bell and its magnet also have to be relocated to the underneath; they are currently attached to the keyboard mechanism I will be removing.

After starting in on the keyboard removal, which is absolutely mandatory in order to fit in the 1130 enclosure and dimensions, I came to the conclusion that my original aim, to be able to restore the typewriter at some future time to its original working condition using all original parts, was not feasible. There are just too many connections and adjustments involved. I have shifted to plan B, which is to create an effective console printer by permanently removing or disconnecting unneeded parts.

This simplifies the connection of sensor wires to various reed switches, as I can cut and solder the wires leading to the switches as a way of tapping into the signals. I rerouted the power supply cables from the right side, currently they are stretching out of the rear but soon I will move them downward to connect to the power supply sitting underneath the working typewriter mechanism.

Disassembly of the keyboard was very difficult - the parts manual diagrams are not designed to show how to assemble or disassemble parts of the machine, only how to order a particular part by its number. I have reached the point where I have two small hinge pins that are all that holds the keyboard extension to the rest of the machine.

I kept removing components both from the inside and outside to get closer and closer to the point where I can take off the two end plates. I now have a pile of many hundreds of parts, some very small, but finally completed the removal. I have one cap to reattach, which holds the pivot bar for selecting the character to type, and have to properly adjust a bar that runs just under the front of the carrier across the width of the typewriter, since I had to loosen one screw to remove the keyboard mechanism.
Left side view of typewriter mechanism after removal of keyboard. Solenoids at lower right.
Left side view of typewriter mechanism, front plate of enclosure will sit above the solenoids
I also found that I needed a firm anchor for the spring that holds the margin bar in position but allows it to rotate for margin release. I improvised an anchor point by putting together a few of the removed components with judicious reshaping. Similarly, I was able to secure the cap on the pivot bar and to lock the front bar in place. The machine appears to be mechanically ready for operation, once I move it to its new frame..

The front 'feet' that the typewriter sits upon in its cover, as well as on my wood frame, may be attached to the sides of the now-removed keyboard. I am working on alternate mounting methods to hold up the front of the typewriter. Once done, I can do a test with the Arduino to prove out the soundness of the mechanism before I move on.

The power supply is not developing full power - the 24V lines are at 15V and the logic signals are down are 2V. I will be debugging the power supply - the diagnostic manual mentions that the power supply can drop into low voltage mode as a protective strategy and will reset itself after a power-down.

The power supply did reset and develop full voltage. The typewriter was not operating, however, which turned out to be a lose connection to my Arduino tester. It is working perfectly in its fully stripped down mode and ready to move on to the next stage of its conversion to an 1130 console printer.

I removed the link to the low velocity magnet to cause the typewriter to strike every character with equal force. The BCD style typeball I am using places characters at different positions than they are on ordinary (correspondence) balls, yet the typewriter is varying force based on what letter it 'thinks' is being typed due to the correspondence layout.

After pulling the link, I ran the Arduino test but learned that the low velocity magnet is apparently also involved in the no-print cycles, since now I saw a 0 typed for every dummy cycle to launch a tab or return movement. I need to study the behavior of these two magnets a bit more, then make a more suitable rewiring that gives me the constant strike force typing but blocks print in dummy cycles.

Nothing in the documentation makes clear how these two magnets - low velocity and no-print - are actuated for the three states of a normal strike, low velocity strike or no-print cycle. I will have to throw together a couple of voltage dividers (to get the voltage down to 3.3V from 24) and monitor the lines with my logic analyzer to understand how each of the three types work.

The logic analyzer shows that low velocity characters are selected by firing the low velocity magnet alone, but that no-print or dummy cycles require that both the no-print and low-velocity magnets fire. This adds a complication. If I pull the control line off the low-velocity magnet, then dummy cycles will type spurious characters onto the paper. I would need to fire both magnets when the no-print control line is activated but do nothing for the low-velocity control line operating by itself.

If I were to naively bridge the control line from the no-print magnet to also drive the low-velocity magnet, then the effective resistance would be half and the current draw would double for that control line. I am not confident that it is able to safely handle that load and won't take the risk of damaging my planar (logic board) by a test.

Instead, I must design a small driver circuit that will drive both magnets safely when it sees the no-print control line activate. Activation of the control line means that the line will sink 24V through it, with the magnets hooked to 24V on one side and the control line on the other. Thus, grounding the control line causes the 24V supply to drive 100ma through the magnet coil. My circuit will have to sink 100ma per coil with both operating simultaneously, activated by the grounding of the no-print control line.

The deactivation of dual-velocity behavior is a nicety, not an essential interfacing task, thus I will proceed with my other work on the typewriter and come back later to hook in this new circuit. I shot a video of the typewriter printing some text at full speed and posted that on YouTube. The link to watch:  Youtube video of typewriter mechanism during testing and you will see this typing with the Arduino driving it, using the BCD type element layout and the type ball I found that almost perfectly matches the 1130 printer.

I also improved the Arduino code, allowing the timing of the next character to be controlled totally by my instantiated interlock and feedback signals. It is now running full throttle for typing, shifting, returns, index, space and tab operations. You see that in the video above. This all works flawlessly, but the more critical test will be operating with the IBM typewriter adapter logic, because that is timing dependent too with some very specific assumptions built into the design.

Underside of mechanism plus temporary connections to my interface board
It was time to shorten and clean up the wiring, make it more permanent and dress the wiring away from moving parts. Having done the work, I gave the system a try to validate that everything was still working properly. Alas, the machine hung up after executing the first carrier return.

The cause is the failure of the overbank switch to activate when the carrier reaches the left margin. I have to investigate the cause - it isn't immediately apparent why it is no longer working, but may be the consequence of my cable ties or the new permanent wiring to that switch.

I found the root cause - the ground lugs that attached to the right hand set of keyboard buttons - functions like Auto Playback and Skip to Next Line - appeared to be both connected to ground, but one of the two was a wire that only connected to the overbank switch to provide ground to that board. The keyboard buttons provided the link between this wire and the other, true, ground wires. By removing the buttons I broke the ground circuit.

It was a simple matter to hook up a new line to provide ground to the overbank switch, after which the test code in the Arduino drove the typewriter to another flawless performance. I have a bit more dressing of cables and other tweaks but basically this is now ready for me to set up the permanent new 'feet' for the front and then to design and build the '1053' enclosure that will house the typewriter. 


The plexiglass panel for the front of the display pedestal had been mounted using plastic tabs epoxied onto the back, but since the epoxy was actually onto a layer of paint, I was living on borrowed time. The luck ran out about a month ago and one of the tabs ripped off, removing a nice roughly circular patch of paint along with it. The panel had a clear circular defect that was very visible. 

Since this panel has taken hundreds of hours of work to get to the point it had reached, and considering that almost any change I made recently ended up introducing a new problem or perhaps worsening the overall quality, I was loathe to move too quickly. I set it aside for a 'cooling off period' while I processed the panel situation subconsciously. I was waiting for inspiration on how to achieve the mounting without those troublesome epoxied tabs as well as a way to repair the panel without inducing more damage.

I finally was ready to act. I have just finished spraying a new coat of black paint over the section that was ripped off. I was very fortunate that the damaged area was away from all the lighted lettering, else repair would have been ten times harder. I still have the risk of bubbling paint or other malfunctions from the new coat, but at least the ultimate goal is simply to make the are opaque. 

The good news is no bubbling is occurring; the bad news is that the paint layer wasn't heavy enough to darken the opening more than about 25% opaqueness. I am hoping that if I put some black material behind it to block light and reflections, it will be only marginally noticeable. Once again, overall quality of the panel sags a bit. It is getting hard to believe that any fix I can apply won't bring its own further drop in net quality. I am leaning to stopping now and accepting the shoddiness (to me). I know it will be hard to feel much pride in the look of that portion of the machine, but I just couldn't bear spending months and hundreds of hours to redo this from the ground up. 

I am drawing up several options for mounting the panel onto the pedestal, will consider their practicality and the degree to which I can execute on the plan, then move ahead once I decide. The torn tab occurred as I was closing up the rear of the pedestal, believing it to be ready for a full scale test and then mounting onto the frame. Everything is on hold, though, until I sort out the plexiglass panel and its attachment.


I was asked to visit the Computer History Museum to get some pictures of the 360/30 system on display there. A friend is building a scale replica of the physical machine to run his fgpa based implementation. He wanted to look more closely at some details of the corners and attachments. In addition, another person building a replica needed to know the height of the table attached to the front of a 360/65 system. It only took 20 minutes to take plenty of pictures and take the measurement, not counting the ten minute drive from my home.


I will be away on a business trip beginning Sunday October 6, only able to work on soft aspects of the machine such as design and VHDL coding, but nothing that requires access to the physical parts of the project. I will most likely not post anything further until Sunday October 20th. 

No comments:

Post a Comment