The ground software (GSW) is the interface between the human controllers and the physical hardware. The software, written in Java, allows team members to operate the entire rocket system safely from a base camp and a safe distance. Broken into two parts, the rocket-side interface called Olympus, and the remote-control interface called Gaia, the software provides complete insight into all the rocket systems and supports multiple users for more detailed analysis of active operations.
The ground software needs to function in many different environments (lab vs. test site vs. launch site), so to minimize rework, the vast majority of the system is driven by a set of configuration files that are loading during the boot process, but can be reloaded at any time without restarting the system. The configuration files specify anything from telemetry sources and desired boards to networking ports, packet encoding and board commands. This enables a relatively painless expansion of data and command lists while maintaining baseline functionality early in the development cycle.
Olympus after accepting at least one connection on the telemetry and command sockets
The master telemetry configuration, from which other configuration files are created.
Olympus is the “server” application in the GSW system. It provides a central point of connection for all data and command streams, and operates on the GOD computer. Using a standard TCP/IP server structure, Olympus supports a multitude of active connections while simultaneously managing connectivity to the ground and rocket hardware, Hyperion and Kronos. Olympus monitors the status of the ground and rocket hardware and collects data from, and transmits commands to the boards through virtual serial ports over a standard USB connection. Additionally Olympus is responsible for collecting and logging data generated by the control hardware. For added reliability and speed, Olympus is designed to utilize modern, multi-core processor support and is very multi-threaded (while still maintaining low memory and CPU usage during nominal operation).
Gaia is the remote, graphical user interface for control of the rocket systems. Also Java-based, Gaia connects to Olympus over a wireless point-to-point network link. Gaia provides tracking and recording of all telemetry as well as autosequence support for precisely timed events and fault detection and recovery for unexpected operational situations.
A small operations test of Gaia functionality. Most of the data are generated by a subroutine on Olympus, but the data on the bottom left are coming from a physical test board. All of the data is being successfully transmitted over the test network.
Partial list of all the telemetry elements Gaia tracks during full-scale operations.