Building Complex Machines Using LEGO
A working hand-cranked eclipse predicter made using LEGO® pieces
Antikythera Mechanism Front. (click for larger image)
Antikythera Mechanism Top. (click for larger image)
The Antikythera Mechanism is an ancient Greek mechanical computer built in about 150 B.C.E. It was designed to calculate the position of the sun and moon as well as to calculate the dates of solar and lunar eclipses. It is conjectured that it could also calculate the positions of the inner planets, but this is unproven.
It was recovered from a Roman shipwreck in 1900 as a corroded mass of gear work. Detailed analysis could only really begin once X-ray equipment became available. CAT scans performed over the last 20 years have added significant clues as to the function and operation of the device.
Ratios of gear tooth counts in the device indicate a good match to ratios used by the ancients to calculate the dates of eclipses using the Saros and Metonic cycles. Fragments of text recovered from the device mention the sun and moon and use month names used by the Greek city of Corinth and its colonies.
The ancients observed that eclipses appeared to follow a cycle of 18 years, 11 days, and 8 hours. If there was an eclipse of the sun at 10am on a certain date, then there was a very good chance there would be a similar eclipse on a date 18 years and 11 days in the future at 6pm (8 hours later in the day). Three such cycles would mean that a similar eclipse was probable 54 years and 34 days in the future at about the same time of day as the original eclipse.
The full three Saros cycle is called a Triple Saros. If an eclipse occurs on the first Saros, a similar one may occur 8 hours later during the 2nd Saros cycle. Another similar eclipse may happen 16 hours later during the 3rd Saros cycle. The 4th Saros cycle would have advanced 24 hours which is an entire day and the process repeats.
The Abstract Math
A Synodic month is a lunar month from full moon to full moon. It defines when the moon returns to the same position in the sky relative to the sun. This is not the same as a sidereal month which defines when the moon returns to the same position in the sky relative to the stars.
18 years, 11 days, and 8 hours is 223 synodic months. This completes one Saros cycle of eclipses. 19 years is 235 synodic months. Knowing these values allowed the ancients to interrelate the advance of years and eclipse cycles.
Imagining an axle Y for year. Once rotation represents a year. Half a rotation would represent 6 months, while 2 rotations represent 2 years. Any date could be represented by the correct number of rotations and fractional parts of a rotation.
The important relations follow:
The sun appears to move in the zodiac over a period of exactly one year.
Sun = Y
The moon repeats about 13.368 lunar months in a year.
Moon = Y * 254 / 19
A year is about 5.546% of an 18 year, 11 day, and 8 hour Saros cycle.
Saros = Y * 235 / (223 * 19)
The Practical Considerations
Because it would be difficult to fit the information for 223 lunar months in a single rotation of a dial, the original machine used a 5 wind spiral to encode the information. This made more space available for the markings required for the eclipse information.
My version of the machine uses a 4 wind spiral. This provides the same benefit as a 5 wind spiral but matches the Full Moon Cycle which may permit future enhancements to accuracy.
This change results in the formula:
Saros4 = Y * 4 * 235 / (223 * 19)
I decided to not use the Corinthian calendar and instead use the standard Gregorian civil calendar in a four wind spiral representing the four year leap year cycle.
Noting that 235 is 5 * 47 and 254 is 2 * 127, the important constants for the construction are:
4, 5, 19, 47, 127, and 223.
The readily available high quality LEGO gear ratios are combinations of 1, 3, and 5. With some challenge 4 is available. With these combinations we can get to gear ratios which are multiplicative combinations of these values. The easy ratios we can get to include: 1, 3, 4, 5, 9, 12, 15, 20, 25, 27, etc.
Ratios of 19, 47, 127, and 223 are impossible to achieve with simple gear ratios because they are prime numbers. We have to look beyond simple gears to differentials.
Differentials are a combination of gears in a planetary configuration that can be used to average axle rotational speed.
Imagine the transmission of a car is rotating at 1000rpm, each wheel will also rotate at 1000rpm. But if the car is turning through a curve, the outer wheel will be faster and might rotate at 1200rpm, but the inner wheel will rotate at a slower rate of 800rpm, the average rpm being 1000. If one wheel goes faster the other always goes slower so they both average to the same value as the transmission.
The formula is C = (A + B) / 2. Wheel speeds A and B average to the transmission speed C.
We can use this to create more interesting gear ratios. If we set input A to a gear ratio of 5 and input B to a gear ratio of 9, then output C would turn with a gear ratio of 7.
The formula can be reformed as A = 2 * C – B. This is a far more useful formula for us. Setting C to a gear ratio of 3 and B to a gear ration of 25 yields:
-19 = 2 * (3) – (5 * 5)
The negative value simply indicates that that axle is rotating in the opposite direction than C and B were turning. We could define, by convention, that clockwise rotation was positive and counter clock-wise rotation is negative.
We use the following relationships to achieve the required gear ratios:
|input C||input B||output A
2 * C – B
|3||5 * 5||-19|
|5 * 5||3||47|
|-1||5 * 5 * 5||-127|
|1||5 * 5 * 3 * 3||-223|
In complex LEGO gear trains where accuracy is important, it is critical that all multiplication be done before division. Multiplication increases the inherent gear-to-gear error, division reduces it. To achieve the greeted possible accuracy, the error should be reduced as small as possible just before the output.
I wrote several pages of Mathematica® code to generate the Saros Spiral and Calendar Spiral labels. The Saros Spiral label is a 4 wind spiral with eclipse entries in 223 lunar month blocks. The Calendar Spiral label is a 4 wind spiral of the four year leap year cycle.
A common “rack” system is employed throughout the machine to build modules. A module typically will multiply or divide the input value by a constant to create an output value. Some of the modules in the front have the specialized gear work to drive the indicator dials.
There is a common naming convention for the modules:
|1||B or T for Bottom or Top|
|2||F or B for Front or Back|
|3||L or R for Left or Right|
|Center||Provides main year rotation via crank and fine adjust.|
|BFL||Takes main year rotation and multiplies by 47|
|BBL||Takes output of BFL and multiplies by 20 / 19|
|TBL||Takes output of TBL and divides by 223|
|TFL||Drives main Saros dial indicator at the output of TBL which is at 4 * Saros.
Divides by 4 to indicate which part of the 4 level spiral Saros needle indicates.
Divides by 12 to indicates the 0h, 8h, 16h correction for the Triple Saros.
|BFR||Takes main year rotation and controls Decade, Year, and Leap Year cycle indicators.|
|BBR||Makes main power and multiplies by 127.|
|TBR||Takes output of BBR and multiplies by 2 / 19.|
|TFR||Controls Sun at main year rotation and the Moon with the output of TBR.|
The Saros needle will point to one of 223 lunar months boxes. Most boxes are empty with no eclipse. Months that have an eclipse have an S and/or L indicating an eclipse followed by a two digit 24 hour time.
The Sun needle turns once per year and points to the date the machine is currently set at.
The Moon needle rotates once per lunar month.
When the Moon and Sun needles are on opposite sides, that represents a full moon. The date the Sun needle points at is the date of the full moon. If there is a lunar eclipse it will always occur on the date of the full moon.
When the Moon and Sun needles are on the same side, that represents a new-moon. The date the Sun needle points at is the date of the new moon. If there is a solar eclipse it will always occur on the date of the new moon.
Most months have neither a solar or lunar eclipse.
For example to find the first lunar eclipse after a specific date, turn the primary hand crank to advance the Decade and Year indicators to the year of the given date, continue to crank until the Sun indicator approaches that date.
The Saros dial on the left will be pointing to that lunar month. Continue to crank until the Saros needle enters a month that has a lunar eclipse. Note the time given by the lunar eclipse.
Use the fine-control crank to slowly advance the machine until the Sun and Moon indicators are on the opposite side of the center. This is a full moon. Read the date indicated by the Sun. That is the date of the lunar eclipse.
Take the time shown by the Saros dial and adjust the time by 0h, 8h, or 16h as instructed by the Triple Saros dial.
We now have the date and time of an eclipse.
Other images and information
Antikythera Mechanism Side View
Antikythera Mechanism Bottom View
Calendar Spiral Label
Saros Spiral Label
LEGO and the brick configuration are trademarks of the LEGO Group, which does not sponsor, authorize or endorse this Web site.