Tracking Satellites With An Arduino

The guys over at brainwagon just finished up ANGST, the Arduino n’ Gameduinio Satellite Tracker, a build that displays 160 different satellites in Earth orbit on any SVGA monitor.

The build is of course based off an Arduino and Gameduino shield. A real-time clock is always needed for a satellite tracker, so a DS1307 RTC is thrown into the mix. The satellite data is stored on a 128KB EEPROM that is big enough to hold 750 different satellites and orbits.

The software side of things is a bit trickier. The guys at brainwagon used [James Miller]’s very popular and very old-school PLAN-13 sat tracking software. This orbit calculation program was published in 1983 and has since been ported from BBC Basic to just about every system imaginable.

Once the ANGST is hooked up and powered on, it reads the real-time clock and calculates the position of a satellite. This is done in real-time and updated every three minutes. On the screen, the last orbit (and a little more) is displayed along with the sun and the location of the ANGST. You might not find something like ANGST at the Space Command at NORAD, but we can’t think of a better way to keep track of the cubesats and spy sats above our heads.

[youtube=http://www.youtube.com/watch?v=TgfEjxYKYZw&w=470]

13 thoughts on “Tracking Satellites With An Arduino

  1. That is awesome, but it needs a few things to be truly useful:

    1. Able to get recent ephemeris data on its own. Any more than week-old data becomes unreliable.

    2. Updates more than once every 3 minutes. A typical ISS pass is about 5-7 minutes, so by the time you get the prediction, it could be half over…

    Still, it’s an awesome idea. And it would be fun to have an old LCD mounted on a wall that displayed this 24/7!

  2. This is perfect, now I’ll know what time to moon the satellite that’s spying on me, I was getting tired of hanging my ass out all day! Anyway this should put into a nice frame for a wall display.

  3. Thanks for linking to my little project.

    You are certainly right about getting the elements into the clock: that is currently the weakest part of the system. Probably the easiest thing to get working would be to get an Ethernet shield up and running, and swipe the data that you need from the web periodically. That would also pretty much keep you from needing the real time clock (you could sync to a network time source without too much difficulty, at least at the level of accuracy that is needed).

    The AOS/ZEN/LOS calculations are done with about fifteen second accuracy, which is plenty for my needs. The location of the sat is plotted in three minute intervals for two hours from the current time, which gives a good feeling for what the orbit looks like.

    This whole project was really just an excuse to play with the Gameduino and do something I enjoy. But I’d love to hear from people who might want to duplicate and/or extend this project. Feel free to comment here or on my on my project page and I’ll try to respond. Your enthusiasm fuels my activity. :-)

  4. In the PLAN-13, there is a part in the program that says:
    “1620 REM Sidereal and Solar data. NEVER needs changing. Valid to year ~2015”

    Would this produce an issue after 2016? Another paranoia like 2KY?

  5. Now hook it up to some stepper motors on a tripod with a telescope, and a camera.

    Then when the FBI shows up at your door with satellite imagery of your house, you can give them photos of the satellite that took the photos.

  6. This is great, the visualization is excellent and the rotary thing for switching satellites is brilliant. I’m going to dig into your code.

    I built a satellite tracker/pointer using the same plan 13 code as a base and a couple of pan-tilt servos as output. The idea being to guide my eye to fainter passes and iridium flares. http://arduino.cc/forum/index.php/topic,72921.0.html

    For the RTC, I gave up on the ds1307 and got one based on the DS3234. It loses a second or so a day but it’s way better than the 1307. http://www.sparkfun.com/products/10160

Leave a Reply to Mark VandeWettering K6HXCancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.