top of page
Search
  • Antoni Meyer

Autonomous Satellite Tracker

Overview:

This project is an autonomous satellite tracker used to track amateur radio and NOAA weather satellites using computer based software to control the direction of an antenna.

I am doing this as part of the University of Colorado Boulder's Mechanical Engineering Department's Summer Design Intensive. This was set up for students who lost internships or job opportunities due to the COVID-19 pandemic.


Why This Project:

This idea for this project came about after I saw a video of someone using a similar system

Example of a Tracker

for both amateur radio satellites as well as downloading real time data from weather satellites. I always thought that this is a great idea. Commercial systems for this are very expensive however with most in the thousands of dollars range. Many DIY enthusiasts, such as myself, try and replicate these systems using open source software, an Arduino and custom pan and tilt head to withstand the moment created by an antenna sticking out to the side. Most people going down this route, build theses systems for less than $500. I felt that this would be an ambitious project and push the limits of my skills.


How it Works:

Open source software sends azimuth and elevation data via a USB driver to the Arduino. The Arduino encodes the serial data from USB and converts the azimuth and elevation data degrees to an amount of steps for the stepper motors. The system is initialized to be horizontal and facing north at startup so that the stepper motors will get a certain amount of steps specified for a degree.


The Software:

Software Used in This Project

Most of the software used in DIY applications is open source. This makes it easier to modify and use for what you need. The two main ones that are currently being used is Orbitron and GPredict.

GPredict is by far the most popular option, but it runs on a Linux based system on a Raspberry Pi. Not having any experience with either Linux or Raspberry Pi, I decided to go with Orbitron as it is Windows based. During research, I found a driver that someone else has created a driver in order to output the azimuth and elevation from Orbitron. Besides this one pre-coded driver, there is not much on the internet for this software

as it is a very niche subject area.


Arduino:

The Arduino has simple script that imports serial data from the software via USB and then converts the desired azimuth and elevation data into steps for the stepper motor based on the specs of the stepper motor. For example if a stepper motor is 2 degrees per step, and I want it to go to 90 degrees, I divide the degrees wanted by degrees per step. In this example it will be 45 steps to reach 90 degrees.


Pan & Tilt Head to Hold Antenna:

The pan and tilt head to hold the antenna will be constructed using a 3D printer. The plastic should be plenty of strong enough to hold a 1lb antenna on top. The bottom piece will have a round plate with gears on it to turn the head 360 degrees. The side of the pan & tilt head will also have gears but only to move the head between 0 degrees horizontal and 90 degrees vertical. I do no need more than this as head can just turn 180 degrees and go back down again if it ever were to go directly overhead. From research and watching satellites on Orbitron, I have found that very few go directly overhead and most just follow a parabolic curve just above the horizon. The system will never look in a negative direction as there is only communication with the satellite when there is direct line of site to it from the ground. Therefore I will put limits into the Arduino code to only track when in a certain value range.


Current Standing:

After spending hours trying to install the driver for Orbitron, I was able to start messing with it and trying to write a script in Arduino to accept and convert the serial data. After multiple failed attempts at sending data from the driver to the Arduino, I realized that the driver does not work properly and can't communicate via the com port. I have ran diagnostics and test on the Arduino and it accepts serial data just fine. Running logs on the driver, I could see that it has com port errors within the driver itself. All com port settings on windows are correct. I have accepted the fact that this driver I found on a blog just won't cut it and the project is currently on a standstill. Future plans include learning how to use a Raspberry Pi to use GPredict. Until that time this project is on the back burner with school starting back up. I will learn more and find the resources I need. I am also open to suggestions in the contact me page.

427 views0 comments
bottom of page