Sunday, October 12, 2025

IBM 1130 MRAM memory replacement - investigating Parity Check and random data occurrences

LOGIC ANALYZER CAPTURE RESULTS

I hooked up the DSLogic analyzer to the 1130 to capture key signals allowing me to figure out what is going wrong with the read and write process and the phantom parity check issues. The device can sample up to 16 lines at a time, which is not enough for a full capture of every signal of interest, but should allow me to watch subsets until I spot an issue that hints at where to zoom in. 

If I had unlimited channels, I would capture:

  • all 16 B reg values. 
  • all 16 sense bit outputs
  • check bit 1 and 2 sense outputs
  • storage read and storage write commands
  • T0 to T7 clock pulses of the 1130
  • parity check detection signal
  • all 13 SAR values going into the board
I began with sampling  some timing related information to see if I am doing things at the wrong time. I grabbed storage read, storage write, T0, T2, T4, T6, the parity check signal and some sense bit outputs including the check bits. If the sense bits are being produced at the wrong times, e.g. too late in the read cycle when we are already starting the write, then it might lead to the conditions I am observing. 

Doing a read of a word that is all zeros produces the correct data without a parity check, but when the word has bits that are a one, I saw that the board then was emitting a continuing stream of bits long after the read was completed. 

FAILURE MECHANISM

The circuitry for the B register will set the bit to one if a pulse arrives on the sense bit lines - any time that it arrives. It is not gated to only activate during the time of a read, it will flip on the bit whenever it arrives. Thus if my board emits sense pulses it is going to stomp on the B register. 

Why this is happening was not immediately obvious. I put a timer chip on a breadboard and tried to cause it to fire off a stream of pulses but couldn't create a plausible sequence to make this happen. The chip I am using on the board, sn74lvc1g123, is a retriggerable timer, thus it can produce a stream of repeating pulses in the correct circumstances. 

I will have to do some analog investigation, as the issue might be noise, invalid logic levels or other issues that won't show up on the logic analyzer. 


Saturday, October 11, 2025

IBM 1130 MRAM memory replacement - continuity test, then testing on the IBM 1130

CONTINUITY AND SOLDER JOINT TESTING

I found one pin that appeared to be soldered well but lacked continuity - the output of the write timer circuit. Based on this I decided to do a more thorough test using the PCBite probes to check that each pin on a chip had continuity to the appropriate end points and that there were no shorts to adjacent pins. This was time consuming but worthwhile.

I came across about ten connections that looked like shiny good joints and the pin wouldn't move when pushed sideways, but electrically they were capacitors or open circuits. I carefully repaired every one of them.

I took the time to check many of the control connections and the memory address lines for good continuity. Once I believed this was likely free of bad connections, I moved over to test with the 1130. 

LIVE TEST ON THE IBM 1130

I plugged the board into the IBM 1130 in place of the IBM core memory compartment B-C1, connecting cables T1, T3 and T4 as well as +12VDC power. The machine was powered up and I could do some quick tests. 

Using the rotary mode control set to Load and to Display, I can load chosen patterns into memory and read the results. The pattern is toggled with the 16 console entry switches (CES) and the results show on the display panel as the Storage Buffer Register output. dete

I saw a few spurious Parity Checks - which should never happen because the two parity check bits are created on the fly by my board based on the memory contents. Mostly the memory was storing the data I set on the CES and retrieving it when requested, but there were those phantom Parity Checks to consider. 

I then used the Storage Load and Storage Display functions that are available to the repair engineers - these let me set a pattern on CES and loop repeatedly through memory setting that into every word. Once done I could perform the Storage Display and loop repeatedly reading memory. During these events I found a few more phantom Parity Checks. 

More disturbingly, when I went back to use the rotary mode to display locations, after having set every word to FFFF, the data coming back was somewhat random, not the pattern. 

FIRST THEORY

I suspect this is a timing issue, because the detection of a parity check occurs during the write portion of a storage cycle, when the data should have been established along with its chosen parity by some logic in the CPU. It could also be a continuing issue with reliably triggering the B register flip flops with the sense output pulses. 

I will have to set up a logic analyzer to capture key signals while I run some Storage Load, regular load, Storage Display and regular fetches from memory locations. That will help me focus down on the area having problems. 

Side project - MV864A meter restoration - blocking out entire schematic

USING EXISTING MANUAL SCHEMATIC TO BLOCK OUT NON PCB PORTIONS

I chose to use the schematic in my manual, which is too modern to match the version of the meter I own, to block out the remaining functions most of which are not on the two printed circuit boards. This includes the Range Attenuator, the Function switch, the Meter, the input jacks, the zeroing pot for the meter and the pot to adjust the full scale resistance reading to 0. 

The components used for the Range Attenuator sit on the power supply PCB and are joined to the rotary switch via wiring. I used the manual version of the part numbers for the parts that will be on the power supply PCB for now. This is because the part numbers on the board don't match between the manual and the actual meter I own. As well, the numbering scheme for the rotary switch, function switch and other parts that are not on a PCB are different so I went with the manual initially.

I intend to trace out the actual meter to resolve all the numbering to match my actual meter. I will also catch any changes in the circuit that exists between the manual version and my schematic. I don't expect many differences in this part of the device but we shall see. 

NOT DONE WITH THE RANGE ATTENUATOR YET

I put in quite a few resistors and connections for the range attenuator but have not finished yet as it is tedious work with many parts that have to be wedged into the schematic around the rotary switch sections. I did complete the Function switch.

REMAINING WORK OTHER THAN RANGE ATTENUATOR AND MATCHING MY METER

I have to put in the output connector on the back that delivers a 0-1V output matching the meter deflection. The pot to zero the meter is not yet implemented. 

I then have to rationalize a connection from the Function switch to the power supply which in the version from my manual is passed a fixed current produced by the power supply. My reverse engineered power supply does not have a current source like this, so this will be a notable difference between the manual and my meter. The current is applied only in the resistance function to power the input jacks so that a voltage drop is generated on the resistor under test, which is then measured by the meter.

SCHEMATIC SO FAR


 

Side project - MV864A meter restoration - simulating the DC Modulator Driver that produces 94Hz chopper signal

TRYING TO TEST SECTION BY SECTION USING LTSPICE SIMULATION

I started with the circuit that should be oscillating at 94Hz, producing square waves on LEDs inside the photoisolator component. This part of the circuit is called the DC Modulator Driver.

The light from the LEDs falls on two variable resistance photocells in that component, which are biased by the input signal to the meter and then amplified. Ultimately, the meter will compare the output of the oscillator with the detected but biased signals to capture the results of the input. 

I found an error in my schematic but after correcting it, I was still unable to see oscillation of the circuit. The manual's schematic has a different design using silicon transistors rather than the germanium ones in the actual meter I am restoring. I captured the DC Modulator Driver circuit from the schematic in the manual but that too did not oscillate. If it had worked but my reverse engineered version did not, it would focus me on possible errors or inadequate modeling of the germanium semiconductor devices. 

Since neither works, I have to find the root cause of the failure. It may be some missing components inside the photoisolator component, which is a sealed can that the manual insists should only be serviced by Millivac. I do know that the meters work in real life. 

GETTING THE MORE MODERN VERSION IN THE MANUAL TO WORK

A mistake in drawing the circuit of the manual's version of the DC Modulator Driver caused it to produce the 94 Hz output I expected. I tied on side of the oscillator output to the bias voltage source, which caused the opposite leg to produce 94Hz. However, when I corrected the drawing the simulation once again flat-lined. 

That was a clue. Turns out the value of the inductance, the four resistors in the photoisolator component and the bias voltage setting on the pot are all inter-related and must be in certain ranges to achieve oscillation. 

GETTING MY REVERSE ENGINEERED SCHEMATIC TO WORK

I discovered that the signal transformer was quenching the oscillation - when I removed the transformer I got my 94Hz square waves but oscillation didn't happen with the coil in place. I don't have specifications for the coil that I had to take wild stabs at inductance to find a value that allowed the transistors to oscillate. 

It could be that the transistor model I used didn't have enough oomph to oscillate, since I also don't have specifications for the 2N1373 germanium transistors I found in my meter. Also lacking were the resistance values in the photoisolator and the LED characteristics. 

PASSED REASONABLENESS TEST

Since I could achieve oscillation with generation of the square waves with certain component values, plus knowing that the real meter works so it is definitely oscillating, I knew that the schematic I derived was now representative and correct. 



Friday, October 10, 2025

Construction of new 1130 MRAM memory board completed

BUILDING THE NEW BOARD

I used my hot air rework tool to remove the parts that were to be salvaged from the old board. These were still part of the design of the new board. For each, I removed it carefully and then soldered the part onto the new board. 

This included the gold pins that form the connector that the IBM 1130 cables are plugged onto. For this, I used the soldering iron and pushed the pin up a bit so that I could then grip it with pliers and remove it while heating again. I use a spare socket to push the pins into, ensuring the 24 pins are aligned properly when I solder them down to the new board. 

I examined the board closely with the microscope, pushed on leads to ensure a good bond for each pin to its pad, and did a few continuity tests including validating there was no short on the main power rails on the board. 

I had to return home to wait for a delivery (an area rug was cleaned by an outside service), but will attach and test on the 1130 system when I get back to the shop. 

Thursday, October 9, 2025

PCBs and parts are on hand - beginning construction of new 1130MRAM board

EARLY ARRIVAL OF PCBS

The delivery estimate for the new version of the memory board was Friday afternoon, but I was pleasantly surprised to receive it early this afternoon (Thursday). That was the last part I was waiting for in order to build what is hopefully the final version of the board and put it into the IBM 1130 system. 

BEGAN BUILDING NEW BOARD, INVOLVING MOVING PARTS ACROSS FROM OLD BOARD

The design has some new parts on it, both in the power supply area and for the Sense bit output circuits. I first installed the power supply and checked its operation before installing the rest of the circuitry. It gave me a reliable 3.3V supply for my circuits and isolates the ground when power is not applied so that there is no back feed of voltage from a partially energized 1130 into my board. 

The bulk of the construction will take place tomorrow, but I was able to install two of the timer chips that produce an 80-100ns pulse delayed 800 ns from the trigger event of a write to memory. The timer chips are very small and a challenge to solder, but I got them on and validated good connectivity for each lead without any shorts to adjacent pins. 




Side project - MV864A restoration - substantial progress in reverse engineering

POWER SUPPLY SCHEMATIC VERIFIED WITH LTSPICE SIMULATION

I had some errors in the schematic I drew for the power supply, which I identified when I began simulating the power supply in LTSpice. I had to invent a few models for the germanium transistor and RA1 reference amplifier, as well as dropping everything from the main transformer back to the wall plug, then put some resistors as loads for the -14.5VDC, -6VDC and the AC supply for the power on lamp. 

The result is a high confidence schematic for the power supply:


MAIN BOARD CAPTURED IN A SCHEMATIC

My drawing of the main board components is done but I have not yet done LTSpice simulation of the sections to validate my work or spot errors. Simulating transformers is a bit hokey in LTSpice, particularly a schematic with five independent transformers most of which have center tapped windings. Instead, I will replace the transformers with voltage/signal sources and inductors as the output load so that I can watch each section perform its role. 

DRAWING THE RANGE ATTENUATOR AND FUNCTION SELECTION CIRCUITS

The range attenuator selects the proper range for the input voltage, current or resistance, with fifteen steps or levels. It is implemented with a complex rotary switch having eleven sections with fifteen contacts apiece. This switches resistors to reduce the input to a standard level that the rest of the circuit is designed to handle. 

The function selection circuit has six positions - off, + voltage, - voltage, +current, =current and ohms. This rotary switch has seven sections with six positions each. I am about halfway through the range attenuator capture at this point. 

WILL CAPTURE INTERCONNECTS BETWEEN BOARDS AND CONTROLS

There are quite a few wires that run from the rotary switch to the two PCBs - as the power supply PCB has many of the resistors on it that are part of the range attenuator, it has the most wires connected. There are also a number that run from the input jacks and the main PCB to the range attenuator. That will wrap up the work reverse engineering this meter.