the "Anticipating Carriage"

Of the many clever mechanisms in the Analytic Engine, the one of which Babbage was most proud was his "Anticipating Carriage", which accomplished the ripple carries during addition through an arbitrary long string of 9's (or borrows during subtraction through a string of 0's) in a single time unit. He spoke of it in almost mystical terms as "teaching the Engine to forsee".

From "Passages from the Life of a Philosopher", 1864

But Babbage didn't invent it just once. In  his draft monumental book-length technical history of the development of the AE, Tim Robinson catalogs 88 different versions created over 35 years, most of them incompletely described, and of course none of them proven to work by having been built. 

The underlying principle is the creation of a chain of fixed and movable "wires" (which are actually stiff rods) that link together consecutive 9's that must be turned into 0's during addition. For a simplified explanation with drawings, see the wonderful article by the late Allen Bromley, "Charles Babbage's Analytical Engine, 1838",  in the June 1982 issue of the IEEE Annals of the History of Computing.


To honor his genius, I do want to build a version of the Anticipating Carriage. But like the rest of my design, it is "inspired by Babbage", not an exact adoption of one of his many incomplete designs. In making my adaptation I am balancing historical fidelity with the modern practicality needed to create something that works in a reasonable amount of time.

Babbage added considerable complication to the carriage used for addition in order to make it work for subtraction, often using wheels with two different sets of digits for the two cases. As I designed my version, I stumbled upon what might be a simpler idea: to move the consecutive-9 detector to a different position for subtraction, so it then serves as a consecutive-0 detector. Tim doesn't recall seeing that technique in any of  Babbage's drawings or notes, which is worrisome because it might mean that he knew it had a fatal flaw. In that case I will eventually discover it.

This CAD drawing gives the flavor the design, with most of the supporting shafts not shown.


The key parts are the the carry sectors (shown off-white),  the carry sector lifters (brown), and the carry warning arms (tan). 

The carry sector lifters can rotate in tandem to one of four positions, and each can be lifted independently by the corresponding carry warning arm. They do these several jobs:
  • when a carry is needed, raise the 3-tooth carry sectors to engage with the digit wheel to add or subtract one
  • push on the movable wire carried by the carry warning ring attached to the digit wheel to chain all the consecutive 9's or 0's together
  • force "warned" on carry warning arms that were raised by movable wires, so that they can be moved back down at the end of the cycle just like the ones that are already warned from having seen a 9-0 or 0-9 transition
  • reset all the carry warning arms to "unwarned" at the end of the cycle
This shows the various surfaces that effect those motions:



The actual parts as built seem to work ok when manipulated by hand, but whether they will work when assembled together for multiple levels and operated by the stepper motors at speed remains to be seen. Based on my past experience, I would not even give it even odds.



Comments