# The First Mechanical Calculator and the Computer Revolution of the 1600's

### The World in 1623

The year was 1623. William Shakespeare had died only 7 years earlier. The Salem Witch Trials were still 69 years away. The total European population of what would become the United States was less than 3,000 people, while the Native American population would not begin to be recorded for another 237 years. A trip to England from the colonies took over two months, and the Pilgrims had landed in Plymouth only 3 years earlier. And the first known mechanical calculator was built in Germany.

### Wilhelm Schikard

Wilhelm Schikard was born in 1592, and while he was a respected academic while he lived it was not until the later half of the 20^{th} century that his true contribution to the history of computing was realized. Shikard was a professor of Hebrew and Astronomy in Germany at the University of Tübingen and a regular correspondent of Johannes Kepler, the namesake of the planet hunting telescope currently orbiting the earth.

*Schikard in 1632*

### The Mechanical Calculator

It is in one of the correspondences to Kepler that Schikard first describes his mechanical calculator in 1623, which he refered to as the “arithmetical organum” (“arithmetical instrument” in English). The calculator had many flaws, and does not look like what we think of as a calculator or computer today. The user entered data on a series of wheels and an abacus like arrangement. The machine could perform addition and multiplication, but not subtraction or division. The design was mechanically fragile, and a “roll-over”, for example form 999 to 1,000 would cause the single tooth cogs to fail. This, perhaps, is the reason that Blaise Pascal was credited with the invention of the mechanical calculator nearly 20 years later.

*Schikard's original calculator sketch*

This historical inaccuracy was rectified by modern historian Franz Hammer, who re-discovered Schikard’s letters to Kepler. Upon further investigation Hammer discovered that Schikard’s calculator was not as forgotten as it may have seemed. Hammer found references and republications of Schikard’s work starting in 1718 (the first public publication), with his drawings and designs being rediscovered at least once per century until modern times.

It is also important to note that Schikard’s drawings do not describe a fully functional machine. Schikard, in describing his machine to Kepler, states that the machine works. It is reasonable to assume that certain parts of the machine were omitted from the drawings to protect Schikard’s invention, and indeed later replicas of the machine function when additional gears are added to his design. This part of the story will remain a mystery, however, as no one beyond Schikard is known to have seen a working prototype. For this an other reasons many historians dispute whether Schikard or Pascal invented the mechanical calculator.

*Pascal's Calculator*

### Comparison to Modern Day Technology

Clearly, the capabilities of these machines are simple by today's standards. But just how exactly do they compare? Lets apply a few common performance measures between the Pascaline and the micro controllers used on your tinyBot, digiRacer, and mimicArm robots. Specifically, let's compare maximum integer value, memory, and speed.

Maximum integer value:

The Pascaline adding machine was capable of addition and subtraction of number totaling up to 99,999. Storing this value requires 17 bits of data (a bit is a single binary digit, symbolizing either a 1 or a zero). Specifically, 99,999 is the same as 11000011010011111, and 17 bits are capable of representing a maximum value of 2^17, or 131,072.

Let's compare this to tinyBot and digiRacer, which use a 16-bit AVR processor. A 16 bit processor is capable of storing numbers up to 16 bits in length, so tinyBot can represent a value of 2^16, or 65,536. The Pascaline can actually represent larger numbers than tinyBot!

So how about mimicArm? mimicArm uses a more sophisticated 32-bit ARM processor. A 32-bit processor is capable of storing numbers up to 32 bits in length, so mimicArm can represent a value of up to 2^32, or 4,294,967,296. Clearly that's WAY MORE than the Pascaline's 99,999.

Memory:

It can be difficult sometimes to measure the memory capacity of analog devices because they often use increments that are effectively infinite. Imagine stream of water leaving a vessel to measure time. It's practically impossible to determine just how many atoms of water are leaving the vessel over a particular period of time, so the memory is difficult to quantify.

That's not so with these early mechanical calculators. These devices were meant to deal with integers, so the difference between one state and the next is always equal to "1". This is because these machines are actually digital, even though they're mechanical! We already established that the maximum value the Pascaline could represent was a little less than 17 bits. We also know that the user could input another 17 bits into the device to be added to the display quantity. Therefore we can say that the Pascaline had a memory capacity of 34 bits, or 4.25 bytes (there are 8 bits in a byte).

Let's compare that to the micro controllers used on your tinyBot, digiRacer and mimicArm robots. Generally speaking, micro controllers do not have nearly as much memory as a typical tablet or computer, but they both dwarf the memory in the Pascaline! tinyBot and digiRacer use an AVR chip with 2.5 kilobytes (2,500 bytes) of memory. mimicArm has substantially more at 64 kilobytes (64,000 bytes) of memory! While not as much as a typical modern computer, it's WAY more than 4.25 bytes!

Speed:

In most cases, mechanical computers were limited by the time it took to input instructions, rather than the time to took to make calculations. That was especially true for mechanical adding machines. We don't know for sure, but we can estimate that the actual calculation time of the Pascaline was a few seconds for a single addition operation. Let's compare that to the micro controllers used on your tinyBot, digiRacer and mimicArm robots.

While micro controllers don't have the impressive processor frequencies of computers, they are designed to be extremely good and things like addition. Because of this, micro controllers can accomplish an addition or subtraction operation in a single processor cycle. tinyBot and digiRacer use a 16 mHz AVR processor, while mimicArm uses a 96 mHz ARM processor. To find the time a single processor cycle takes, we divide 1 by the processor speed. Therefore tinyBot can perform an addition operation in 1/16,000,000 seconds, or 0.00000006 seconds! mimicArm is even faster, at 1/96,000,000, or 0.00000001 seconds!

### Impact on the World

Whether Schikard or Pascal was first, their work sparked a miniature computer revolution over 350 years before Apple and Microsoft’s epic showdown. Many mechanical calculators were designed during this time, each improving on the last. It wasn’t until two hundred years later, however, that the first programmable computer would be described.