Cube-OS is an OpenSource Linux based operating system and framework for CubeSats and other satellites. (based on KubOS)
On this page you find all the repositories you need to run your own satellite.
More Documentation can be found here
Please follow the instructions provided in the repository to install the Cube-OS SDK
API for Services on Cube-OS. Please read the README file before making your own code.
Here's an example how to write an API, Service and App for your Payload or Subsystem.
The API describes how the OBC interacts with the payload.
The Service can be compiled for use on the satellite and as a ground station twin. On the satellite the service allows Apps and the satellite controller on the ground to interact with the payload. The ground station twin enables the communication with the satellite service by translating JSON commands from the command line interface to UDP commands.
The App enables autonomy on the satellite. During the mission the controller will schedule Apps for execution to run payloads autonomously in orbit.
The command line interface (CLI) enables the user to send commands and receive telemetry from the satellite.
The WebApp is a graphical version of the CLI.
!!!TODO
As shown above, cubeos-service uses features so the user can decide the use case at compile time.
UDP handling
cargo build
or with cross compiler
OBC: cargo kubos -c build --target kubos-linux-isis-gcc -- --release
(requires KubOS SDK)
BBB: cargo kubos -c build --target kubos-linux-beaglebone-gcc -- --release
(requires KubOS SDK)
terminal:
cargo build --features terminal
Additionally the UDP handling and terminal features can be combined with debug, e.g.:
cargo build --features debug
cargo build --features terminal,debug
To run a service simply transfer the executable to the satellite or ground station to a desired folder (e.g. /home/kubos/) and run:
./executable
This requires a config file /etc/kubos-config.toml
. Alternatively run the executable with the -c flag to specify a config file:
./executable -c path/to/config
CubeOS uses git ssh URL's for dependencies within the Organisation. Pls make sure to add your to the repository:
start ssh-agent
eval `ssh-agent`
add key (in repo)
ssh-add ~/.ssh/$your-key
e.g. ssh-add ./.ssh/id_rsa