Skip to content
jimblanc edited this page Dec 5, 2014 · 7 revisions

Table of Contents

What is Mercury2?

Thank you for your interest in Mercury2! Simply stated, Mercury2 is a small suite of applications (mostly Python) designed to automate ground station operations. Once completed, Mercury2 will allow users to schedule access on your ground station using an easy to use web interface. Then, whenever a scheduled reservation begins, Mercury2 will automatically configure the reserved hardware and set up the control and data sockets that the operator uses to interact with the ground station. During a reservation the operator will be able to use the UI to view a real-time stream of ground station telemetry and send commands to their reserved hardware devices using procedurally generated forms. The architecture and operation of Mercury2 will be explained in greater detail in following sections.

Important! The Current State of Mercury2

Mercury2 is currently in a pre-release alpha state and is undergoing active development. Currently, the hardware manager component has been completed and the user interface is nearing completion. As a result, we do not recommended using Mercury2 in a production ground station until the user interface has undergone further development and testing. However, if you're interested in possibly deploying Mercury2 on your station in the future or helping with the development effort we recommend installing and experimenting with the developer version. Please feel free to contact us for help setting up your ground station.

How It Works

At its core Mercury2 consists of two main components, the user interface (the UI) and the hardware manager (the HWM). The user interface consists of a Django application that provides tools for creating reservations, monitoring and controlling the station during reservations, and configuring the ground station. The hardware manager is responsible for actually setting up scheduled reservations, providing pipeline telemetry and data sockets, handling ground station commands, and enforcing user access restrictions and permissions. The figure below illustrates what a typical Mercury2 setup may look like.

Note that Mercury2 allows for multiple HWM instances to be managed by a single UI instance. This is useful for distributed or large ground stations. For simpler ground stations, the UI server may live on the same host as the HWM instance. Although the ground station setup is easier if the UI server and HWM hosts are on the same local network or virtual LAN, it is not required (for ground stations that are spread out over large geographic areas).

The User Interface

The user interface component of Mercury2 (which runs on the "UI Server" in the figure above) provides an easy to use web-based interface for the ground station, as well as an API. For ground station operators it will offer a way to remotely configure the ground station, view the reservation history, and determine the current state of the ground station. For satellite operators, it will offer an easy to use reservation wizard for scheduling access on the ground station as well as a "tracking" utility that will allow the user to monitor the ground station during their reservation. The user interface is currently nearing completion with a release expected soon.

The Hardware Manager

The hardware manager component of Mercury2, which runs on the "HWM Hosts" in the figure above, is responsible for coordinating with the UI to configure and provide access to ground station hardware. It consists of a Python application designed around the Twisted asynchronous framework.

Clone this wiki locally