obsw/README.md
2024-05-24 12:31:51 +02:00

48 lines
2.5 KiB
Markdown

# ROMEO Onboard Software (OBSW)
## What is ROMEO?
[For a broader introduction and documentation refer to the OBSW Wiki in the ROMEO Knowledge Base](https://openproject.mm.intra.irs.uni-stuttgart.de/projects/romeo-phase-c/wiki/obsw). 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)_](https://www.irs.uni-stuttgart.de/en/research/satellitetechnology-and-instruments/smallsatelliteprogram/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_](https://www.researchgate.net/publication/372439213_Analysis_and_preparation_of_the_transformation_of_the_Flight_Software_Framework_from_C_to_Rust).
<img src="https://egit.irs.uni-stuttgart.de/romeo/obsw/media/branch/main/romeo_design_from_website.bmp" alt="ROMEO Preliminary Design" width="400"/>
(design from IRS ROMEO Website)
## How to Configure This Repository? TODO
# First Stage Bootloader (FSBL)
FSBL code is at https://github.com/Xilinx/embeddedsw/
## 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](./BUILD_WITH_DOCKER.md) or [BUILD_WITH_CMAKE.md](./BUILD_WITH_CMAKE.md).
## How to debug on hardware?
Please refer to [DEBUG_ON_ZEDBOARD.md](./DEBUG_ON_ZEDBOARD.md)