Introduction

Workbench overview

The focus of this project is to provide users with the ability to install, set up, and configure Scepter and Javelin to be able to send a ‘ping’ from the user to a workbench satellite and receive a response back. The flowchart shown below was made to better visualize this.
Workbench overview diagram
Workbench overview

Workbench version 0.1 (current)

This version of the workbench is the initial completed version and uses Python scripts and functions to operate. In a slight diversion from the planned design, users will access and operate the workbench from the full_command_process.py file. Future development will look to upgrade this to have users only interface with Scepter. The workbench script will prompt the user with yes/no questions throughout the process. The primary reason behind this is to ensure that users are able to review the current inputs and responses from the workbench. It also allows for an exiting point prior to sending an overpass timed command as the delay for these can be large.
OSSO workbench version 0.1 system diagram
OSSO workbench version 0.1

Further development

From here, there are some upgrades and development that can be done to your workbench once the tutorials are complete. We will provide you with one option on how this workbench can be upgraded, however since this is open-source software, any upgrades are entirely up to you as the user.
One option to upgrade the workbench is to convert it into an event-based server and client model. This could be structured in the following way:
Event-based model configuration diagram
Possible workbench configuration for event-based model
The main idea behind this upgrade is to reduce the user input into the workbench and automate the majority of the functions. By using an event-based client and server model, the workbench can be set up to run on specific commands. For example, the Start Contact instructions command will start the overpass loop and continually send the selected command on each overpass. The End Contact instruction would then end this loop. Making the workbench into an event-based system would also allow for disconnections and reconnections to the loop without interrupting any current events. For more information on this web application type, see the link here.

Tutorial structure

There are five tutorials within this project. To ensure that the workbench is set up correctly, it is recommended that users follow them in order from Tutorial 1 to Tutorial 5, as each tutorial assumes the completion of the previous. An overview of each tutorial is presented below.
Tutorial 1: Scepter setup and configuration
Tutorial 1 will focus on getting users set up with Scepter and taking them through some basic commands. It will take them through installation, environment configuration, and explain further how to use Scepter including input formats and system requirements.
Tutorial 2: Javelin setup and configuration
Tutorial 2 will look at taking users through the installation, set up, and basic use of Javelin on their local system. It will also provide information on how to do the same on a separate machine. Tutorial 2 will also provide some helpful resources and scripts that will aid first time users in getting familiar with how Javelin works.
Tutorial 3: Scepter-Javelin communication
Tutorial 3 will show users how to configure their ‘locally’ operating Scepter and Javelin packages such that there is communication between the two. At the conclusion of this tutorial, users will have constructed the first half of the engineering workbench seen above.
Tutorial 4: Complete workbench process
Tutorial 4 focuses on completing an infant version of the engineering workbench seen above. At the end of this tutorial, users will be able to ping a ‘satellite’ (BBB running KubOS) and get a response. The timing of both the ping and the response is not a worry at this point as this will be upgraded later.
Tutorial 5: Upgrading the workbench
Tutorial 5 is the final tutorial, and it will focus on upgrading the ping to mimic a spacecraft's orbit around the Earth. This will include taking into account the overpass time and the delay of commands to match the satellite's communication window.

OSSO software

To gain a better understanding of how each of these software system's work and their purposes in the workbench, a brief overview will be given for both Scepter and Javelin.

Scepter

Scepter is the command and control API for OSSO. Essentially, Scepter is the user's communication tool with their mission database that holds all the necessary information required to operate your satellite. Scepter communicates with everything via HTTP requests and can be run either locally or remotely on a LAN.
A complete map of Scepter's endpoints is also given here, however:
Scepter endpoint diagram
Map of Scepter endpoints

Javelin

The other major software package for OSSO is the ground station tools and utilities package known as Javelin. This holds all the necessary tools and functions to communicate with a satellite at any level of development. It also contains useful pieces of software including a radio emulator for a beagle bone black, a GNU-radio configuration file, and various shell script functions for SatComms and ground station control. The following chart will go through the structure and briefly explain what you get in the Javelin Directory on download.
Javelin endpoint diagram
Map of Javelin structure
Table of contents