Saturday, May 23, 2026

Developing SMS socket to connect to paddle cards

WHIPPING UP A FEMALE SMS SOCKET FOR THE BOX

I think I have a good plan for a female socket to plug into an SMS paddle card. I built some SMS signal paddle PCBs that I could adapt.


Using some 1/8" or 3/16" stock, I could cut some pieces and drill holes so they create a channel for the incoming SMS paddle card. Another larger plate sits on top of those side channels and creates the socket. Soldering some spring contacts on the pads of my PCB will allow good contact when the male paddle card is inserted. I could also add a block to stop the paddle card from inserting too deeply. 

I soldered some RF shield fingers as springy contacts - it wasn't a perfect job but they are all there with no shorts. Next I cut up some brass I had as the spacers and a plastic spreader as the top.


Very quick and dirty, but sufficient to test out the concepts and spacing. The brass spacers were .09" high and the tests I did shows that I need the space to be almost1/8" otherwise the contacts have to bend too much. However, by loosening the nuts slightly I could insert another SMS paddle card into this makeshift socket and verify connectivity for all thirteen pads. 


I have one additional spacing detail - I need grooves on the sides that are 2.2" apart. The SMS signal box in the 1130 into which the socket attaches has top and bottom rails separated by just over 2.2", thus the socket is held in place while in the system. 

Based on these tests, I will design a socket structure to connect with my SMS paddle card. It can be 3D printed fairly easily. 

I believe I can design a simple 3D printed part that can be attached with screws and nuts to form a socket, something cleaner than some scrap parts cobbled together. I will work on that but this temporary socket gives me an emulator box that can be long term loaned to the System Source Museum for use whenever the 1053 typewriter is out of service. 

Replaced transistor to restore Calcomp 565 plotter carriage movement

REPLACED - CARRIAGE STEPPER NOW MOVING 

I had found some GM Delco 2N392 transistors on eBay - apparently this was used widely in car radios. The first new-old-stock transistor arrived and I installed it into the plotter. When I powered up for a test, the ring counter was restored to correct operation. The manual control for carriage right or carriage left now shifts the ring counter one step, changing the coil that was activated and moving the stepper motor one position. 

WAITING ON PEN SOLENOID TRANSISTOR TO REPAIR THE REMAINING CIRCUIT

The second new-old-stock transistor is on its way from a different vendor. Once it arrives I can stick it into the pen flip flop circuit and finish restoring that to (hopefully) full operation. However, having done some circuit testing and analysis, I am concerned that another PNP transistor in the circuit is also bad. 

Continued debugging of the 1053 Emulator - part 1

ADJUSTED RESISTOR VALUES FOR MOSFET SWITCHES

The voltage divider network hidden inside the IBM 1130 logic, specifically the switch debouncing circuits, required a much smaller resistor on my MOSFET switches to produce logic low and logic high levels on the gates fed by the signal. I changed over to 470 ohm resistors for the three switches that work with 12V. 

The switch that drives the -TWR CB RESPONSE signal has to deliver 48V when active and that voltage sinks to ground through the MOSFET when it is turned on. While I don't have the exact resistor values inside the debouncing circuit for the 48V signals, I believe that a 1K resistor will allow the gates to see logic low and logic high as it switches. That will consume a bit under 2.5 W when on steadily. 

CHASING DOWN ANOMALY WITH PHANTOM RED SHIFT COMMAND

I can see from the output to the terminal that immediately after the emulator box turns on, it believes it has received a Shift to Red command from the 1130. However, the logic in the 1130 is designed to fire off a Shift to Black when it starts up, so this looks like the wires are crossed somewhere in my box. 

In point of fact, I had misinterpreted the string of characters - it was actually a shift to black exactly as it should be. No issue.

SWITCHED TO DIRECT PORT ACCESS FOR DIGITALREAD AND DIGITALWRITE

I removed the digitalRead and digitalWrite statements, instead using direct access to ports such as PORTL and PINL. Much faster. Running my code in WokWiki, an online Arduino simulator, it appears to not produce output characters at the maximum rate of 15.5 cps. The simulator web page claims that it runs as fast as the Mega 2560 hardware. 

I will need to run some printing software to hit the maximum rate and check to see if any characters get dropped. If there is a speed problem, I will have to get even more clever to meet the timing requirements. 

Thursday, May 21, 2026

Attempting to make the 1053 Emulator usable for SSM in time for their pickup of typewriter tomorrow

RESOLVING FLAWS RAPIDLY IS POSSIBLE

The issues I identified with the feedback signals should be resolved with some simple MOSFET switch board rework. The missing line feed is fixed already. The only behavior I still need to investigate is why the ANSI colors aren't working as expected. That seems likely to be easy to resolve too. 

DEALING WITH GENDER MISMATCH IS A CHALLENGE IN THE TIMEFRAME

The physical connection issue is what worries me. The 1053 printer comes with two SMS signal connections - one is a male paddle card and one is a female socket. My emulator however has two male SMS paddle cards. 

I can temporarily fix this by using an IBM SMS gender adapter, a molded device into which two male paddle cards are plugged. In fact, the SMS signal block into which the 1053 plugs has one such adapter already. A male card from the 1130 logic plugs into the adapter, then the male card from the 1053 plugs into the other side. 

The 1130 logic has a second male paddle card, which is plugged into the female socket on the cable that comes from the 1053. When I add a second adapter, I can plug my second male paddle card into the adapter and connect to the second male card from the 1130 logic. 

The only tricky part is that the adapter reverses pads. The leftmost pad on an SMS card is A, the rightmost is R. However, through the adapter, what is on pad A on a card plugged in will be connected to pad R on the other male card plugged in. I have to invert the male paddle card from my emulator to plug it into the adapter in order to get my signal line on pad A to connect to the 1130's paddle card pad A. 

I don't have spare adapter devices. I had to borrow the one from my own 1130 system, the one that normally connects the male 1053 cable to the male 1130 logic cable in the SMS signal block. That leaves my system unable to use its console printer, so I can't loan this to the System Source Museum when I loan them the emulator. 

If I am able to put together a usable emulator by Friday afternoon, I will have to cobble together a female paddle card socket and wire that to my emulator tomorrow. I have a start on this with some experimental work I did, but it is pretty crude and unfinished. We will see if I can pull this off by 4PM tomorrow.

Debugging my 1053 printer emulator box

DESIGNED AND BUILT THIS FOR LAB USE A FEW YEARS AGO

The 1053 attaches to a mainframe with three SMS paddle cards - two carry signals and the third delivers power. This emulator is built around an Arduino Mega 2560 R3, a MOSFET switching board and some simple circuitry, hooked to three SMS paddle cards. It provides a serial port connection over a USB cable for communicating with a terminal emulator program on a personal computer to display the output that is being 'typed' by the mainframe.  

This emulates the console typeball that is installed on an IBM 1130 system, but can be easily modified to support a different (or additional) typeballs. The typeball has characters that are not in standard ASCII, e.g.  ¬ and ¢ which can be displayed in UTF8.

Using a terminal emulator that supports UTF8 encoding and ANSI colors provides the most realistic output, since the text will display in either black or red on white background - the text color is selectable by ribbon shift commands from the mainframe to the 1053. I have had good results with The terminal emulator PUTTY, set for 9600 baud. The code offers a few commands that can be issued to the PC1053 - mainly to set the left and right margins, but also to set, clear and display tab stop columns that will be in effect. 

PC1053 operates at approximately the same timing as a 1053, which supported a maximum of 15.5 characters per second and with the high speed carrier return feature would move from right to left edge in just a bit over 1 second. This provides realistic timing on the feedback signals that tell the mainframe when the Selectric mechanism is busy in a print cycle or performing an operation such as shifting case or moving to a new line. 

The device is constructed in a case with a three digit display to show the current column that the typeball/carrier has reached. It has buttons on the front to match the controls on a real 1053 - buttons to Tab, Space and Return, plus tab Set and Clear. This project has a Fritzing diagram of the connections, a schematic of the MOSFET switch board and other circuits, while the physical layout of the case is left as an exercise for the reader. 

TESTING THE 1053 EMULATOR

I connected the 1053 Emulator to the VCF 1130 to check out its operating condition before loaning it to the System Source Museum. The one challenge I had was that my emulator had two male SMS paddle cables for signals, but the 1053 itself has one male and one female card. Thus I needed to use a Female to Female adapter from my own 1053 just to complete the testing. I tested the signal connections to be sure that the pad reversal of the adapter wasn't crossing signals; soon I had everything connected between emulator and 1130 according to the design. 

FOUND A FEW FLAWS

Immediately I found that the END OF FORMS lamp on the console was lit, which makes the typewriter not ready for operation. The controller logic inside the 1130 won't work properly with that error state. My emulator should tell the controller that forms are good, thus ready for printing. 

I began testing anyway since I saw that my little hand program to write to the console printer was seeing the print codes when I did an XIO Write. The controller hangs up after the first write - must be an issue with the response signals back to the 1130, but it could also be due to the forms error condition. 

I saw the proper characters on the terminal screen for all the letters, numerals and special characters on the lower case hemisphere of the typeball. Any time I entered a code on the upper case side, the controller fired off a shift command which failed to complete, thus it would not type any character on that side. 

I felt good about the translation and display of the characters, even the cents sign which is not part of normal ASCII but is being displayed using UTF-8 unicode encoding of the characters. The column pointer was advancing properly, showing where the carrier would be sitting if it were a real printer. 

Space, backspace, line feed (new line) and tab seemed to work just fine. When I issued a carriage return command, which should also be triggering a line feed, I only saw the cursor return to the beginning of the same line. This happens even when I push the Return button on the emulated printer console (actually on my emulator box). I suspect this is a simple flaw in my Arduino code inside the emulator. 

I tried the commands to shift to red ink and shift to black ink, but the output on the terminal did not change. This may be a remnant of the issue caused the the forms error, but it could also be a defect in my code. I do remember this working properly on the bench, so it could also be a flaw in detecting the shift to xxx ink commands. 

DEBUGGING THE FORMS LIGHT ISSUE AND LACK OF FEEDBACK SIGNALS

The hidden analog circuits inside the IBM 1130 logic cards were the reason that my MOSFET switched feedback signals including end of forms were not working as expected. IBM debounces these with a circuit that pulls the +12V line down to -3V, with resistors in that circuit acting as a voltage divider, so that without the 12V applied, the line will activate the next logic gate. 

My problem was the 4.7K pullup resistor in my circuit - the line from the emulator to the 1130 passes through a 470 ohm resistor before entering the debouncer (voltage divider) and the result was always seen as a logic low by the following 1130 gates. Switching my resistor to a 470 ohm pullup gave me exactly the results I wanted. The forms condition went away.

I have to make similar changes to the other three MOSFET switch circuits in order to be recognized by the 1130 debouncers and ensuing logic gates as validly high or low. Once the controller triggers a set of solenoids in the 1053, it expects to see the two feedback signals change (-TWR CB RESPONSE and +TWR CRLFT INLK). 

-TWR CB RESPONSE should dip from +48V to ground for any print or operations cycle, except for the commands to change the ribbon use between black and red ink stripes. If my signals don't return to logical high then the controller believes the typewriter mechanism is stalled and won't continue. 

+TWR CRLFT INLK will rise from logic low to logic high with +12V delivered during the times that a carrier return, a line feed or a tab movement are underway. Due to the high resistors I used, it will never be seen as reaching the high state, nor will the other feedback signal. 

Its a fairly trivial rework of the MOSFET switch board. The new 470 ohm resistors will consume about 300 milliwatts of power if steadily on, for the three signals that switch between 12V and ground. The 48V signal, with a 470 ohm resistor, would consume 5W when the output needs to be at ground level. 

That only occurs during a cycle, when typing or moving, otherwise relatively little power required. During times of rapid typing the average power use will be about 2 1/4 Watts maximum, although if the typewriter mechanism stalls or jams it could jump up to the full 5W for some time. I will make use of a suitable high power resistor. 

FIXED THE FAILURE TO MOVE THE LINE DOWN DURING A CARRIER RETURN

I simply forgot to print the 0x10 character (new line) after the 0x13 (carrier return) in the emulator code. It was added and corrected the problem. 

BUILDING SMS ADAPTER HOUSING

I had built some SMS paddle card PCBs previously and realized that I could use one of them to create a female SMS socket to put onto my 1053 emulator in lieu of the male paddle card. What I needed was a housing to hold my male paddle card in place with room for another male card to be inserted parallel to the first. I would add some springy contacts soldered to the pads of the male paddle card, thus giving contact when the second male card is inserted into the housing.

I had to secure my own male card in the housing, so that we had a female socket with the combination of my male card and the housing. I fired up FreeCAD and designed a housing that could be 3D printed. 

On challenge using the adapters is that the way IBM built them, they reverse the pads from one side to the other. Pad A on one side is pad R on the other, pad B is pad Q, and so forth. This can be confusing when dealing with signals on the two paddle cards being joined.


Conquered 1053 rotate turnbuckle adjustment problems, wrapped up the printer

FINALLY GOT THE FINE ALIGNMENT DONE IN SPITE OF THE TURNBUCKLE

One of the earliest steps in the rotate alignment process is preliminary homing, where the typeball position is set approximately right. It involves accessing the carrier from underneath, with it sitting about 4/5 of the way to the left margin so that there is a hole through the mechanism underneath. A setscrew with a Bristol head is loosened, after which you turn the typeball from the top and then get back under to tighten the setscrew. 

Because the turnbuckle system was not converging on a good setting, I decided to use the preliminary method as my final alignment instead of trying to change the length of the rotate rod using the turnbuckle. It only took a couple of tries to get the detent entering the teeth of the typeball right where I wanted it.  

I also tweaked the tension adjustment for the string that activates the ribbon color shift, ensuring that it selects cleanly between the black (bottom) stripe and the red (top) stripe of the ribbon based on the solenoids that set the type color. 

PRINTER CONNECTED TO THE 1130 AND EXERCISED ONE LAST TIME

I plugged the printer into the VCF 1130 and used my short hand entered program to test out its operation. It selected all the characters properly and shifted colors well. Once I was happy with its behavior and its condition, it was ready to go. 

WRAPPED UP AND READY FOR PICKUP

I put on the case and wrapped it up in some padding as it will ride in the trunk of the museum manager who will come by to pick it up. I added a bit of cable lacing string to one lever that is otherwise a real pain to connect to the faceplate of the printer. 

The faceplate of the printer has the console entry switches on it, but the wiring does not have a connector that allows easy detachment from the 1130 system. Therefore, before bringing the printer to me, the System Source Museum unscrewed the faceplate and left it with the system in Maryland.

A small rod runs from the right rear of the machine, when viewed from the front, to attach to a lever on the faceplate. This sets or clears the tab stop at the carrier's current column position. There is not enough room to get hands or fingers inside when the faceplate is being attached - at least not to grab that rod and attach it. A ballet with forceps and other tools is about the best one can expect. Often the rod falls down and requires removal of the typewriter cover to recover from that state. 

However, I wrapped the lacing cord around the end of the rod, and taped it to the top of the printer top cover. That will allow whoever will reinstall the faceplate to hold the rod up and be able to get to it with pliers, forceps or whatever is needed. 

Ran SSM 1053 to stretch tilt/rotate tapes, making final adjustments

DECIDED TO HOOK THE 1053 TO AN 1130 TO CHECK IT OUT

I read some advice on Selectric repair forums that the metal bands that tilt and rotate the type ball tend to stretch a bit when first used under power, so I plugged the printer into the VCF 1130 instead of its own 1053. I used a quick hand entered program to type characters and commands, discovering that the tilt tape did stretch a bit from how it had been adjusted. 

NEEDED TO REALIGN THE TILT MECHANISM

The result was that the tilt position being selected is now one row off - a character in tilt 3 row would instead type the character at the same rotation but in tilt row 2.  This required a quick removal of the cover and a readjustment of the tilt alignment to restore the printer to correct selection. I also saw that the rotate positions, which I had carefully set during my earlier alignment, had gone amok. 

ROTATE ALIGNMENT - ARRGGGGGHHHH

I whipped through the rotate adjustments, up to the the last step which is to complete a fine adjustment of the rotation position just as the print cycle begins to activate the detent to hold the ball in place. This is seemingly easy, at least on paper, but was maddening today.

There is a rod that comes from the selection mechanism, pushed or pulled to the eleven positions of rotation. It attaches to the bottom of a lever on the left side of the machine that has the rotate tape pulley on its top. The rod is built with two threaded pieces and a turnbuckle that joins them. The screw threads are in opposite directions on the two pieces, thus the turnbuckle shortens or lengthens the rod.

I had the machine dialed in perfectly, selecting every rotation column correctly, good on both hemispheres. The last step is to adjust that rod so that the detent enters the typeball teeth at about halfway down the right slope if viewing the teeth from the back of the machine. You select a character and hand crank the machine halfway through a print cycle, so that the detent is engaged in the typeball. 

You then hold clockwise pressure on the typeball and withdraw the detent, to see where the detent meets the right slope. Adjusting the turnbuckle should move the point of contact right or left. The turnbuckle has two nuts holding it in place, one screwed against each side of the turnbuckle. Loosen the nuts, turn the turnbuckle, watch the detent position and tighten when correct.

In theory.

Each time I adjusted the turnbuckle to achieve a good positioning of the detent into the teeth, I would carefully tighten the nuts against the turnbuckle. When I check after this, the positioning is way off - the detent comes down right on the bottom of the tooth, in between two columns. 

I did this many times. I tried experiments with the order of tightening the nuts. I tried to anticipate the effect of the nuts on the rod. Failure after failure. The machine seems to return to the same bad positioning regardless of how I set the rod length with the turnbuckle, at least once I tighten the nuts ever so gently. 

The urge to superglue the turnbuckle in its correct place without the nuts tightened is a challenge hard to resist, because the next time the printer needs service or adjustment the turnbuckle will need to turn once again. 

RIBBON COLOR CABLE TENSION ADJUSTED

The printer supports dual color typing, with a cable that is tensioned by a pair of solenoids to select between two levels of pull, transferring that tension to a lever inside the carriage that controls the amount that the ribbon lifts during a print cycle - either to the red or the black stripe of the ribbon. Another easy adjustment.