The engineering notebook

How the machine at rangekeeper.dev was built, what it is measured against, and the thing it got wrong for a whole day: the right mechanism, cut to the wrong ship's gun.

A problem that will not sit still

Write the fire-control problem down and it moves. The future range is the distance to wherever the target gets to in T seconds; T is the time of flight for that range, which the gun's range table gives you. Each quantity is defined in terms of the other, so there is no first step.

A rangekeeper does not solve that by trying values. It is built so the two statements are the positions of two shafts, geared so they can only agree, and the mechanism runs continuously into the position where both are true. The machine is the fixed point, which is why it had to be a machine and not a table of numbers.

That makes it checkable in a way a simulation of a mechanism usually is not. The page runs the mechanism; the test solves the same fixed point by a completely different route, iterating the range-table lookup to convergence in ordinary arithmetic. Across the table's whole span the two disagree by at most 1.78 yards in 29,000. Neither method is the other's implementation, so agreeing is evidence rather than a tautology.

The wrong gun

The cam on this page was cut from the range table for the 16-inch 45-calibre Mark 6, which is the gun the North Carolina and South Dakota classes carried. The machine was right and the ship was wrong: the Iowa class carried the 16-inch 50-calibre Mark 7, firing the same 2,700 lb AP Mark 8 projectile at 2,500 feet per second rather than 2,300, out to 42,345 yards at forty-five degrees.

Nothing on the page was inaccurate. Every number was correctly transcribed from a real table for a real gun, and every check was green, because a check that compares a page against its own data cannot notice that the data is about something else. It took a person saying which ship they had served on.

The table is now the Mark 7's, and it is a better-behaved table than the one it replaced. All twenty-seven printed metric conversions are right; elevation, angle of fall, time of flight and maximum ordinate all rise with range; and striking velocity dips to 1,556 fps at 35,000 yards before rising again, which is what a shell coming down steeply does and is the one column where a naive monotonic check would be wrong. The Mark 6 table failed two of those and its errors are still quoted on the front page, because they are what this one was checked against.

Reading a scan by eye

The primary is BuOrd Ordnance Pamphlet No. 770, 16-Inch Range Table, 2,500 F.S. Initial Velocity to 42,345 Yards, October 1941. Thirty-three pages, scanned, with no text layer, the table itself running from page 16 to page 32 in hundred-yard steps.

It was read as images rather than through character recognition, and that was a deliberate choice rather than a convenience. Recognised digits in a range table are exactly the thing that must not be trusted: a 3 read as an 8 in an elevation column is invisible, plausible, and wrong by four hundred yards. So the rows were read by eye, and what was read is recorded row by row with the page it sits on. At 10,000 yards the pamphlet prints 5° 02.9′, with 302.9 in the minutes column beside it, which is 5.048 degrees against the secondary's 5.05.

What the primary has not been used for is the rows themselves. The nine on the page are still a sampling every five thousand yards from a secondary source, not a transcription of a table printed every hundred, and the data file says so in as many words so that reading the primary cannot be taken for more than it was.

Six mechanisms, and where the words come from

The parts bench is not an illustration. Each of the six does one piece of arithmetic by moving, and each is described in Hannibal Ford's own patent, Range-keeper, US 1,370,204, filed 4 December 1917 and granted 1 March 1921. Where the patent has words for a part, the page quotes them rather than paraphrasing.

The Navy's own training text says the same things in plainer language, and that turned out to matter. Of the component solver: “The most common application in range keepers is the resolution of own ship, target and wind motions into line and cross components with respect to the line of sight to the target.” Of the integrators: “Basically, they are all multiplying devices”, and the ones “employed to keep range are of the disk type, which is commonly used to multiply a rate by time.”

Two independent descriptions of the same mechanism, forty years apart, is a stronger footing than either alone.

Why the answer is late

Crank a new range into the rangefinder and the gun elevation does not jump. It slews, because a shaft is a shaft, and the machine has to be run before its reading is the answer. That is the page's subject rather than an animation: a continuously-solving machine is always showing you something, and what it shows during the slew is a solution to a problem that has moved.

The rates themselves are chosen rather than measured. No document consulted here gives a follow-up slew rate for this installation, so they are set to make the settling visible in a browser, and the honesty ledger says so. What is not invented is the shape: the follow-up is rate-limited and never overshoots, and bearing takes the short way round rather than unwinding through three hundred degrees.

Where this page was wrong first

What is not here

No spotting, no salvo pattern, no dispersion, no parallax between turrets, no wind aloft, no drift, no earth curvature or rotation, and no stable element: the ship in this machine does not roll. The range table is a sampling and the cam interpolates between nine rows rather than four hundred. And the Mark 8 Rangekeeper's own internals are not documented here. What is here is the family of mechanisms it was built from, the gun it pointed, and the shape of the problem all of it existed to solve.

Sources