CADHouse Diaries #2

Posted by bob on June 8, 2022

Let’s continue our stories of Ben and the CADHouse who designed his Printed Circuit Boards (PCBs).

The CADHouse reported that they had stumbled onto a strange problem with their primary CAD (Computer Aided Design) computer. The system was able to save and retrieve design files to/from 8 inch floppy diskettes. (Yes, this was a long time ago.) The computer had no problem reading and writing onto existing diskettes, but any attempt to format a new disk failed with a vague error report. (Ben recalls the message being something extremely useful like “Format Failed.”)

Unfortunately, the service company technician had been unable to identify the root cause and was recommending a relatively expensive drive replacement. Ben offered to drive to the CAD House to see if he could help diagnose the problem. In a past work life, Ben had actually designed the disk formatting software for a very early floppy disk controller design, so he felt he might be able to understand the problem, if not fix it.

Ben thought for a long time about what might cause a disk drive to refuse to format a diskette, even though the same drive could successfully read and write to existing diskettes. The ability to read and write existing diskettes meant that the disk drive’s head positioning system was probably working okay. It also meant that the head write amplifier and connections to the disk drive read/write heads were likely to be okay.

When Ben arrived at the CADHouse, his first steps were to reproduce the problem. It was exactly as had been described to him, including the unhelpful error message. Ben took a new floppy diskette and carefully turned the media inside the outer jacket. One index hole appeared during each complete rotation. Just to be sure, he also turned the media on an existing diskette, which also had a single index hole. Ben was then sure he had eliminated a possible (and obvious) error where old and new media had used different formatting methods (hard versus soft sectoring).

The single hole meant that the controller must be using soft-sectoring to determine the position of each sector. In other words, during a sector write, the controller would read the sector header to determine that it was at the correct track and sector before turning on the write amplifier. This was all working well during normal read and write cycles.

Suddenly, it seemed obvious to Ben that the only use for that index hole was to indicate an arbitrary “start” location for formatting a diskette. (Later, he realized that the index hole could also be used to count revolutions of the diskette. This way, a failed read or write might be aborted after some number of diskette revolutions without finding the expected sector.)

Ben hauled out his oscilloscope and probed the Index signal on the 50 pin connector from the floppy disk drive to the controller in the minicomputer. Although he could get some triggering on the scope, the pulses looked oddly shaped and inconsistent. He traced the connection for the index-hole sensor (a simple optical interrupter shining light through the diskette to an optical sensor). There seemed to be a comparator circuit on the diskette drive PCB with a tiny trimmer variable resistor in that area. He marked the existing resistor position and then started twiddling the variable resistor around its existing setting. Moving slightly in one direction caused the Index pulse to suddenly square up and consistently trigger the oscilloscope. Moving too far in that direction or near his mark in the other direction made the pulse become distorted again or disappear. Ben adjusted the resistor to the approximate middle of the range where the pulse simply looked reasonably rectangular on the scope. He was happy to see that there was a fairly wide range of variable resistor positions to allow this.

Retesting showed that formatting of a new diskette was now successful time after time. The CADHouse formatted some extra diskettes just to make sure they had a good collection in advance of their next need. But this was not required, since the drive operated quite well for the rest of its life.

Ben decided that the index sensor adjustment was probably there to allow for variation over time of the light source (an LED) and the optical sensor. It had likely been set correctly in the disk-drive factory, but time, temperature, and vibration might have pushed the circuit values beyond expectation. A quick adjustment while viewing the pulse on the oscilloscope was all it took to fix the problem. Once he could see it, he could fix it.