Tell us the story of your project: 

The idea of an Orrery has always intrigued me. They are typically a mechanically geared device that simulates the orbital periods of our solar system. There are some fine examples that you can find photos of online that are magnificent in their workmanship and materials. But I wanted to make one that could show me what the orientation of planets were on any given day, with the ability to present a static display or show the planets orbiting at the correct rates. Of course, an Orrery is anything but accurate in terms of, well anything really. Planets don’t orbit the Sun in concentric circles, or maintain a constant speed (Relative to the earth as they are elliptical in orbit around the sun). About the only thing that is similar is that they are all orbiting on the same plane. Probably the greatest difference is the spacing, if you were to accurately scale up the orbital periods from the marble sized planets I am using, Neptune would be 12km away! 

Why is there no Pluto you may ask.... Pluto is inconvenient, so I ignored it.

The first step I took was a search for designs that I found visually appealing. A common thread was that I was drawn to the intricate mechanical designs more than the hidden smooth examples. I decided that stepper motors and some type of micro-controller would be the best way to control the planets with precise individual control. Many would say that the choice of an Arduino was less than ideal considering the mathematics required to calculate Heliocentric Planetary locations, and they would be right. The use of a Raspberry Pi is almost ideal for the application. Powerful, small, and a complete pain for me to use. I have tried and failed to come to terms with programming them. The C++ variant of an Arduino just makes sense to me, and I have used dozens of them over the years for projects. The Due fit the bill. Fairly fast machine, a TON of outputs and I had one in my shop… But I am getting ahead of myself a bit, the very first thing I did was sit down and pickup various pieces of round stock and bearings to get my mind around what ways I could drive 8 planets from stepper motors. 

I came up with the idea of driving everything off jack shafts through a central hub. Originally, I was going to make the entire drive train out of gears driven directly off of the stepper motors, but it gradually evolved into a belt drive system. It took me quite a few months to come up with a system that I liked with the visual items that seemed to be right in my minds eye. The central system came together relatively quickly once I committed to the central stacked bearing design. For the first time that I can recall for a project, I did not have a clear plan on what the Orrery was going to look like at the very end. I typically design something almost to completion using Solidworks before I even make my first few chips on the mill or lathe, my mind just visualizes things differently. I started to build the central stack without much care for the final size. It was a combination of CAD design and on the fly machining. I wanted to keep the overall orrery small, but by the time I finished all 8 planets It was evident that the size was going to become fairly large. Coupled with the concentric circle size of Neptune, I had to walk into the house with my tail between my legs and tell my wife that I thought the finished item would be over 2’ wide! I decided that evening that I did not care how big it was going to be, if it had to live in the basement, so be it. I wanted to complete this project regardless of the outcome. 

With the hardware sorted, all that was left was painting and the still unresolved programming. I hate painting. That’s all I am going to say about that. What’s more intriguing is 1’s and 0’s! Its amazing what a $30 Arduino  can do in the hands of someone with no formal training outside of high school, and a handful of parts from China,. Apparently the limit is the meat behind the keyboard. Pretty astonishing really. But I digress. Throughout the project -almost from day one- I knew that the program to orientate the planets would be tough. Allot of barriers stood in the way for me. Understanding the orbital mathematics is about as far outside of my wheelhouse as working on the JPL lander. I tried to bash together a formula based on orbital periods of planets from an orientation. Utter failure is the best way to describe this attempt.  Next up, lookup tables! Making tables for each planet consisting of 5,000 data points was as appealing as dental surgery… After a few nights searching I stumbled upon some papers written by a Swede Along with Kepler’s formulas. Now trigonometry is not my strong suit, so tackling the orbital math was quite daunting. Dozens of hours were spent trying to get the formulas to work in excel before converting into C++. Thankfully the blind luck of selecting the Due made this viable. The Due is unique in the Arduino family for having exceptional extended math capabilities. Thankfully programming fell into place shortly afterwards. 10 months of on and off fabrication and design has turned into an educational and visually appealing piece that I hope sparks many years of enjoyment.

Full writeup on my website: LINK

Share a "Show & Tell" video.: 
Number of Forks: 
Choose at least one category.: 
Team Members: 
Team member name: 
What role did this person play on the project?: 
Project Lead
Sort Order: 
Arduino Driven using Keplers Law to calculate the heliocentric position of each planet.Select your year / month and the Orrery will show you where the planets were located and begin orbiting.
Aha! moment: 
Discovering that the Arduino Due is capable of algebra and figuring out how to program Kepler's formula
Uh-oh! moment: 
Getting the drive train to work correctly with such a tight space for drive shafts.
Show & Tell video as default: 
Creation Date: 
Tuesday, January 1, 2019 - 11:06