Monday, June 29, 2026

Thinking about auto-aligning mechanism for the Diablo drive when archiving 2315 cartridges from an IBM 1130

IDEA FROM AI MAKES SENSE

I had listened to a hobbyist describing how they added a physical micro-positioner to offset a disk arm on a vintage drive when trying to archive content. It was for an entirely different disk drive and technology, but I was idly exploring the idea when I received a quite elegant solution from Google AI. 

It seems eminently achievable with minor modification to the Diablo drive and my FPGA archiver can generate the offset voltage to shift the heads forward and backward off the target track location. If a cartridge were written on a drive whose alignment of the heads was different from the standard position, then the recorded signals are slightly inward or outward from the standard track position by the amount of the misalignment. 

By modifying the servo feedback that keeps the heads exactly on position, the motor can shift the position where we read or write by some fraction of a track width. I can move to a particular track position with zero offset, then begin reading and interpreting the contents of the track at various offsets. The best results - no error checking or sync errors detected - would be the offset from which I archived the cartridge. 

HOW THE DISK DRIVE ARM MOVEMENT WORKS

The Diablo 31 disk drive uses a positioning mechanism that dynamically adjusts the position of the arm based on the target track and holds it in position based on an error signal it generates. Thus the drive moves the arms in and out driven by a rotary motor. This is very different from the IBM 13SD disk drive that is installed in an IBM 1130, which uses a mechanical ratchet to establish the arm at a particular track. The 13SD drive also uses a linear voice coil motor and only moves in 1 or 2 track increments, unlike the Diablo which can move smoothly as much as 203 tracks in one operation. 

A set of two signals 180 degrees out of phase are produced by teeth on a pickup disk that rotates under a fixed toothed transmitter on the motor. The signals A and B are used to create a sine wave that has a zero crossing at the spot where a track should be centered. The signals are also differentiated to judge velocity, so that the servo mechanism can control the speed of the arm movement as it seeks towards its target location. 

A counter is loaded with the number of tracks to be moved and is changed with every zero crossing of the position sine wave, until the count is complete. The drive then generates the error signal which is at zero when exactly aligned with the zero crossing point, but goes positive or negative when the arm moves out of position. This may occur from vibration, for example. 

The error signal is applied to the motor to bring it back to the zero crossing point, thus keeping the heads right over the center spot for the track. Whereas the 13SD drive mechanically locks the arm with the ratchet, the Diablo 31 has this servo loop to maintain position. 

ESSENCE OF THE MODIFICATION

The modification concept is very simple. Intercept the error signal and apply offset voltages to it, thus causing the servo to shift the head off center. An operational amplifier (OpAmp) is used to sum two voltages - the error signal from the drive electronics and an offset voltage in the range of -50mV to +50mV - which is then passed to the servo loop. 

If we shift the error signal by -20mV, for example, then the servo loop is going to move the arm until it has a true error signal of +20mV, which combines with our offset to yield a zero volt result that the servo locks into. We have a voltage source we can adjust via signals from the archiver, which generates the offset voltage. This feeds the new summing OpAmp in the servo loop.

The archiver normally produces 0V for the offset signal. In the adjustment mode, we pick a track to read and make multiple passes, each time varying the offset voltage in its range of -50mV to +50mV, picking the range of offsets that give us the best results. I envision a version of this that is used with an oscilloscope to visually judge the quality of the signal from the read head, as well as a pre-programmed version that attempts the assessment. 

An automated assessment might employ a phase locked loop on the clock bits and record cases where the clock is not detected at the proper time. That would be caused by the head voltage from the clock pulse dropping below the threshold for detection in the drive. Combine the 'missed clock' count with counts of check bit mismatch or sync failure and you would be able to mark those offset positions that are completely unsuitable. 

Looking over the counts on the range of offsets should yield the outer edges of acceptable reading for this test track. Find the midpoint and that is the desired offset with which to read for this side of the platter. Since the upper and lower heads are independently aligned, the correct offset may be different for the two sides. 

Then, during archiving operations after having determined the offsets, the archiver circuitry can produce the desired offset voltage appropriate for the head being selected. As the software switches between surfaces, the arm position could shift as well. 

We might need to add in some settling time when we change the offset. Thus, once the drive finishes a seek or a head selection change, when it believes it has stabilized the position and begins holding position with the servo loop, we apply the offset and wait a very short time. 

I don't think it requires much of a delay, since the dynamic nature of the servo loop which is keeping the arm in position already involves minute shifts to keep the head on the track, yet the drive design doesn't make any special compensation. It assumes this has no effect on quality of reading or writing. 

MY THOUGHTS ON IMPLEMENTING THIS

In my experience archiving around one hundred cartridges from the Xerox PARC library, I didn't find cartridges that had issues being read correctly due to misalignment. The issues we encountered were with cartridges whose surfaces already had some damage from light head crashes, which cascaded into heavier crashes that damaged the magnetic oxide to the point that the data wasn't recoverable in that area. 

The majority of the cartridges that I have on hand to archive came from two 1130 systems in Kansas, one at the business that owned my computer and another from a college nearby whose system was bought by the owner of my system as a second machine. At worst, I would have two alignments that between them would read everything but more likely all of the cartridges are recoverable with a single setting.

The IBM strategy with these drives was to align every drive to an IBM manufactured 'CE' cartridge, one that had a special pattern recorded to align heads. Each drive was aligned to these reference cartridges, which was intended to allow full interchangeability of cartridges between 1130 systems. 

The accuracy of alignment was not critical. The instructions for performing an alignment didn't enforce some maximum deviation from a perfect position. Following the instructions would likely result in heads that were offset from each other but were close enough for successful reading and interchange. 

The tracks are spaced .01 inches apart center to center (and the width of the recorded signal is then trimmed down by the erase head to a  width of .005"). This generates a dead band between tracks of approximately .003" which is where we would see the signal drop off. A full sine wave from the position detection circuitry would span .01" with the zero crossing point at the .005" center and the dead band appearing at around .0015" and ending around .0085" from the start of the sine wave. 

This suggests a simpler method of determining the offset for a head. Offset while watching a scope until the dead band appears, offset to the other side and note when the dead band appears, then pick the center of the range for the offset to use. This also appears to be a method where one could align a drive without having access to the special CE cartridge. If one arbitrarily assumes the cartridge one is currently reading is 'correct', then centering between the dead bands should give a workable alignment. 

The CE cartridge records a special pattern at track 100 that is an absolute reference. The above paragraph would be a relative reference, only as good as the alignment was for the cartridge you are using. 

Track 100 on the CE cartridge was recorded with the axis of rotation offset so that the track circle is offset from the center. Thus, the recorded signal will shift inward and outward from the arm position during each rotation. Watching on a scope, the arm is shifted in or out until the size of the signal is the same on both sides of the head, meaning it spends equal time on each side. That would put the head directly over the desired absolute track position. 

Pattern when 80% off from good alignment

Pattern when only 40% off

Pattern when correctly aligned


No comments:

Post a Comment