Antenna Tracker

MSGC Antenna Tracker

The antenna tracker project was my main focus for the Great American Eclipse live stream that I worked on as part of my time interning with Montana Space Grant Consortium (MSGC). It’s purpose was to track a high altitude balloon from the ground in order to establish a connection with which to live stream from.

Physically, it was pieced together using a surveyor’s tripod, two 900 MHz antennas (one yaggi and one patch), One 5.8 GHz dish antenna, a few servos and an Arduino to control it. The mechanical systems were put together prior to my time at MSGC by several very capable mechanical and electrical engineers. However, the software was around 60% completed to run it and was rife with bugs and poor calibration.

Calibration was done using a BNO055 inertial measurement unit (IMU). To calibrate the IMU it was subjected to a variety of movements such as the figure eight motion shown. Finding the correct movements to calibrate the IMU was critical to the success of the tracking system.

IMU calibration

Use of the IMU allowed us to verify the location of the dish using a combination of the magnetometer, gyroscope and accelerometer. This location data was one of the two components necessary to determine a heading to point the antennas. The second required component was the location of the balloon. Balloon telemetry was streamed back to the ground station using an flight system that communicated with the Iridium network. Telemetry data was sent over this network to a SQL database back-end which was read in by the antenna tracking software. These two data points allowed us to use the Haversine formula to calculate the heading and altitude to direct the antennas.

Pointing data was mapped to a pair of 325 degree servos, one for elevation, one for azimuth. Initially, a pre-built package was used to interface the ground station computer to the servo controller, however, it was found that this didn’t result in the desired resolution necessary for video streaming. To mitigate this I developed a separate python program that would serve as the interface. This is free and open to the public and can be found here: pyMaestro

The rest of the project can also be found on my github page at the following links:
Antenna Tracker GUI
Arduino IMU