On the 13th June 2019, a rocket launched from Kiruna, Sweden
, carrying 280kg of scientific experiments; among them, a Raspberry Pi Zero running Docker containers on balenaOS
. To our knowledge this is the first time a Moby/Docker container engine has been flown to space!
, an IT Engineer & Ground Controller from the Deutsches Zentrum für Luft und Raumfahrt (the German Aerospace Center), has been working on a project to develop a replacement on-board computer (OBC) for sounding rockets. These rockets, sometimes alternatively known as research rockets, are designed to carry scientific instruments and other payloads intended to perform experiments and take measurements during a short, sub-orbital flight. A flight vehicle typically achieves a maximum altitude greater than the 100 km Kármán line
, meaning that any data gathered from space is done so without effects from the Earth’s atmosphere.
The Microchip ATmega328
(the same as that used on some of the Arduino platform boards) is commonly used in OBCs for this application, and whilst useful for simple applications, more complex projects involving high throughput data sampling and cryptography demand more computational power.
The apex project
In order to supersede the aging Microchip ATMEGA328P as the de facto standard for Commercial off-the-shelf (COTS) On-Board Computers (OBCs) with a more powerful system for different kinds of high-speed sensors and image acquisition applications, we developed advanced processors, encryption, and security experiment (apex).
The apex OBC. Note the Raspberry Pi Zero and ESP32 boards on the right. Image credit: Nico Maas
The apex project consists of a Raspberry Pi Zero with attached high-definition camera, two ESP32-PICO-D4 microcontrollers, and an array of sensors connected via an i2c bus. The system additionally has a connection to the service module of the vehicle in order to receive LO (lift-off), SoE (start of experiment) and SoDS (start of data-storage) signals and act upon them as required. Block diagrams of the system can be found in Nico’s paper
Nico goes on to explain that the biggest issue encountered with Linux-based single board computers like the Raspberry Pi, in this application, is the reliance upon a high quality power supply which cannot always be guaranteed on-board a flight vehicle. A sudden loss of power or brown-out during a write cycle to the on-board SD card has a high chance of corrupting the filesystem and rendering the device unable to boot and function as a result. Of course, in an application such as this where the primary purpose is data capture, write cycles are almost continuous, increasing the risk of corruption even further.
To mitigate these risks, the Raspberry Pi on apex uses balenaOS
, which is designed for reliability, fault tolerance, harsh networking conditions and unexpected shutdowns - perfect for this environment. The software on the device runs in containers via balenaEngine
, an implementation of the Moby/Docker container engine tailored for embedded devices. The OS includes a supervisor which allows the use of multi-container applications, provides an on-device API (for actions like reboot/shutdown), ensures the containers start and run correctly after each boot, and is able to overcome certain corruption scenarios.
Finally, what’s an article about rockets and space without a launch video?! Thanks to the German Aerospace Center, DLR for sharing the below video on YouTube
Thanks go out to Nico for sharing his project with us and for allowing me to share it with you all. We are super excited to hear about balenaOS going into space for the first time! If you have any feedback or questions feel free to post on the forums
where we can share comments with Nico too.