OPS-SAT: A Software Development Platform in Space

Introduction
On June 18 European Space Agency held a workshop in the Darmstadt, Germany for one of its missions – a relatively obscure yet exceptionally forward-thinking OPS-SAT cubesat [1]. The purpose of this satellite is to provide a platform to run various software experiments in space for interested parties from ESA countries. In other words, it is a software development platform in space – a first of its kind and almost exactly identical in spirit to the cubesat our company is trying to build. 

Mission summary
In terms of actual satellite hardware, OPS-SAT is not a large satellite. It is a 3U cubesat with a mass of around 6kg, with deployable solar panels that can provide up to 24 Watts of electrical power. It will be launched in late 2019 from Kourou space port on a “Soyuz” launch vehicle into a sun-synchronous orbit with 515 km altitude.It has a dedicated on-board computer to run user software and multiple payload instruments, described below:

  • On-board computer for user application is an industrial-grade single-board system, with 800 MHz ARM Cortex-A9 CPU and Cyclone-5 FPGA, 1GB RAM and 8 GB of flash memory storage.
  • A visible light imaging camera from Berlin Space Technologies is provided, with approximately 80 m/pixel resolution from the mission orbit.
  • Fine-guidance attitude control and determination system with a pointing accuracy of <1 deg 
  • GPS receiver
  • S-band uplink and downlink transceiver
  • X-band downlink transmitter 
  • A software-defined radio instrument.
  • An optical receiver and fused quartz retro-reflectors
OPS-SAT Exterior view, image credit: ESA
OPS-SAT interior view, image credit: ESA

Experiments summary
Of course, the most interesting part of this project is what kind of experiments are possible to run on this satellite. As indicated by the project page, over 100 experimenters have signed up for this mission, and a number of those were presenting their concepts during June 18 workshop. The planned experiments can be briefly summarized into the following types:

  • Mission autonomy and application of artificial intelligence to spaceflight operations, CNES and ESA itself are very much interested in testing those kind of software solutions, with obvious applications to the next generation of space missions.
  • Novel algorithms. Payload instruments, especially imaging cameras, are able to generate large amount of data beyond the capabilities of downlink channel and reducing the raw data to only the most valuable features is a constant struggle for any space mission. So, in-space image processing using ML tools and data compression algorithms were among the popular topics presented. 
  • Internal and external communication protocols, including application of IP and HTTP Internet protocols in space environment conditions and implementation of SpaceWire communication bus successor named SpaceFiber, a high-speed internal communication bus protocol over optical and electrical links using FPGA capabilities [2].
  • Various radio and optical experiments using onboard radio and optical transceivers, such as SDR spectrum analyser, space-based digital relay, a test of delay-tolerant network for small satellites and test of laser communications using OPS-SAT optical receiver.
  • Another group of possible applications were virtualization and user-access share experiments, using Docker and LXC container technology with a potential application as the foundation for “space app” development platform, one of those being a submission from our team, which will be described in more details below

Our contribution
As described on our website, we wanted to build and launch essentially the same satellite mission as ESA, creating a software development platform in space. We are very excited to learn that our vision was also shared by the people working for the major space agency!  For any such development platform to succeed, its software execution environment must have very strong robustness guarantees to handle potentially faulty user code and prevent mission-ending scenarios.

Therefore, our experiment will focus on creating a mission software runtime, that would able to provide the required capabilities. It will be a command language interpreter with a capability of abstracting away the challenges of space environment and nuances of satellite hardware. It’s place in general software hierarchy is illustrated below:

Our experiment has been confirmed to be included in OPS-SAT mission, provided we submit our software package on time. After initial confirmation of its capabilities in space, we want to offer direct access to execute third-party code in our runtime for users through a simple web interface.

The host satellite already provides a lot of necessary functionality in hardware and software including a Java NMF software development framework and fault detection and isolation features, simplifying our mission.  However, our final goal is to build a fully-featured development pipeline on top of this features, including all supporting tools to enable a space application ecosystem, similar to iOS and Android application stores, using our own satellites. 

P.S. You can also read some of the event details from our twitter feed, including video interview from Darmstadt (courtesy of @missmollytv)