Download:
Mercury 1.1.2a
CVS Tarball
 nav.

  • Main
  • FAQ
  • Download
  • Design Docs
  • SF Project
  • CVS Info
  • Bug Report
  • News
  • Screenshots
  • Links
  • Contact Info
  • Sponsors
  • MGSN
  • Developers
  •   Mercury System Overview

    Mercury is a software system for commanding a controlling satellite ground stations via the Internet. Our motivations for developing Mercury are to reduce the cost of operating space missions and to increase mission yields and capabilities. We seek to make accessing space systems as easy as searching Google. We are developing an opensource software platform, currently based on Linux, Apache, MySQL, and Java, to build a network of Internet enabled ground stations.

    Currently, Mercury is deployed to support university satellite missions. As an example, a Mercury-enabled OSCAR station at Stanford University is the primary access point for the QuakeSat satellite, a first generation CubeSat designed to measure low frequency magnetic field emissions from Earth that are believed to be earthquake precursor signals. Other satellites supported by Mercury include Sapphire and Opal.

    Core ground station services are captured in Mercury, ones that are shared across multiple missions. We divided these services along autonomy lines into three hierarchical layers which permit low level hardware commanding, contact automation for a single station, and peer cooperation among ground stations teams to enhance globally distributed contacts. The virtual hardware level captures the fundamental capabilities of low-level ground station components and enables generic commanding of heterogeneous hardware. The session level captures typical automation taks and services of a single ground station system. The network level captures the services of a ground station network enabling cooperate teams of ground stations to optimize satellite contacts.

    We are capturing these core services in an XML-based command and control language called the Ground Station Markup Language (GSML). It abstracts low level, device dependent syntax into a generic command and control language for standard station services. This enables Mercury to be used on heterogeneous systems where GSML drivers are present.

    An eventual goal of the Mercury system is to provide flexible application support to space missions. Using virtual machine (VM) technology, ground station users will be able to download an entire VM that performs all their modulation, demodulation, bit sychronization, forward error correction, packetization, etc, and their application specific services within ground station computers. This will free the station from specific application level knowledge and it will only have to focus on running the users VM.

    The Mercury architecture has been implemented using Linux, Apache, MySQL, and a suite of Java software for command and control of the station equipment. Reliability has been the most important system quality attribute with flexiblity a close second. Mercury has been buitl with recovery-oriented design principles in mind. We focus on methods for fast recovery, sometimes at the expense of performance, to build highly available systems.