Monday, May 25, 2026

Designed SMS socket and having it manufactured

THE NEED FOR AN SMS SOCKET

The Standard Modular System was the construction methodology used for IBM computers in the generation from the Stretch computer until it was replaced in 1964 by Solid Logic Technology of the System 360 and 1130 systems. The 1401 and the 7094 are two well known systems based on SMS. 

IBM did use SMS components during the later generations such as S/360, both for components such as power supplies and for attaching older peripherals originally designed to connect to SMS machines. In the IBM 1130, many peripherals are attached using SMS paddle cards and SMS power cards. 

The paddle card looks like the end of an SMS logic card, but is attached to cables. SMS cards have 13 pads, labeled A through R (as they skip the letters I and O due to their resemblance to the digits 0 and 1). The power card is similar but has some pads combined into fatter pads to handle more current, e.g. M and N become a double width pad, and it has a notch in the middle. The connector block into which power cards are plugged has a steel bar to block ordinary SMS paddle cards but allow the notch of the power card to slide around it. 

I do not have any reasonable source for SMS paddle cards, SMS sockets, nor the gender changer/adapters that allow two paddle cards to be connected. I had to build my own small PCBs to work as SMS paddle cards and SMS power cards. 

The challenge I face is that there is another option connected to a cable, a socket into which a paddle card will plug. One of the cables coming from the 1053 Console Printer, a selectric typewriter used as the console of the IBM 1130, has a socket on it rather than a paddle card. My 1053 Emulator project was originally built with SMS paddle cards, but one of the cables either needs a gender changer/adapter or a socket.

CONCEPT FOR SMS SOCKET

I realized that I could solder some RF shield fingers onto the pads of one of my SMS paddle PCBs. These are springy gold plated contacts that stand 2.5 mm above the PCB but can compress down to 1.5 mm or less, ensuring a good contact across all thirteen pads of whatever we mate to. I needed a body that would hold the paddle card PCB with its fingers and hold an inserted SMS paddle card against the contacts. 

At first I was working on a design that would put my paddle card PCB inside and have a slot for the insertion of an SMS paddle card. However, I realized that the paddle card PCB itself acts as one side of the socket, thus it does not need to be enclosed. 

I designed a part that will be installed over the top of my paddle card PCB, bolted in place through the four holes I put into that PCB. The opening of that part is 3.8mm high, thus an SMS paddle card at 1.54mm will slide in and compress the fingers on my PCB down to 2.26mm height, giving a good solid contact. The part has a wall to stop the SMS paddle card from sliding in too far. 

It has two additional features, notches for mounting and an opening for the cable wiring to exit the socket. The opening is not particularly important, but the notches are key to use in the 1130.

The IBM 1130 has a U shaped bit of metal, the height of the U much larger than the width of the opening. The opening itself is just over 56 mm. The U shaped bit is rotated 90 degrees and mounted in the 1130. 

The IBM gender changer/adapter parts have notches built in so that they can be slid into the U and thus anchored, with SMS paddle cards plugging into the front and back of the adapter. SMS sockets such as the one attached to the 1053 also have the notches and are slid into the U the same way. 

DESIGNED IN FREECAD AND SENT OUT TO MANUFACTURE IN NYLON

I whipped up a design for the body that converts my SMS paddle card PCB into a socket.

I transmitted the design through Cloudcraft and should have three of them by the end of next week.  

Sunday, May 24, 2026

Continued debugging of the 1053 Emulator - part 2

TESTING AFTER THOSE CORRECTIONS

I plugged the emulator into the VCF 1130 system and ran my hand entered code to fire off characters and commands to the emulator. I needed to see it successfully handle a print, triggering the interrupt level so that I knew it had the correct feedback signals from my box. Without the feedback working, I can't do a shift nor test out the characters on the other hemisphere of the type ball. 

The oscilloscope was set up to watch the feedback signals as further confirmation that they are reliably delivered into the 1130 system. I did not see enough swing in the signals to cause the 1130 controller logic to operate as intended. I have to throw in the towel and give up on using the N-channel enhancement MOSFETs - the only type I had in the shop. 

THE PROBLEM WITH N CHANNEL MOSFET SWITCHING

The N MOSFET needs a positive voltage on its gate relative to the source, of a high enough differential to switch on the channel and pass current from the drain through the source (actually electrons flow from the source to the drain, but the conventional notation used in circuits has the current flowing from + to - terminals. That is why an N channel MOSFET has a positive voltage on the drain relative to the source.

The classic circuit for these is to have the source hooked to ground, the drain hooked to the + rail through a current limiting resistor, and the load being switched is hooked between the drain and the limiting resistor. An Arduino delivering 0V to the gate will keep it off since the gate is NOT more positive than the source. The high (+5V) output of the Arduino is positive enough for some N channel MOSFETS, although some require a higher differential, thus it can turn on the flow through the MOSFET and pull the load down to ground. 

The situation with the 1130 and the 1053 is not the classic situation. The load line is pulling current from the + rail down to -3V inside the debouncer in the 1130. When the MOSFET is switched on, the load line jumps to nearly the + rail, when the MOSFET is off the load line is seen to be at -3V. 

The drain of the N MOSFET is thus nearly at the + rail  when the switch is off, but drops down to -3V when it is turned on. The gate is more positive than the source when the MOSFET is turned on, but we have to limit current through the resistor which drops the voltage sent to the debouncer circuit. When the switch is on, the current is flowing through the MOSFET in addition to going into the debouncer. 

This gets more severe with one of the signals, which has a +48V rail, as the current limiting resistor is set for 2.5W of consumption yet that lowers the voltage to the debouncer too much to work reliably. In reality, the classic circuit does not work well for me.

The ideal use of the MOSFET switch is indeed as a switch, with the + rail on the drain and the debouncer circuit on the source with no current limiting resistor at all. That way it works purely as a switch, the perfect analog for the mechanical switches in the 1053 typewriter we are emulating. The challenge comes from trying to control it with the gate.

The source voltage is going to vary now, from -3V when the switch is intended to be open up to the + rail when the switch is closed. The gate has to be more positive that the source to turn it on, but that means it has to be more positive that the + rail. Unless I want to add additional power supplies above the 12 and 48 V rails of the 1130, this is not possible to do. I certainly can't do it with an Arduino's 5V logic high. 

There is even the risk that some current will flow even when the Arduino puts out 0V, logic low, as that is 3V more positive than the source initially. The MOSFET is likely to turn on just enough to raise the source to a point where the gate-source differential is lower than its threshold.

P CHANNEL MOSFET IS THE SOLUTION

If I switch to a P Channel MOSFET and hook it up as a switch, the situation gets better. The rail connects to the source terminal, the drain is connected to the debouncer. The gate has to be more negative than the source terminal, but fortunately in this case the source is steady at the + rail, not varying as in the N channel case. We just need a way to get the gate to sit either at the + rail or about 8-10V below the rail, to have the switch off and on respectively.

That is provided by a simple NPN transistor and a voltage divider between the + rail and the collector. The emitter is hooked to ground and the Arduino will turn this on or off as it drives the base with logic high and logic low respectively. The transistor, when off, allows the MOSFET gate to see the full + rail voltage. When the transistor conducts, the pair of resistors in a voltage divider are sinking current to ground through the emitter. 

Choosing the values of the two resistors lets me set the gate voltage I want the MOSFET to see when we want to turn it on. The MOSFET doesn't need any appreciable current to the gate, thus the resistors can have high values. If the upper resistor is 30K and the lower resistor is 10K, with a +12V rail, the junction of the resistors will drop to 3V when the transistor conducts. putting the gate about 9V more negative than the source. 

Now this is simplified due to things like the diode voltage drop of the transistor and non-zero emitter-collector on resistance, but you get the idea. For the +48V rail, we can choose an upper at 18K and a lower at 47K to produce just under 35V at the junction and thus the gate will be 13V more negative than the source. 

I will order some P channel enhancement, MOSFETs with suitable voltages and thresholds. I have plenty of switching NPN transistors on hand and enough resistors to create the voltage dividers I need. 

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.