The GATE project has been in the background throughout this history, for a variety of reasons. The PDP-8 is a historically significant machine, while the TI-980 is so obscure it doesn’t even have a Wikipedia page. The IX modifications and RADAR timesharing are noteworthy, and I have a complete source code listing to work from. But it’s time now to take a little break from the tedium of PDP-8 assembly language and join me on the Gillis in the summer of 1974. We can get back to RADAR later.
In an earlier post I wrote that I was “in the Atlantic Ocean 800 miles off the coast of Africa writing code in hex machine language in the middle of the night, in secret.” Let’s see how and why I got there.
GATE was a very big deal. This description from Nature is worth reading in full:
“The Atlantic Tropical Experiment (GATE), the first major observational experiment of the Global Atmospheric Research Programme (GARP) and designed to explore the tropical atmosphere, was successfully completed in September 1974. In what was probably the largest and most complex international scientific experiment ever undertaken, ten nations—Brazil, Canada, France, Federal Republic of Germany, German Democratic Republic, Mexico, Netherlands, USA, UK and USSR—working in close collaboration, contributed 39 specially equipped ships, 13 large research aircraft, several meteorological satellites and some 5,000 personnel to an intensive three-month study of weather systems in the tropical eastern Atlantic Ocean; in addition, some 50 countries in Africa and South America participated by making additional surface and upper-air observations.” –Mason, B. The GARP Atlantic tropical experiment. Nature 255, 17–20 (1975).
The MIT Weather Radar Research Project was awarded a contract by the National Science Foundation to provide radar coverage on one of those 39 ships, with Polly as principal investigator, Speed as chief engineer, Ken as digital architect, and Steve and me as technicians. This was going to be an expensive undertaking. In addition to salary and MIT’s overhead, the contract covered buying WR73, and the TI-980 system with its two mag tape drives, two disc drives, and various other peripherals. All of this hardware needed to be hauled up to the 18th floor, antenna installed on the roof, for development. Then hauled back down, shipped to Maimi for installation on the Gillis, and sailed to Dakar, Senegal, before heading out to the observing station in the Atlantic. Then hauled back and reinstalled on the 18th floor and roof.
We didn’t have the budget of the big government contributions to GATE, like NOAA’s radar installation on the Oceanographer. So we made two key decisions to save money that would have significant and unfortunate consequences. We managed to overcome the troubles, but it was a close call, and the Gillis had troubles of its own.
The first decision involved stabilizing the antenna as the ship rolled and pitched. We needed to know and control where the dish was pointing relative to earth coordinates, not relative to the ship on which it sat. The conventional way to do this, what NOAA did for example, was to use a stable platform. Imagine a very sturdy table that could rotate along two axes aligned to the roll and pitch axes of the ship. With a vertical reference gyro, powerful servo motors, and basic servo control loops, the table can be kept parallel to the earth’s surface as the ship moved. The radar antenna, with its separate azimuth and elevation servos, would be mounted on the table and could be controlled relative to earth coordinates just like it would be on the ground instead of the ocean.
But who needs a stable platform, right? The gyros and ship’s compass would give ship coordinates relative to vertical and North. We knew where we wanted the dish to point relative to the earth. We could just do the 3D coordinate rotation to transform earth coordinates to instantaneous ship coordinates, and servo control the antenna’s ship-relative azimuth and elevation to produce the desired earth-relative azimuth and elevation. Just a little linear algebra, digital control theory, and some assembly language to run the transform and control loops at 50 Hz. We were MIT guys—what could go wrong?
Ken wrote the code for the TI-980. He was a fine programmer, and the code worked as intended. That he wrote it in hex machine language, not assembly language, is another story that we’ll get to later. The code was fine; the antenna was not.
The WR73 servo system was not designed for the large torques that would be required to scan the dish in stable earth coordinates while the relatively small Gillis is rolling and pitching on the Atlantic. The torques were magnified by the dish whipping around at the end of a long lever arm. Remember this photo I posted earlier:
We were great EEs, but the mechanical stuff didn’t occur to us until it was too late. Once on the ocean we stripped the gears in short order, rendering the antenna useless. Rendering the entire project useless. Panic ensued.
We managed to secure replacement gears from the manufacturer, along with someone who knew how to install them and was willing to travel to Dakar. Wire stays were added to the tower on which the antenna sat to keep it from whipping around so much. I think we lowered the stiffness of the digital servo loop (the proportional term in a proportional/derivative control loop) to try to be a little more gentle on the gears. If that somewhat reduced our ability to point in the desired earth coordinates, at least with Ken’s 3D rotation code we still knew where it was pointing at all times. Researchers could compensate for some pointing wobble in the data sets as long as the true earth coordinates were known and recorded.
So we survived that little misadventure, and it was all patched up before I arrived in Dakar. It was the second consequential decision that led to all the hex machine language programming, and my secret midnight hacking.
I’ll continue the story in the next post, after I arrive in Dakar to find the Gillis itself disabled.