qrpTracker: Arduino satellite tracker

VE9QRP has developed qrpTracker, a satellite tracking program that works on the Arduino platform. Based on the Plan-13 algorithm of James Miller, it can provide real-time satellite location and azimuth / elevation data and doppler shift tuning for up to fifteen satellites using a single ATMega328. With a small additional EEPROM, dozens of satellites can be tracked in real time.

qrpTracker is meant for amateur satellite enthusiasts and computing hobbyists, and its published under the GPL open source license with the code available at Google Code. Further details no this and similar topics can be found at the VE9QRP blog.

Join the Conversation


  1. I really do not understand this project, at least not based on the descriptions. There is absolutely no I/O described … other than the programmer entering Plan-13 data into an EEPROM. How does qrpTracker know where to find a satellite? Is it merely an accurate clock with what amounts to ephemeris data in EEPROM so that the position can be predicted from old data? What about disturbances to the satellite or, more importantly, to the Arduino clock? Wouldn’t those throw everything off?

    It seems like the author takes no account for the difference in clock accuracy depending upon whether a processor is awake or sleeping. Real time (wall) clocks are notoriously less accurate than a processor clock.

    My first thought when reading the title was GPS satellite tracking, where dozens of radio receivers listen to signals from a constellation of satellites to determine where they are right now (not predict where they should be based on old data). I was rather disappointed that there seems to be no real-time communication or actual ‘tracking.’

    … but it does seem like a cool launching point for a turret control that could aim a telescope at a particular celestial body.

    1. rsdio, you hit the nail on the head. This project predicts a satellite pass over a specified location. It also accounts for doppler shift of the frequency by tuning the receivers frequency up or down as needed. The prediction times for satellites do not need to be super accurate. Most radio operators use a hand held directional antenna and point the gain of the antenna in a general direction. Others use an omni directional antenna and dont need to point at all. Look at it this way. If an operator desires to communicate with or via a satellite, he needs to;
      a) identify when and where a satellite will pass overhead.
      b) account for doppler shift and tune the transceiver’s up and down frequency accordingly.
      c) aim a hand held antenna.
      d) key the radio and communicate.

      There is a lot going on and doing it all at once takes practice and patience. This project handles parts a and b for you, and if you have an omni directional antenna and dont need to aim then all you need to worry about is talking!

  2. Anybody know how to contact the author?
    I dearly want these calculations in an arduino to point out satellites in real time.
    The code is beautifully done but *extremely* complex. The author has wisely included a test case in the example so you can have confidence in it but unfortunately I get the wrong result. I’ve tried email to ve9qrp AT gmail and a comment on his linked blog but no luck so far.

Leave a comment

Your email address will not be published. Required fields are marked *

Notify me of followup comments via e-mail. You can also subscribe without commenting.