This is the repository of the sat-rs library. Its primary goal is to provide re-usable components
to write on-board software for remote systems like rovers or satellites. It is specifically written
for the special requirements for these systems. You can find an overview of the project and the
link to the more high-level sat-rs book
at the IRS software projects website.
This is early-stage software. Important features are missing. New releases
with breaking changes are released regularly, with all changes documented inside respective
changelog files. You should only use this library if your are willing to work in this
environment.
A lot of the architecture and general design considerations are based on the
FSFW C++ framework which has flight heritage
through the 2 missions FLP
and EIVE.
Overview
This project currently contains the following crates:
satrs-book:
Primary information resource in addition to the API documentation, hosted
here. It can be useful to read
this first before delving into the example application and the API documentation.
satrs-mib:
Components to build a mission information base from the on-board software directly.
Examples
All examples and their helper crates are located inside the
examples folder:
example-std:
Example on-board software using various sat-rs components which can be run on a host computer
or on any system with a standard runtime like a Raspberry Pi.
minisim:
Mini-Simulator based on nexosim which
simulates some physical devices for the example-std application device handlers.
client: Ground client to command the example-std application and the STM32H7 examples.
types: Telecommand and telemetry definitions shared by the
example-std application, the STM32H7 examples and the client.
embedded:
Simple examples using sat-rs components on a bare-metal system with constrained resources,
running on the NUCLEO-H753ZI board. stm32h7-nucleo-rtic uses the
RTIC framework and stm32h7-nucleo-embassy uses the
embassy executor.
The library crates and the example-std application have their own CHANGELOG.md.
Related projects
In addition to the crates in this repository, the sat-rs project also maintains other libraries.
spacepackets: Basic ECSS and CCSDS
packet protocol implementations. This repository is re-exported in the
satrs
crate.
There is an active and continuous effort to get early flight heritage for the sat-rs library.
Currently this library has the following flight heritage:
Submission as an OPS-SAT experiment
which has also
flown on the satellite.
The application is strongly based on the sat-rs example application. You can find the repository
of the experiment here.
sat-rs
This is the repository of the sat-rs library. Its primary goal is to provide re-usable components to write on-board software for remote systems like rovers or satellites. It is specifically written for the special requirements for these systems. You can find an overview of the project and the link to the more high-level sat-rs book at the IRS software projects website.
This is early-stage software. Important features are missing. New releases with breaking changes are released regularly, with all changes documented inside respective changelog files. You should only use this library if your are willing to work in this environment.
A lot of the architecture and general design considerations are based on the FSFW C++ framework which has flight heritage through the 2 missions FLP and EIVE.
Overview
This project currently contains the following crates:
satrs-book: Primary information resource in addition to the API documentation, hosted here. It can be useful to read this first before delving into the example application and the API documentation.satrs: Primary crate.satrs-mib: Components to build a mission information base from the on-board software directly.Examples
All examples and their helper crates are located inside the
examplesfolder:example-std: Example on-board software using various sat-rs components which can be run on a host computer or on any system with a standard runtime like a Raspberry Pi.minisim: Mini-Simulator based on nexosim which simulates some physical devices for theexample-stdapplication device handlers.client: Ground client to command theexample-stdapplication and the STM32H7 examples.types: Telecommand and telemetry definitions shared by theexample-stdapplication, the STM32H7 examples and theclient.embedded: Simple examples using sat-rs components on a bare-metal system with constrained resources, running on the NUCLEO-H753ZI board.stm32h7-nucleo-rticuses the RTIC framework andstm32h7-nucleo-embassyuses the embassy executor.The library crates and the
example-stdapplication have their ownCHANGELOG.md.Related projects
In addition to the crates in this repository, the sat-rs project also maintains other libraries.
spacepackets: Basic ECSS and CCSDS packet protocol implementations. This repository is re-exported in thesatrscrate.cfdp: CCSDS File Delivery Protocol (CFDP) high-level library components.Flight Heritage
There is an active and continuous effort to get early flight heritage for the sat-rs library. Currently this library has the following flight heritage:
Coverage
Coverage is generated with
cargo-llvm-cov:This tests the
satrscrate and opens the HTML report in your webbrowser.