Skip to main content

Introduction

This site aims to be a comprehensive guide to OpenC3 COSMOS. We'll cover topics such as getting your configuration up and running, developing test and operations scripts, building custom telemetry screens, and give you some advice on participating in the future development of COSMOS itself.

So what is COSMOS, exactly?

COSMOS is a suite of applications that can be used to control a set of embedded systems. These systems can be anything from test equipment (power supplies, oscilloscopes, switched power strips, UPS devices, etc), to development boards (Arduinos, Raspberry Pi, Beaglebone, etc), to satellites.

COSMOS Architecture

COSMOS Architecture

COSMOS 5 is a cloud native, containerized, microservice oriented command and control system. All the COSMOS microservices are docker containers which is why Docker is shown containing the entire COSMOS system. The green boxes on the left represent external embedded systems (Targets) which COSMOS connects to. The Redis data store contains the configuration for all the microservices, the current value table, as well as data streams containing decommutated data. The Minio data store contains plugins, targets, configuration data, text logs as well as binary logs of all the raw, decommutated, and reduced data. Users interact with COSMOS from a web browser which routes through the internal Traefik load balancer.

Keep reading for an in-depth discussion of each of the COSMOS Tools.

Helpful Hints

Throughout this guide there are a number of small-but-handy pieces of information that can make using COSMOS easier, more interesting, and less hazardous. Here's what to look out for.

ProTips™ help you get more from COSMOS

These are tips and tricks that will help you be a COSMOS wizard!

Notes are handy pieces of information

These are for the extra tidbits sometimes necessary to understand COSMOS.

Warnings help you not blow things up

Be aware of these messages if you wish to avoid certain death.

Find a problem in the documentation or in COSMOS itself?

Both using and hacking on COSMOS should be fun, simple, and easy, so if for some reason you find it's a pain, please create an issue on GitHub describing your experience so we can make it better.