Purpose

When I initially joined the telemetry team, I discovered that we were relying on a Commercial Off-The-Shelf (COTS) solution for real-time flight data monitoring. Recognizing the potential for greater value, I advocated for the development of a custom software solution. By leveraging my expertise in web development, we were able to build a custom software application that not only enabled real-time data monitoring but also allowed us to leverage information from additional sensors in our avionics stack. This customization provided us with a unique advantage, offering a tailored and comprehensive view of the data, leading to enhanced insights.

Hence, Ground Station Software was born.


Technology

Front-end Development

Based on my past experiences and after considering the available options, it became evident that developing a Node.js-based solution was the most suitable choice. Node.js, with its extensive library ecosystem, provided the ideal platform to leverage a wide range of powerful tools and functionalities.

For the front-end, I used Electron.js, a framework for building cross-platform desktop applications with web technologies. Using Electron allowed me to leverage my existing knowledge of web development, which made the development process much more efficient. Electron also allowed me to use TypeScript, a superset of JavaScript that adds static typing to the language. The main advantage for using this framework, was its ability to run on multiple platforms, including Windows, macOS, and Linux. In addition, we laid the foundation for allowing GSS to run on a web server, which would allow us to access the software from anywhere, including mobile devices and tablets.

In an era of numerous advanced frameworks for user interface and design, I made a deliberate choice to adopt a more traditional approach using HTML and CSS. By utilizing these foundational technologies, I ensured a solid and reliable foundation for the interface. To strike a balance between customization and efficiency, I incorporated Bootstrap and custom SASS. This combination allowed us to achieve maximum flexibility and tailor the interface to our specific needs, while also leveraging existing solutions and avoiding unnecessary reinvention of the wheel. The result was a visually appealing and highly intuitive interface that effectively met our requirements.

In the COTS solution, while location data acquisition was present, it had its limitations. To enhance the map functionality, I integrated Leaflet.js, an open-source JavaScript library known for its user-friendly and interactive mapping capabilities. Leveraging the power of Leaflet.js, I was able to create a dynamic and visually appealing map interface that allowed users to explore and interact with location data seamlessly. This addition greatly enhanced the overall recovery process of our rocket and provided a more comprehensive visualization of the transmitted location data.


Rocket Avionics Software

Ground Station Software is primarily a web application, but to make it work, we also needed to make some additions to the telemetry side of the rocket, which is in C++. This included making our own packet structure to hold the vital information about our rocket such as sensor data, battery voltage, and FSM state. We also added the ability to receive commands from the ground station, such as changing the radio frequency or the call sign of the operator.