ROMEO Onboard Software (OBSW)
What is ROMEO?
For a broader introduction and documentation refer to the OBSW Wiki in the ROMEO Knowledge Base. This README gives a very brief introduction and aims to document the compile process for experienced developers. Research and Observation in Medium Earth Orbit (ROMEO) is the third small satellite of the Institute of Space Systems (IRS), University of Stuttgart with the objective of technology demonstration in Medium and Low Earth Orbit (MEO/LEO) with a mission duration of 1 year.
The Onboard Software (OBSW) is written in Rust for run-time stability. The implemented framework is losely based on the C++ Flight Software Framework (FSFW) developed at the IRS in cooperation with industry. The shift to Rust was discussed in Paul Nehlich's master thesis: Analysis and preparation of the transformation of the Flight Software Framework from C++ to Rust.

(design from IRS ROMEO Website)
How to Configure This Repository? TODO
First Stage Bootloader (FSBL)
FSBL code is at https://github.com/Xilinx/embeddedsw/tree/xilinx_v2024.1/lib/sw_apps/zynq_fsbl
Scope
This is the central repository for the flight software of the ROMEO satellite. It will eventually become the new base of a Rust Flight Software Framework replacing the C++ Flight Software Framework of the FLP, EIVE and SOURCE.
The current working steps are:
-
Build Toolchain (Daniel Philipp)
-
Hardware itnerfaces (Paul Nehlich)
- CAN Bus (Andy Hinkel)
- RS422 (Paul Nehlich, Joris Janßen)
-
Device Handling Fundamentals (Joris Janßen)
-
Framework Core Component Implementation (Paul Nehlich, Ulrich Mohr)
-
Integration of Space Packets and PUS Services (to be scheduled, Paul Nehlich)
-
OBC Board support and Linux Boot Management (Michael Steinert)
-
Device Integration
-
AOCS
-
TCS
-
Communications Interfaces
How to build the software?
Consider using Docker or setting up a local compile toolchain. Please refer to BUILD_WITH_DOCKER.md or BUILD_WITH_CMAKE.md.
How to debug on hardware?
Please refer to DEBUG_ON_ZEDBOARD.md