Modern software development for spacecraft is very conservative and limited to a small set of experts in the industry. This is due to various existing constraints on space hardware and to the typical criticality of space missions.
But the landscape is changing, particularly where CubeSats are concerned. These small satellites have become very popular in recent years, causing space components to become smaller and cheaper, and therefore making them accessible to a wider number of organizations.
On-board processors with large amounts of processing capability are allowing the space community to move towards spacecraft capable of executing actual operating systems such as Linux. This on-going transformation is similar to what happened for smartphones a decade ago and the European Space Agency (ESA) is taking the lead with the NanoSat MO Framework, an advanced software framework for small satellites inspired by the latest technologies that already exist here on Earth.
This cutting-edge software framework is actually making it possible for more people than ever to launch apps in space!
Legacy flight software
Traditional on-board software is developed for a specific mission and rarely gets updated. Future updates imply patching specific memory areas and often the software is developed for embedded devices and will never be updated again.
When thinking of today’s flight software a useful analogy to make is to compare it to the software from the old Nokia 3310 phones. The software development processes for flight software have not changed significantly in the last decade unlike what has happened with our widely available phones, as these once simple mobile devices have transformed into advanced “smartphones”!
The emergence of smartphones rebranded the concept of “software applications” into “apps” that can be easily developed, downloaded, and launched on a smartphone platform. This concept has revolutionized the way we think of software and today there are literally millions of apps available for smartphones that can be downloaded by anyone around the globe. 
The launch of the first “Smartsatellite”
The European Space Agency (ESA) is involved in multiple CubeSat projects, one of which is OPS-SAT, a CubeSat mission with the objective of testing new operational concepts in space. The mission has an experimental platform composed of a system-on-chip device with 1 GB of RAM, an ARM processor with 925 MHz and a lightweight version of Linux. This allows a wide range of software experiments to be carried out in space that would have never flown otherwise.
The use of such high-performance hardware offers the opportunity to apply various innovative emerging software advancements in the realm of flight software.  OPS-SAT was launched on the 18th of December 2019 and is open to experimenters all around the world who can try out their new ideas, by developing apps using the NanoSat MO Framework.
The OPS-SAT mission is the first software-defined satellite from ESA which has the ability to reconfigure its software while in space. This class of satellites are known as “smartsat” or “smartsatellite” and are being enabled by flexible software environments, such as the NanoSat MO Framework, which provides the ability to carry multiple applications on board the satellite.
For example, the OPS-SAT mission has apps with artificial intelligence (AI), new compression algorithms, CFDP, advanced on-board autonomy, MO services, EDS, and many other technologies.
The NanoSat MO Framework – a new generation of flight software
In 2014 the European Space Agency started an academic collaboration with TU Graz in order to investigate an advanced software framework for flight and ground software in spacecraft. Just like Android and iOS, ESA developed a software framework which allows flight software to become “apps” and run effectively in space.
This investigation was conducted in the AGSA Lab, a ground-breaking research laboratory at ESA’s premises which studies advanced software concepts for space missions. The innovative framework developed was called the NanoSat MO Framework and its main objective is to facilitate the development of software apps for small satellites and to simplify their orchestration.
Using the NMF, new software can be easily deployed in a satellite through starting and stopping apps.  The core functionalities of the framework are:
- Monitoring and control functionality
- Easy access to platform peripherals via services
- On-board software management; to install and run apps
The overall design of the framework is inspired by current smartphone technologies. ESA not only included the concept of apps but also developed a Software Development Kit (SDK), a packaging mechanism for the digital distribution of apps, and abstract services (such as the GPS service or the Camera service) that allow any app to control and retrieve information from the spacecraft platform.
NanoSat MO Framework – flight software as space apps
The cutting-edge framework is now successfully in operation in ESA’s OPS-SAT mission. Software experimenters use the framework’s SDK to develop their bleeding-edge software in a rapid manner, without having to understand the low-level details of the platform.
This approach reduces the software development efforts and also increases reuse across future missions. In addition, the European Space Operations Centre (ESOC) in Darmstadt has developed a web-based Mission Control System that is able to connect to the NanoSat MO Framework apps.
This project is known as EUD4MO and allows monitoring and control of apps that are running in space. The EUD4MO is used with a web browser such as Chrome or Firefox and allows OPS-SAT users to remotely access apps from the comfort of their home or office. Earth Observation (EO) satellites can significantly benefit from the ability to reconfigure software in space in this way.
Today, EO satellites are still used mainly to collect raw data from the instruments and just ‘dump’ this data to ground for additional processing elsewhere. The NanoSat MO Framework gives users the ability to develop AI apps that can carry out image processing using neural networks directly on-board. This is known as AI edge computing and it significantly reduces the amount of data that is required to be transferred from space as it is processed locally on the satellite.
A new world of space apps
Smartphone apps always cover very specific functionalities, for instance, a dedicated app to take pictures with the camera or a dedicated app to access the contacts list. These apps are never intended to cover a large set of tasks.
By extending this idea to the space domain, a new set of space software focused on particular satellite operations and functionalities can be created. Just as the Uber™ app and Snapchat™ app have very different purposes to the user, an app to transfer files between ground and space is different from an app that can determine the cloud coverage in a set of images using AI.
By shifting the software development approach to a low-risk activity that is focused on specific functionality rather than the traditional development of a complete system, smaller startup companies are now able to specialize in particular satellite functionalities and can more easily enter the space software arena by creating a software product that can be reused by different satellites.
The flight software landscape is changing and a new world of space apps is now an exciting emerging reality!
Do you want find out more about the NanoSat MO Framework? Check out the satsearch page here and build your space app!.
References  N. 2017, “App stores: number of apps in leading app stores 2017 – Statista”, Statista, 2017. [Online]. Available: https://www.statista.com/statistics/276623/number-of-apps-available-in-leading-app-stores/. [Accessed: 15/09/2017]  “OPS-SAT”, European` Space Agency, 2017. [Online]. Available: http://www.esa.int/Our_Activities/Operations/OPS-SAT. [Accessed: 15/09/2017]  C. Coelho, O. Koudelka and M. Merri, “NanoSat MO framework: When OBSW turns into apps”, 2017 IEEE Aerospace Conference, 2017.