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. 


Tuesday, May 19, 2026

Finished work on System Source Museum 1053 console printer

TEDIUM PAYS OFF EVENTUALLY - THE TYPEWRITER WORKS WELL

After I exited the loop of adjustments when all character positions were selecting properly in both upper and lower case hemispheres of the type element, I had just one final area to tune up. The 1053 has microswitches at key points in the mechanism to provide feedback to the controller logic inside the IBM 1130 system. These have to be set to fairly exacting points of the mechanical movement, otherwise the controller might start another character print or movement when the typewriter is not in a good position to accommodate it. 

One set are meant to protect the typewriter during 'long' operations. These are movements that take a variable amount of time to complete and are much longer than a single print or shift cycle. For instance, the time for a Tab movement to finish depends on which column we start from and how far away is the next column with a tab set. Similarly, carrier return time depends on how far to the right we were when it is started. 

The other inform the controller when the rotation of the mechanism is at a sensitive point where further commands shouldn't be attempted and then when the mechanism reaches a point where it could again accept requests. Typing a single character involves starting the print cycle from a standing start, moving the type ball and then coming to a stop. 

It is possible to stream an additional character before the print cycle stops, so that the clutch never stops it. The mechanism just continues around in another cycle. This allows the typewriter to reach its maximum speed of just over 15 characters per second, as it is considerably slower if it has to start and stop for each printed character. 

Shifting between upper and lower hemispheres consumes one print cycle, so the actual max printing speed also depends on the specific characters being typed - at worst case it will only print a bit less than 8 characters a second (if a shift is needed between each character). 

I was finally satisfied with its behavior and performance. I put the covers back on and wrapped it up, ready to be brought back to Maryland and enjoyed by museum visitors. 

PRINTER ADJUSTMENTS ARE FINALIZED, READY TO SEND THE UNIT BACK

I was happy to call them and let them know the console printer is ready for pickup. They can get their 1130 back in operation soon. The pickup is this Friday. 

ALSO LOANING A 1053 SIMULATOR FOR TIMES WHEN THE PRINTER FAILS

I designed and built a simulator that plugs into the IBM 1130 and replaces the connections to the 1053 console printer. It delivers the output of the printer over a USB serial link to a terminal or computer where the same results will be seen as would be printed on paper by the printer. 

It provides the same ability to set tab positions, left and right margins, offers a display of the current print column along the line, offers the same return, tab and space buttons for manual interaction, and displays the full character set in both red and black ink. 

It had been initially built with relay boards driven by an Arduino Mega 2560 to provide the feedback signals to the 1130, but the performance of the relays was not sufficient to meet the signal timing produced by the I/O Selectric printer mechanism. With each print cycle taking about 65 milliseconds, the -TWR CB RESPONSE signal would need to drop from 48V to 0 at 7.22 ms into the cycle and return back to 48V by the 43 ms point. 

The relay boards I initially used require up to 15ms to turn on and up to 10ms to turn off. That would have delayed the signal above until 22 ms into the print cycle, way past the safe point where further commands could be issued. Further, it would remain off until 53 ms. Generally these are acceptable for switching rates up to 10 per second, but the 1053 can exceed 15 cycles per second. 

Due to the high speed requirements, I whipped up a small board with four MOSFET switches to instead drive the feedback signals - due to their 12V and 48V levels the Arduino can't directly drive them. A quick check on the breadboard verified the suitability, with the IRF520N transistors I had in the shop turning on and off in mere nanoseconds, approximately a million times faster than the relays could operate. 

The 1053 has two SMS paddle cards that plug into the signal SMS connector block of the 1130 and one SMS power paddle card that plugs into the power SMS block. These are swapped with the cards from my simulator to make use of the simulator instead of the physical typewriter. 

I am loaning the 1053 simulator for an indefinite period to allow the System Source Museum to demonstrate their IBM 1130 even when the console printer, the most trouble-prone part of the system, is inoperative. This also saves on paper use since the paper forms needed for the 1053 have to be custom manufactured and thus are expensive. 

Diagnosed failure point of Calcomp 565 plotter carriage stepper circuit

SINGLE POINT OF FAILURE MUST BE SHORTED TRANSISTOR

The symptoms were that the ring counter was not advancing in either direction. That implied a single failed component must cause this since different parts were involved in moving based on the direction. 

The ring counter has three stages, each driving one coil of a stepper motor. The design is such that only one of the three stages has its output conducting at any time. A request to shift the ring counter comes in through two paths, one to shift to the right and the other to shift to the left. 

If we imagine that the ring counter is currently operating with the first stage active, then a shift right pulse will be passed only to the trigger transistor of the second stage. A shift left pulse is passed only to the trigger transistor of the stage 3. 

The one stage that is conducting permits the shift pulse to be passed to the next stage. When a pulse turns on the next stage, the voltage at the conducting transistor forces the other two stages to turn off. 

I verified that the output transistor for stage 1 was conducting and that it was passing the shift right pulse to the trigger transistor of stage 2. However, stage 2 did not switch on, there was only a very short blip. Further, since it did not switch on, stage 1 was not forced to turn off. That might look as if it could be caused by a bad trigger transistor for stage 2, except that the same failure occurs with a shift left pulse which involves a completely different stage and trigger transistor. 

If, however, the germanium PNP output transistor of stage 1, a 2n392, had failed in a short circuit then it would effectively be conducting at all times. Initially it would direct the shift pulses to stage 2 or stage 3 trigger transistors, but would continue to conduct which would immediately force those other stages back off. 

REMOVED THE SUSPECT TRANSISTOR - STEPPER NOW MOVING PARTIALLY

I pulled the transistor off the board. That would allow the trigger to move the ring counter to stage 2 or stage 3 depending on whether we selected Carriage Right or Carriage Left, but it would not be able to move back to stage 1. It was enough to verify that a permanently conducting (effectively shorted) transistor was causing the symptoms.

TRIED TO MOVE SAME TRANSISTOR TYPE FROM PEN UP/DOWN CIRCUIT - ALSO BAD

The flip flop circuit that drives the pen solenoid is triggered by Pen Up and Pen Down commands, which should alternate turning the solenoid on and off. I get good trigger signals when the switch is moved but their is no change in the output transistor.

Since it was the same type of transistor (2N392), I pulled it to see if it was good and might temporarily give me a working carriage stepper. Alas, it too was stuck on, both in the pen solenoid circuit and therefore for stage 1 of the carriage ring counter when I moved the transistor there. Ordered another 2N392 from eBay. 


Monday, May 18, 2026

Adjusting System Source Museum 1053 console printer (typewriter)

ADJUSTING THE MACHINE TO CORRECTLY SELECT CHARACTERS FOR PRINTING

There are two aspects to adjusting the Selectric mechanism correctly for printing characters - tension on the two metal tapes and timing. The metal tape bands pull on components inside the carrier to twist the typeball to a specific column and to tilt the ball up or down to a specific row. The ball is locked into position at a defined time as it is pivoted forward to strike the ribbon, which must be related to when the tape tension is changed and when it must hold steady. 

A print cycle is the process that begins by moving the selection levers and ends when the typeball returns back to rest position after having struck a character on the paper. The selection levers are pulled down at the early part of the print cycle, which apply differing amounts of tilt to the levers that the metal tape bands run around. Tilting the lever further from the side of the frame will add tension to to the tape band that runs over the pulley, while tilting it inward will release tension. 

Thus, the lever and pulley that the rotate tape runs over will move up to five steps outward and five steps inward to select among eleven levels of tension on the rotate metal tape. The coil spring under the typeball resists the rotate tape tension, so that relieving a bit of tension will allow the spring to turn the ball one way, while adding tension turns the ball the other direction. 

The lever and pulley that the tilt tape runs over can move up to three steps outward from the frame, selecting among four levels of tension. A spring resists the tension of the tilt metal tape, but when the tension increases the cam that the spring pulls on will turn stretching the spring. This is transmitted to a gear that tilts the typeball to its row (tilt) positions. 

It takes a bit of time in the print cycle for the selection levers to be fully set and thus the tension on the two metal tape bands is changing during that time. Once the levers have settled to their full positions, the tape tensions should be static. At this point, a detent lever is lowered into the notches on the bottom of the typeball. This forces the ball to a more exact alignment of the column of type above and holds the ball steady while it is striking the ribbon to produce a character. 

The lever must NOT detent until the two tapes have stopped moving, otherwise the change in tension of the tape no longer produces movement of the ball, instead putting stress on the metal. They can fatigue and eventually break if the tape tension changes when the ball cannot move. Similarly, if the typeball is twisted by hand when the tapes are not changing tension, it can put stress on the tape and lead to fatigue failure. 

As well, after the ball has struck the ribbon but before it returns to rest position, the selection levers begin to restore to their idle position and the two metal bands change tension back to their rest states. The detent lever MUST be removed from the typeball before the tape tension changes, otherwise we again can strain the tapes leading to failure. 

The adjustments for timing must ensure that the detent lever is in the notches of the typeball only when the tape tension is not changing. It must enter before the ball hits the ribbon and it must disengage before the selection levers begin restoring. 
 
The adjustments for selecting the correct character must ensure that when the selection levers pick among the 11 column and 4 row positions, the ball turns to the intended row and column. Detents in the typeball notch (and underneath on the tilt mechanism) will adjust for minor misalignments and hold the ball steady during that midpoint of the print cycle. 

Ideally the ball is perfectly aligned for all of the tilt and rotate targets, but real world variations exist in the parts. Thus, the detent levers make fine adjustments - the more they have to adjust, the more strain on the tapes so we want to be as close as we can to perfect. 

One addition factor complicates things. The shift mechanism selects from one of two hemispheres of the typeball. On a typewriter, these are upper and lower case characters, but on the typeball with the IBM 1130 there are only upper case letters. Instead, it is numerals and special characters that exist only one one side or the other. 

The shift mechanism has its own lever and pulley on the right frame of the typewriter. It can pull the rotate metal tape band to add enough tension to spin the typeball 180 degrees. This is in addition to the tension adjustments performed by the rotate lever on the left frame. Ideally this is exactly 180 degrees but in the real world it is not. Thus, we have to check for the alignment of the typeball for the eleven rotate columns on both sides of the typeball. 

A given column might be exactly right on the 'lower case' side but off a bit on the 'upper case' side, due to variations. We want to find the best adjustments of everything to minimize the error in positioning for all 88 characters, two hemispheres by four rows by eleven columns of shift, tile and rotate. 

These adjustments are interrelated and take quite a bit of time to dial in to a suitable accuracy. This involves hand cycling the print cycle, adjusting gear positions to time the detent lever movements, and changing lever points and rod lengths until the row and column positioning of the typeball JUST BEFORE detent engagement are as spot on as possible. 

LOOPING THROUGH ADJUSTMENTS - EACH ONE AFFECTS THE OTHERS!

The adjustment instructions give a sequence of parts to check and adjust, as if it were a linear process that results in a perfectly working machine when you finish the last step. If only that were true, I would have been done several hours ago.

Instead, each adjustment may shift the parts involved in prior adjustments, so that they are no longer set to the desired position. One needs to iterate through the adjustments, hopefully so that the deviations shrink over time and the results are 'good enough' when you hit the last step once again.