International Space Station Orbit Tracker and Pointer
There’s a growing movement of people who believe that our space agencies are underfunded and that humanity isn’t paying enough attention to our present accomplishments and future plans in space exploration. Well, I know one way to direct attention to something: Point at it.
The International Space Station (ISS) is the most complex scientific and engineering project in history, and yet it has no tourists. People flock by the millions every year to see old presidents carved into a mountain, gigantic shopping malls, religious apparitions, casinos, theme parks, zoos, et cetera. But you can’t load up your minivan with the kids and take a roadtrip to low earth orbit. And I think that’s a problem, because people need more than some pretty pictures and a celestial David Bowie cover to really appreciate something. And I think our accomplishments in space are worth appreciating, not to mention advocating for. So I’ve had this question in my head for while now: how can the fact be made more immediate and tangible that what is perhaps humanity's greatest technical achievement of all time is constantly passing just 250 miles above our heads?
This is the first prototype of the International Space Station orbit tracking pointer. If that name isn’t explanatory enough, its one job is simply to point directly at the ISS wherever it is in space, a small but constant reminder of what humanity is capable of.
In celestial mechanics, or the study of how things move in space, simple orbits are called Keplerian, with the assumption of a two-body system. In other words, the mutual gravity is the only force in the system between two objects (in our case the earth and a $150 billion space laboratory). With this assumption, orbiting bodies will continue indefinitely and predictably. For many situations, including games, two-body mechanics work just fine to model orbits.
But just like the spherical cow and the frictionless plane, the Keplarian orbit is a simplification that isn’t accurate enough for all real world situations. Satellites orbiting the earth are affected by variations in the earth’s gravity due to its not-quite-spherical shape, drag from the tenuous outer atmosphere, gravity pulling from the moon and the sun, and even solar radiation. These are collectively known as orbital perturbations. Satellites meant to stay in orbit long-term have small engines to resist these forces and help them stay in their correct orbit, a process known as station keeping.
Because of orbital perturbations and station keeping, the location of a satellite is not entirely predictable based on its orbital parameters. Take a look at this graph of the ISS’s altitude over time. You can clearly see how its orbit slowly decays due to perturbations and its engines periodically boost it back up into a higher orbit. It’s obvious how perturbations can pose problem if you want to know where a satellite is at a certain point in time. Luckily, the locations of satellites are kind of important to us, so there are people keeping up with them all the time.
The North American Aerospace Defense Command, or NORAD, whose main directive is to track and relay the position of Santa Claus every Christmas Eve, was one of the first governmental agencies in charge of tracking earth’s satellites. Now, the Joint Space Operations Center uses optical and radar observations to keep an eye on just about everything that orbits the earth as a part of the US Space Surveillance Network. Space-track.org collects this data and serves as a catalog and clearing house for the latest and greatest orbital information. Additionally, Dr. T.S. Kelso who runs the Celestrak website has been a champion of making this data available to the public and continues to organize and publish it on his website. Dr. Kelso has also written a series of excellent tutorials on satellite orbits which I relied on heavily for this project. By the way, all these organizations are on twitter, tweeting away about satellites, which, it just warms my heart that that’s a thing.
That’s a little bit of background about the science behind tracking satellites. Now let’s take a look at the orbit tracking pointer itself. The tracker is powered by an ST Microelectronics Nucelo F-401 development board. This board has an 84 MHz clock and 512 kB of memory, compared to the Arduino Uno’s 16 MHz clock and only 32 kB of memory, plus it only cost $10. If you want some practice programming for an ARM chip or you just need to be a little bit further from the specs of Apollo Guidance Computer than the Uno R3, it’s hard to say no to these Nucleo boards.
Predicting the location of a satellite in the future is called orbital propagation, and the de facto standard model for doing this is called the Simplified General Perturbations model or just SGP. An open source version of this model was written in the C programming language by David Vallado as a companion to his textbook Fundamentals of Astrodynamics and Applications. I ported this code to run on the Nucelo board without too much trouble. I have an adafruit motor shield on top of the Nucleo. This shield drives both the stepper motor which controls azimuth and the servo which controls elevation. The servo is connected to a slip ring to allow full rotation without getting any wires tangled. I had to make some warranty-voiding adjustments on the wood lathe to get it to fit.
Most of the structural parts are Actobotics, which is an aluminum mechanical construction system like an erector set on steroids. This stuff is not cheap but I don’t have access to a machine shop, so I considered this a shortcut worth taking. Everything bolts together, so it’s great for prototyping, and if I get tired of it, I can just take it apart and build something new. The base is a scrap a padauk, which is a beautiful reddish-orange hardwood. It will fade to a warm brown with exposure to UV.
For its first test, I wanted to catch the ISS while it was actually visible. If you’ve never seen the ISS pass overhead, I really encourage you to do it. I used the Heavens-Above website to find a day when the ISS would pass overhead in the late evening bright enough to see. I literally finished coding the tracker about an hour before the transit, so I hurriedly brought everything outside to my backyard. The clouds parted just in time and the tracker worked flawlessly, pointing directly at the ISS as it passed over. Such a great feeling to see it work.
To run the prototype, you first initialize the azimuth to point to true north before powering up. It goes through a quick routine just to show that everything’s working correctly and then begins pointing at the ISS. It’s really that simple. The ISS orbits the earth every 90 minutes so the speed of motion is roughly on the order of a minute hand on a clock: slow enough that it’s not really interesting to watch it, but fast enough that it’s in a new place every time you glance over.
As I've noted, this is just a first prototype, a proof of concept, and it's not extremely functional or user-friendly. Things I’d I would include in version 2.0:
A real time clock with a battery backup. Right now I have to hardcode the time, which means any time power is disconnected, the time needs to be recoded. This is probably the biggest limitation of the system.
Switch the servo out with another stepper motor. Having to flip 180 degrees is cumbersome and makes the motion not as smooth. You'd have to have some kind of feedback for this though.
Internet connectivity to automatically download the latest orbital data. Right now, the two line element set for the ISS is hardcoded. Just for the sake of accuracy, it would be nice to be able to have the latest parameters as they come out. This would also allow you to track satellites other than the ISS.
LCD screen to show relevant information - azimuth and elevation, epoch, straight line distance, etc.
A few of these features have been implemented in a version of the device created by Patrick Ferrell. I also have some cool ideas for extension of the design:
For aerospace companies building things that go into orbit, I think this would be an awesome desk toy or series of “trophies” marking projects completed. Also, for high school classrooms that build cubesats, it would be a neat way to keep track of the satellite for the students involved.
I think this would be an awesome outdoor installation at a science or space museum. It’s simple and elegant enough that I think it could really have an impact on people, especially when the ISS is above the horizon.
I really like the idea of a physical representation of a vector, and I thought it would be neat at a children’s museum to have a pointer like this where you can select what you’re pointing at. For example, you could choose the moon, the sun, any of the planets, famous landmarks on earth, even the nearest plane flying overhead.
This prototype is just going to sit on my desk at work so my cat doesn’t break it, and to remind me that the world is full of inspiration if you just know what direction to look.