Thursday, September 4, 2025

Continued testing of the 1130 MRAM Core Memory Replacement board

SWAPPED IN THE HC CHIP VERSION FOR 3.3V SUPPLY

I had installed 7400 series chips (and other types) on the board that were able to work on a 3.3V power supply, but a recent switch from an AND to a NAND gate, open collector, I put in 74LS03 which require a minimum of 4.75 VCC. The 74HC03 parts arrived last night and were installed on the board. 

TESTING ON THE BENCH

I am working to rigorously test the PCB while on the bench before I install it on the IBM 1130 system. I wanted to write to different memory addresses using unique data values, then test by reading the locations and comparing the returned values. 

I whipped up some code on an Arduino Due (because it uses 3.3V logic levels), expanding on my previous code that generated the correct timing of Storage Read and Storage Write signals that would come from the IBM 1130. These alternated for 1.8 microseconds duration. I stored fourteen addresses and corresponding data values in the program then stepped through the list cyclically. At the start of a Storage Read it sets the memory address (and data value for the upcoming write). The Sense pulses are generated during the Storage Read and then the location is updated during the Storage Write. 

I used direct port mapping to write the pins since the DigitalWrite function is relatively slow. The Due requires that a 1 be written in one control register to turn on a pin, but it doesn't turn off it 0 is written there. Instead, a 1 has to be written in a different control register that clears pins. 

After the first pass, the memory would have had all locations set up with the prepared values from the program. I would then set the scope to trigger on Storage Read rising edge or an address bit rising edge and monitor three output lines from the board at a time. Due to limited pins on the Arduino, I couldn't simultaneously produce the 16 B register data values, the 13 SAR address values and capture the 16 Sense pulses to verify. 

With just 3 pins that I can monitor at a time on the scope, I had to be clever to test the correct data returned from each location. These are open collector inverted outputs, thus a 1 bit pulls its pin to ground else it is pulled up to 3.3V using a resistor.

The addresses I chose were 0, 1, 2, 4, 8, 16, 32, 64. 128. 256, 512, 1024, 2048 and 4096. I can uniquely trigger on those addresses except for address 0. The values written were 1 through 14 decimal in sequence. 

I had previously validated that all 16 sense pulses are generated when the corresponding bit was written in memory, also that all 16 of the data value (B reg) bits were stored in the memory words. This is just a test to be certain that we are addressing memory correctly. Any result of 0 detects an addressing or write failure. 

When I tried to observe the outputs from the Arduino I found that it just could not keep up with the 1.8 microsecond durations of the memory cycle. To get reliable results, I had to slow it down to 1.8 milliseconds for read and 1.8 milliseconds for write. That won't stop my memory board from working, since my logic triggers on the edge of the read or write signal and its not sensitive to its duration. 

The connections using jumper wires are a bit fragile, thus I had to deal with some erratic results. More frustratingly, I would sometimes turn on the +12V bench supply and see zero current being drawn. The wire connection on my PCB showed 3.3V which is the correct output of the regulator, so I didn't understand why this was happening. 

UNDERSTANDING THE WEIRD RESULTS

The power confusion is due to the ability of the voltage regulator to buffer quite a bit of energy, when combined with the very low draw of my board, so that it can sit drawing zero power from the bench supply for long periods. 

I then realized that the slow speed I set up for alternating Storage Read and Storage Write cycles didn't completely solve the glacial relative speed of the Arduino compared to my board. I saw that the delay from when I set Storage Read high until the main loop of the software set the Storage Address Register and B Register outputs to the board was approximately 6 microseconds. I was already using direct port mapping for speed but the problem is that the read is accomplished rapidly and the output is provided from my board in about 800 nanoseconds (0.8 microseconds) thus the data being read does not have the proper address yet. 

The residual address from the prior pass of the Arduino code is what the MRAM is reading, not the one I intended. I checked a few cases and felt comfortable that this is why I see the wrong bit being output for a given address.

WILL REWRITE THE ARDUINO DRIVING PROGRAM

I cannot use the timer based 1.8 microsecond or even the drastically slowed 1.8 millisecond control signals because the Arduino can't set up all my outputs in time for the very fast board circuitry. Instead, I will use the Arduino at its native speed to set up the SAR and B values, then toggle the Storage Read and Storage Write signals from the code. 

Specifically, I will split the program into one that only does Storage Reads in order to observe with the oscilloscope as above. The other version of the program will execute one pass writing the intended values into memory. 


Wednesday, September 3, 2025

Restoration of top cover glass for IBM 1132 printer

GLASS BROKE ON TOP COVER

The cover of the 1132 printer has a glass window to allow the operator to watch what is being printed while lowering the noise due to the cover being closed. Sometime in the past this printer had its glass cover broken - bits of glass were inside the machine although most had been cleaned up before I received the machine for renovation. 

The glass had rubber channels around all four edges. These fit under metal channels that hold the rubber and glass up against the underside of the printer cover. 

All the parts to hold the sheet of glass in place were present - minus the nuts - so all I needed to do was buy a replacement glass or acrylic sheet to the correct size.

BUYING REPLACEMENT ACRYLIC

Ace Hardware in my area has a service to cut acrylic sheets to size, which is perfect for a replacement. They can also cut glass if I decide to go with a glass sheet instead. I carefully measured the size I needed and then went to the hardware store to get the new window cut. 

The rubber channels from IBM are so degraded that they don't work well. I believe I will need to buy some weatherstrips and press them into service. 

Too, one of the edges is rusted out (see below). I fit the acrylic I had cut onto the printer, but have left the peel off plastic cover to minimize scratches until the printer arrives back at its home in New Jersey.

DEALING WITH SEVERE RUSTING ON RECESS IN THE COVER

The glass plate is slanted with the front lower and the back higher so the operator looking through the top gets a good view of the printed page yet the cover clears the tall forms tractor on the back of the carriage. This forms a recess at the front where rainwater collected and sat for long periods of time, judging by the rusting away of the sheet metal rising vertically from the glass to the top of the cover at that recess. The paint is peeling away, creating a mottled appearance of rust and thick peeling paint. 

I plan to remove the paint from the vertical sheet, sand the surface a bit, use rust converter to seal the surface, and then spray paint as close to a color match as I could. The same spray paint will be used to touch up the rotary mode switch on the IBM 1130 which had some rust spots and peeling paint. 


Tuesday, September 2, 2025

Reassembly of the 1132 printer - part 9

REED RELAY REPLACEMENT PCB ASSEMBLED AND ATTACHED

A complex reed relay (RR1) was discovered to have an open coil. This relay has four reed switches - two are normally closed and two are normally open. Three of the four switches are used by the PCB that contained this relay. It had a 48V coil. 

The RR1 relay activates when the printer controller logic in the 1130 has activated the Carriage Magnet to move the paper down one line or to skip until a hole is detected in some channel of the carriage control tape. 

Three relays RR1, RR2 and RR3 are used in order to have the Silicon Controlled Rectifiers energized from the time the Carriage Magnet is activated until the printer carriage reaches the next line position where the Carriage CB switch closes.  

I was not able to find a similar reed relay but worked out a solution using a pair of SPDT reed relays to substitute for the three reed switches that were used in RR1. The relays were not 48V, thus I also had to drop the voltage to the 5-6V range of the parts I bought. A small PCB I designed mounted the two reed relays and the dropping resistor. 

I installed the two replacement reed relays, which were in 8 DIP form, plus a 2W resistor onto my new PCB. I added wires between this small PCB and the main IBM PCB which had contained the failed RR1 relay. 

CARRIAGE CONTROL TAPE PCB REINSTALLED

The IBM PCB mounts on the side of the frame at the right rear of the machine, with three connectors that plug into it from two sides. With that in place, I mounted the small new PCB with my relay substitute just above it. 


FORMS TRACTOR AND PAPER FEED GUIDES INSTALLED

The printer uses continuous forms with pin feed holes on the two edges of the paper. A tractor mechanism holds the paper with pins through the feed holes and advances it when the platen turns. This was inserted on top of the carriage mechanism.

A guide attaches to the top rear of the carriage to guide the new paper up into the forms tractor and to guide the printed pages as they come out of the machine. Often the operator would have a box of blank forms up against the rear of the printer with the paper fed up through the tractor and then an empty box behind the blank paper box to catch the output as it comes down from the paper guide. 



Dealing with the broken clutch fork on the 1132 printer carriage mechanism

IDENTIFIED BROKEN PART IN CARRIAGE

The knob which switches the platen in and out of engagement with the gear box is shown in the diagram below from the parts catalog, with the parts circled in green. The knob rotates and a pin on the inside turns with the shaft. That pin fits in the notch in the metal fork piece on the top of the assembly to the right.


The next diagram is an exploded view where you can see the piece that has one of its fork tines broken off. It is hooked onto the shaft with a tapered pin. 


With one of the tines of the fork broken, the pin on the back of the knob shaft can't move the fork back and forth, twisting the shaft to cause the platen clutch to engage or disengage. I believed I needed to restore the U shaped channel or add back the second tine so that the knob shaft can cause the fork's shaft to turn in both directions.

FINDING THAT SPRING IN CLUTCH OBVIATES NEED FOR THE SECOND TINE

While I was watching the motion of the knob and the fork, considering ways to replace the tine's function, I noticed that the platen clutch would be held out of engagement by the remaining tine when the knob was turned to Out but when the knob is turned to In, the clutch pulls the fork over to engage. 

That is, the tine doesn't need to move the fork since the spring force in the clutch assembly is trying to pull it to the engaged side at all times. It takes positive force to disengage, using the remaining tine, but when that force is removed the clutch snaps into operation. 

NO WORK NECESSARY, THE IN/OUT KNOB WORKS PROPERLY AS IT IS

I can cross this task off the restoration list since the printer works properly without having to address the broken tine of the fork. 

Side Project - Restoring an HP 4261A LCR (inductance, capacitance and resistance) meter

HP LCR METER

The 4261A meter measures the resistance, capacitance or inductance of components. It applies signals at 120Hz and 1KHz, treating the attached device as an series or parallel equivalent circuit. It measures resistances from 100mΩ to 10MΩ, capacitance from 10pF to 10mF, and inductances from 10 μH to 1000H. 

In addition it measures the dissipation (energy loss due to phase angle) for inductance and capacitance. The meter steps through ranges and in auto mode will even switch between series and parallel equivalent measurements for the device. 

QUICK INSPECTION

The device was a bit dirty but seemed in good shape otherwise. It had been powered on by the seller so I did the same and tried some measurements. The results were reasonable and the device appeared to be mostly working okay. 

I will perform all the tests and adjustments using the manual, after which I will determine whether there are any defects I have to find and fix. I ordered high precision capacitors, resistors and inductors for the testing. 

TESTING POWER SUPPLIES

The power supply was slightly off, but after adjustment all was correct with power. 

SELF TEST CHECKS

The device has two self tests that can be performed by sliding a switch on the inside to either test 1 or test 2 positions. I ran both tests. 

Test 1 will step the device through all its ranges, displaying a count of 1888 with proper decimal point positioning and a dissipation reading of 000. I saw a few ranges where it displayed 'out of range' instead of 1888, but the manual indicates that this is the expected result. 

Test 2 will display measured values of 1000 as it steps through all ranges, with some tests using shorted input terminals and others using open terminals. A few ranges were 'out of range' but that was also to be expected. 


I will run calibration and adjust this meter once my reference parts arrive, which will give me a very useful tool when I am repairing devices. 


Side project - repairing a Sony VP-5000 U-Matic video tape deck for the Space Force Museum

U-MATIC VIDEO MACHINES FOR PROFESSIONAL VIDEO WORK

The video recorder/playback universe spanned broadcast studio requirements with its 2" high speed tape down to home units such as VHS or Betamax with 1/2" wide tape. An intermediate level of quality (and expense) existed for professional but non-broadcast uses, such as the Sony U-Matic machines using 3/4" wide tape cassettes. 

EXAMINING THE MACHINE AND IDENTIFYING PARTS NEEDING REPLACEMENT

I opened this up and looked over the machine to see if there are any signs of damage or parts that definitely need replacement. I expect that the rubber parts are degraded. They didn't seem to be have hardened to develop cracks but I suspect their elasticity is lessened which would cause slippage for belts. 

EBAY KIT AVAILABLE FOR THE RUBBER BELTS AND TIRE

I found a kit with the rubber drive belts and the rubber tire for the main drive wheel which I purchased from eBay. This should give me replacements for all the worn parts, as these typically dry out on these machines (and on their Betamax smaller kin). The parts arrived and were ready for the restoration work. 


PURCHASE SERVICE MANUAL INCLUDING SCHEMATICS

Having the detailed schematics, adjustment procedures and other service information is essential to get a device like this operating properly. I received it and was ready to move forward with the restoration. 

CASSETTE LOADS BUT MACHINE GOES TO STANDBY, WON'T EJECT

Sliding the cassette into the front of the drive starts the load sequence, where it lowers the cassette into the machine, threads the tape around the head and should then be in stop mode waiting to play or perform other operations. Instead the deck enters Stand By mode which indicates some issue arose. Hitting Eject will not unload the tape, the machine remains in Stand By state. 

BELTS AND TIRE REPLACED, STILL GOES INTO STANDBY MODE

Once the new rubber was installed I tried again and did get the tape to load then let me start playback. However, attempting to return to Stop mode, rewind, fast forward or eject forced the machine into Stand By mode.

replaced main capstan motor

closing up the bottom side

Replaced belt that drives the threading motor and tire

Replaced cassette loading belt

DISCOVERED THE PINCH ROLLER ARM IS STICKING AS IT PIVOTS

There is an arm that moves the pinch roller on the tape to deliver controlled speed during playback, then moves out of the way for eject or fast tape movements. The arm stuck partway out, which the logic detected as a failure to complete its mechanical motion. There are many sensors in the deck to provide feedback to the logic state machines. 

I realized that it was just sticky old lubrication causing the problem. I partially disassembled it and dropped in some clock oil. The lever soon returned to free movement, so that the machine will now load, eject, play, rewind and all the other mechanical operations. 

NEXT UP - DISPLAYING IMAGE TO VERIFY THAT VIDEO AND AUDIO WORK

I will play the tape I brought with me from the museum and attempt to connect it to a monitor and audio system. The mechanisms might be moving tape just as intended but if the electronics can't extract the contents from the tapes it will still be broken. 

If it is working, I will make all the adjustments and lubricate it so that it is ready for use extracting content from the archives. 

Installation of new rubber drive belts for IBM 1132 printer

TWO DRIVE BELTS WERE IN BAD SHAPE

A pulley in the machine steps down the speed of the AC motor to produce 300 RPM at the print clutch cam shaft and 111.6 RPM at the print wheel.  The print wheel spins through the 48 characters that the printer can produce, thus it takes just over half a second to complete one rotation. 

Any print line that uses all 48 of the characters would need about 0.54 seconds to print on all the columns with all the characters. Spacing down one line in order to print the next line on the page takes approximately .2 seconds, allowing time for the print wheels of the last character being printed to finish movement and for the carriage to move down one line. 

This means the absolute maximum rate that lines with all 48 characters can be printed is about 1.36 lines per second, roughly 81 lines per minute. Lines with fewer characters can finish when the last character that exists on the line has been printed. For example, lines with only numbers could print around 110 lines per minute. A standard page at 6 lines per inch vertical pitch has 66 printable lines, thus the printer barely prints faster than 1 page per minute. 

There is a belt from the motor to the pulley, and a second belt that runs from a different circumferential ring to the gear train that links the print clutch cams and the print wheels. These had sat in a fixed position for decades, thus the rubber set into the shape and would thump for quite a while until (if) it relaxed to neutral shape. Worse, one of the two belts had a tear from the inside edge almost all the way to the outer edge, which would cause the belt to completely fail in a short time. 

NEW BELTS WERE PUT ON THE PULLEYS

I measured the belts, which where 1/2" width standard V belt shapes, and found new belts of the correct size which I could order. When they arrived, I installed them on the pulleys. A protective metal shield covers the belts and pulleys. Fitting that in place around the belts and pulleys was surprisingly difficult. It required a staged assembly - removing a top plate, leaving the center pulley too lose for proper belt tension, installing the metal cover, then reinstalling the top plate. After all that, the belt tension gets set with the belts mostly hidden under the cover!

ADJUSTING AND TIGHTENING CENTER PULLEY TO ATTAIN DESIRED TENSION

The nut on the back of the center pulley axle is accessible from behind the covered belts and pulley. A lug behind the nut allowed me to pull the pully axle to achieve a good tension in both belts. I tested by poking a finger through holes in the metal cover, tweaked the axle position, then tightened it up.