Under the Hood of KubOS

These docs give a more detailed examination of the inner workings of KubOS

APIs

Kubos provides a variety of APIs to help with the development of mission software:

  • Device Interfaces - APIs for external devices (ex. radio), built on top of the Kubos HAL
  • OBC APIs - APIs for features which are internal to a particular OBC
  • Kubos HAL - Hardware interface abstractions (I2C, SPI, etc)
  • Kubos Libraries - Non-hardware libraries

Protocols

Intra-satellite communication is generally handled using HTTP over TCP/IP, with the packet payloads being structured as GraphQL requests or JSON responses.

For procedures which require space-ground communication, special care has been taken to craft protocols which can handle higher rates of packet loss and function well in the more asynchronous comms environment.

Note

We are currently working on a dedicated Space Ground Interface Control Document to highlight this expected link behavior.

Kubos Linux

While Kubos does create and distribute official releases of Kubos Linux, users are free to create their own builds. This allows KubOS to be easily customized on a per-mission basis.

Users will most likely want to create their own builds when they create new hardware services which should be included in the OS’ root file system.

Design Decisions

When developing new features for KubOS, we frequently have to make a choice between two or more tools/libraries/frameworks which will most closely give us our desired characteristics.

The design decisions doc give a quick summary of how we have decided on our particular toolset.