Carry Mechanism

A project log for 3D Print Babbage's Difference Engine No.2

A fully functional replica of Charles Babbage's Difference Engine No.2 with 3D printed parts

mechredpandaMechRedPanda 11/26/2023 at 22:120 Comments

In the previous log, we delved into how the Difference Engine uses mirrored figure wheels to perform addition. You might wonder: what happens when the sum of two numbers exceeds 9? Today, we'll explore how the Difference Engine accomplishes the "carry" operation.

Imagine a Difference Engine's  figure wheel capable of displaying digits from 0 to 9, vertically stacked in three figure wheels representing units, tens, and hundreds. Together, they cover a range from 000 to 999. Each figure wheel's numbers cyclically repeat after 9, resetting to 0. The "carry" refers to when a digit surpasses 9, necessitating an increase of 1 in the higher digit.

Three figure wheels stacking together, storing a three-digit number 000

The engine's carry system operates in two stages: the carry warning and the carry. The carry warning mechanism consists of a lever, base, and spring clamp with three grooves on the lever – labeled as first, second, and third positions. As values in the figure wheel surpass 9, protrusions around the figure wheel engage with the lever, initiating the carry alert phase. During this phase, the lever moves between the first and second positions, alerting the system of a potential carry.

Warning lever, latch and warning limb (placement of figure wheel is indicative) reproduced by the London Science Museum. Figure taken from the DE2_TD manual

Moving into the carry phase, the carry lever rotates around its axis. When the carry lever is in the first position, it remains disengaged. However, if pushed to the second position, it interacts with the higher-order lever, triggering the next phase. This connection pushes the higher-order figure wheel, incrementing its value by 1 through a ratchet mechanism.

The reason the engine doesn't directly drive the higher-order registers from the lower ones is to account for special scenarios like continuous carries. For instance, in the computation of 99 + 1, the units digit requires a carry, and as the tens place also crosses 9, a simultaneous carry must trigger in the hundreds place. This intricate design facilitates continuous carries by setting the carry levers at a specific angle, allowing each digit to trigger the next without overwhelming the system's load. Unlike a direct driving mechanism, this design scalability allows for an expandable carry system, adaptable to different register configurations without overburdening the material's strength.

This extendable design philosophy permeates the Difference Engine, reflecting Charles Babbage's aspiration to create a universal calculating machine. If you want to explore more about the Difference Engine's design or follow the progress of my replicated version, don't forget to subscribe. This is Mechanical Panda, signing off until our next log!