After 1.5 years working at the Cal Poly CubeSat Lab I had the opportunity to intern at JPL to operate the MarCO CubeSats. MarCO is a pair of CubeSats that were launched with NASA’s InSight Lander with the mission to:

  • Relay InSight’s Entry, Descent, and Landing (EDL) data back to Earth in real-time
  • Demonstrate the capabilities of the CubeSat form-factor in deep-space applications

An interesting aspect of the MarCO mission is the level of involvement required due to systematic constraints on the mission. Unlike flagship missions which may have hundreds of personnel for operations alone, CubeSats are targeted for low-cost R&D, development, and operations. To accomplish this JPL brought on many partners both in the development and the operations of MarCO. Cal Poly and the CubeSat Lab were selected to assist JPL with MarCO operations; this partnership consisted of two Cal Poly students who would intern at JPL over the duration of the mission to handle day-to-day operations and a larger team of students working from Cal Poly’s campus who would do long-term telemetry analysis and forecasting. As an intern on the flight operations team, I interfaced the JPL operations team with the operations team at Cal Poly, in addition to my day-to-day duties: drafting and verifying uplink products, analyzing telemetry, and recommending future spacecraft activities.

PolySat summer students during MarCO mission
Students working at the Cal Poly CubeSat Lab over the summer tour JPL while MarCO was cruising to Mars. Credit: Michael Fernandez

The MarCO mission used NASA AMMOS AMPCS to handle the ground infrastructure and data management, which was easily accessible from the JPL campus, but it was not feasible to expose critical mission infrastructure externally, so I developed a lightweight data management system that could be more easily shared with Cal Poly. The workflow I developed consisted of three parts:

  • A HDF5 (and sqlite) database with an ingestion engine for pulling telemetry from JPL servers
  • NASA OpenMCT which handled all data visualization
  • A python client which interface with the telemetry database to query or update data with strict 2-way data binding protocols to ensure the sources of truth were maintained

In addition to the workflow for allowing external collaborators to access mission data, on the day-to-day side, many tools needed to be developed to streamline and automate more of the mission operations as the team matured and understood the idiosyncrasies of the spacecraft better. Some of the tools I developed were:

  • Telemetry Quicklook: A service which aggregates spacecraft data and generates “quick-look” items in OpenMCT which summarizes spacecraft health.
  • Automatic Pass Report Generator: All spacecraft activities are planned and documented beforehand, but it proved laborious to annotate telemetry with specific events in these procedures, so this tool automatically collects telemetry generated during a procedure and generates a “pass report” (a pass is a term originally used for Earth-orbiting spacecraft when they would “pass” overhead) which was a nicely formatted pdf document which could be attached to the procedures and highlighted important telemetry during the activity. This tool was designed with Python and Pandoc.
MarCO Operations Team in the SFOC 'Dark Room'

If you would like to learn more about MarCO or InSight see these links:

If you would like to learn more about CubeSats here are some helpful links: