ACP SatOS Operations Manual
1. ACP Operational Overview
1.1. ACP Operate General Information
The Operate tab provides the interface for satellite operators to interact with the satellite. Upon entering the tab, the list of promoted satellites will be provided on the side, with a map of the globe in the center. Upon selecting a satellite, the operator will enter the Heads-up Display (HUD).
1.1.1. HUD
The HUD shows the operator the most important information about your satellites in a clear and easy-to-understand way. This information includes:
· The current location and orbit of a satellite (or a fleet of satellites).
· The tasks your satellites are currently working on and any upcoming events.
· Any warnings or alerts that need attention
From the HUD the operator can access multiple windows using buttons to assist their work. Each of these buttons opens up a secondary window that can be dragged or pinned on the screen. The top left has a home button to return to the previous screen, as well as the satellite name and TLE details. By accessing the TLE details the operator can view the TLE currently uploaded to the satellite, the date it was updated, and potentially manually update the TLE.
In the top right the operator will find the quick actions panel with 4 more buttons: Onboard Schedule, Console, Telemetry, and File Queue.

1.1.2. Onboard Schedule
This button opens a window showing the schedule onboard the satellite. It shows the details for each event in sequence for the satellite, including telemetry and payload downlinks, payload events, and scheduled uplinks.
1.1.3. Console
This button opens up the command console and messages for the operator.
Viewing Live Telemetry through the Console
A table with the most recent command and telemetry messages sent and received will populate. The command field indicates whether the message was a command (TC) or telemetry (TM) message, and the message color indicates whether the message was successful or not. Selecting the message will display additional information about the message in the space below, including the undecoded hex data and the decoded JSON packet details of the message. Each message is unique in the packet details and more information can be found in the telemetry and command database.

Message Colors:
Yellow: Successful command that induced a corresponding telemetry response from the satellite
Green: Telemetry response from a corresponding command
Blue: Beacon or health metric telemetry
Red: Incomplete, potentially corrupted message
None: Command that did not induce a telemetry response detected by ACP
Manual Telemetry and Raw Bytes
At the top of the console window, in addition to the typical minimize, pin, and close buttons found on most windows, there is a toggle for raw bytes and a button to upload a file. The raw bytes toggle will show only the raw bytes for each message but may also display messages that were partially corrupted due to loss of data. The upload file button allows an operator to manually import a telemetry file in the event that telemetry is not visible in ACP.

From this window the operator can select a band type, ground station ID, and epoch to upload the file to the satellite. The file itself can be dragged onto the section once that information has been filled out, or the operator can select it manually. Once the telemetry is imported, a success message will be displayed and the file will be visible in the command telemetry messages window.
Commanding and Uploading Files through the Console
The left side of the window offers the command console, an interface for the operator to send manual commands to the satellite. Starting from the top, the operator may select TT&C to send single manual commands from the database, or TASK to send ad hoc tasks or upload a schedule. The TASK window can also be used to manually upload files to the satellite, like payload firmware updates. The operator can select “Upload File” from the task type window and select a file to upload or provide the information manually. Once everything is confirmed, the file upload and corresponding details will appear in the file queue window.
If TT&C is selected, the operator can filter the tasks using selections for bus, payload, or raw input components, as well as filtering based on subsystem or an editable text field for command id or command number. After the operator has selected a command or group of commands to upload, it needs to be assigned to a contact. This can be done at the bottom of the contact window. By default, the next contact appears showing the location and time until the start of the contact window. The operator can also select the calendar button below, to select a specific contact window instead. Once the contact is selected, the operator can hit “Schedule Now” and the command or commands will be added to the queue of telecommands for the satellite in that contact window. These telecommands will have a Bytes Length of 0 until they are sent during their scheduled contact. If the operator selects a contact window for which the satellite is already in, the “Schedule Now” button will instead say, “Execute”, and the command will be sent immediately.
If an operator would like to send commands or downlink telemetry on a specific band (UHF or SBand), the operator should select the contact that has the desired configuration. No explicit telecommands are needed to configure the communications link.


It is possible to send raw commands in the form of undecoded hex data by selecting Raw Input as the Command Type. This is useful for sending commands that are complicated to modify within the JSON view. Typically, these raw commands are provided by a subsystem specialist. The operator will need to specify whether or not the packet header is included in their provided byte stream.
1.1.4. Telemetry
The 3rd button in the quick action panel provides a quick option to display some of the more important historical telemetry of the satellite. This display provides graphical information that is easy to digest for each of the satellite subsystems. The operator can select which subsystem from a drop-down menu at the top. From each graph, the operator can use hover their cursor over a location to provide more information. The operator can also click and drag over an area to home in on key ranges. The information provided here is a subset of the information provided on the Monitor tab.

1.1.5. Contacts and Events
The HUD also provides the operator with important upcoming information for contacts and events. Ground contact opportunities are provided by the ground station provider as inputs into ACP and then will be displayed in several locations. The bottom of the screen shows a running window of the satellite schedule, that can be configured between 30 minutes and 3 hours. In it the operator is able to visualize any upcoming, current, or previous events as well as look further ahead or back by selecting arrows at the far right or left respectively. On the left side, the operator can filter the events displayed by selecting drop down and choosing between ground contacts, onboard schedule, or both options. Above the dropdown, the HUD displays the most recent completed contact and the next upcoming contact as well as some information about each.

1.1.6. Settings
The settings button in the bottom right allows the operator to configure the display of the Earth to their preference. This gives the operator the ability to zoom in and out of the map, toggle a 2d or 3d view, change the mapbox style to a satellite/dark/light view, as well as an eclipse toggle to show the light and dark sides of the Earth.
1.1.7. Plan
In addition, the HUD tab, there is also the Plan and Monitor tab. Both of these tabs provide expanded information for that is displayed in the Onboard Schedule, Ground Contact, and Telemetry Displays. The Plan tab has two subtabs for Onboard Schedule and Ground Contacts. This Onboard Schedule subtab provides a larger number of schedule events as well as additional information about each event. The operator can also use the buttons at the top right of the display to manually import or generate schedules for the satellite.

The Ground Contacts subtab displays all available ground stations in a table with their scheduled and previous ground contacts. The operator can select a ground contact to display additional information about it on the right-side including contact type, duration, start time, and an image of the location of the ground station on the world map.

1.1.8. Monitor
The Monitor tab provides the similar graphical views of historical telemetry of the satellite as the telemetry quick action button in a larger format. These graphs have the same subsystem filters as well as the same analytical capabilities. The operator may change the view to grid or list in the top right, as well as filter based on date range.

2. Operating a Satellite
2.1 Satellite Behavior
The satellite often experiences repeated behavior while on orbit. While this behavior may change, it is intended to help the operator with some activities, observations, and operational procedures performed during the daily monitoring of a satellite.
2.2.1. Orbit Characteristics
The satellite operates in a Sun-Synchronous Orbit (SSO) at an approximate altitude of 450 km. It will complete one Earth revolution every ~90 minutes, maintaining consistent local solar time for surface overpasses. During each orbit it will experience sunlight ~55-60 minutes and eclipse ~30-35 minutes. It will also undergo the following during an orbit:
· Battery systems alternate between charging (sunlight) and discharging (eclipse)
· Elevated Battery Discharge during payload and propulsion states
· Thermal states fluctuate with sunlight exposure
· Attitude control systems maintain nadir pointing or payload-specific orientations
2.2.2. Ground Contacts
The satellite will pass within view of a ground station while it is in orbit. With sufficient pass parameters (time, elevation, weather) the satellite can communicate with the ground station in a contact. These contacts are usually 5-10 minutes and occur roughly 3-6 times per station per day. These contacts serve as the only way to uplink and downlink data from the satellite. While the satellite is not in a contact window, it is operating autonomously and collecting and storing payload and telemetry data. Then during a contact window, this data can be downloaded from the satellite. The longer the satellite goes without downlinking the data stored onboard, the more data it has stored within and there can be issues with both data storage as well as downlink bandwidth to address. These contact windows are also where the operator can communicate through a ground station with the satellite to issue commands or update the satellite firmware. These commands can be scheduled ahead of time or run manually during a contact.
2.2.3. Beacons
The satellite will automatically emit beacons at regular cadences that are predetermined in the SatOS software. These beacons contain top-level satellite health information and will appear in the Console regularly, and are not induced by any telecommand. Beacons are emitted from both the UHF and S-Band modules at different cadences, but contain the same information
TM-815 = OBC beacon transmitted via UHF (4 packets emitted every 1 minute)
TM-411 = OBC beacon transmitted via SBand (2 packets emitted every 2 minutes)
Beacons are a good way to passively verify the ground receive/satellite transmit path as well as gather onboard information prior to executing any activity.
2.2.4. Day-in-the-Life Operator Tasks
Common operator tasks for a satellite vary by mission and by the phase that mission is in, but in general some procedures would include the following:
· Review and trend downlinked telemetry to monitor long term satellite subsystem health.
· Prepare command loads and scheduling updates for upcoming passes.
· Plan and verify payload tasking for upcoming daylight passes.
· Identify and address anomalous behavior
Please see Section 3.1 and 3.2 for examples of pre-launch and post-launch operator tasks
2.3. Upload Files
in Operate > HUD open the Console
Go to the Task tab in the left pane
Choose Task Type = Upload File
Select Choose File to upload a locally-stored file to ACP
Use the following parameters
App ID: 134
ID 134 = PS (Payload Server)
File ID: same as file name
Destination ID: 134
Max Transmission Unit: 1300
Delay: 200
Activity Timeout: 200
Connection Timeout: 200
Loss Detection: Enabled
Click Upload File
Look for a pop-up message indicating success or failure

2.4. Command Sequencing with Adhoc Tasks
ACP can automate sending a set of commands from the ground with relative delays (in seconds) between each telecommand. While they does not completely remove the operator from the loop, adhoc tasks significantly reduce operator error and bandwidth when taking contacts.
Create Task
Go to Design > Satellites and click on your desired satellite
Go to Operations > Tasks and click Create Task
Enter a Task Name
Choose Task Type Adhoc
Click + Telecommand
Add your desired Telecommand based on Input Type
Use Telecommand Builder for telecommands that can be sent with their default values
Component: Subsystem to send telecommand to
Telecommand: Telecommand ID and string
Can use ID in dropdown for easier search
Preview: Telecommand JSON with default values (cannot be modified)
Use Raw Input for telecommands that need their default values modified
Copy and paste your desired telecommand JSON into the input box
Add Delay (in sec) at the bottom of the Task Creation window
It is recommended to add at least 7 seconds of delay for each telecommand to avoid undesired OBC resets
Add the telecommand
Repeat steps 5-8 for all telecommands
To rearrange the order of telecommands, click the 6 dots to the left of the telecommand and drag to the desired order
Save the Task Plan

Execute Task
Go to Operate and click on the desired promoted satellite
In the top right of the HUD view, click on Console
In the Console, go to the Task tab
Choose
Task Type: Adhoc Task
Task: Title of desired task
In the bottom left of the console, click on the calendar icon next to Schedule Now
Choose the contact to deploy this adhoc task to
A highlighted box with the contact info will appear. Make sure that this is the desired contact
Click Schedule Now
Check to see if the telecommands are in the queue by cross-checking TC IDs. These queued telecommands will have a Bytes Length of 0
You may need to close and re-open the Console to see the queued telecommands
The AdHoc tasks will begin 15 seconds after expected AOS. One can verify that telecommands are being sent by watching each Bytes Length field change to a nonzero value.
3. Common Operational Tasks Using ACP
3.1. Examples of Pre-Launch Tasks
Common flatsat activities performed before launch can be broken down into functional tasks which focus on validating subsystem behavior, and mission planning tasks which focus on higher-level operations and flight team readiness.
Functional Tasks
Test subsystem commissioning and health checkouts (EPS, ADCS, OBC, TT&C, Propulsion, and Payload)
Validate command execution and telemetry generation
End-to-end communication verification between ACP, ground software services, and the flatsat or
Power modeling (e.g., boot, safe, nominal)
ADCS Modeling (Detumble, Sun pointing, Nadir Pointing, Target Pointing)
Mission Planning
Verify automated LEOP sequences and scripts
Verify LEOP procedures that require operator intervention
Train operators and familiarize them with the satellite, procedures, tooling, and operational workflow and intuition
Rehearse LEOP procedures with subsystem specialists and greater flight team
3.2. Examples of Post-Launch Tasks
Flatsat activities commonly performed after launch focus on recreating and debugging anomalies that transpired in the production environment, verification of future activities, and further software development.
Anomaly response analysis and verification
Onboard schedule and adhoc task acceptance testing
Software development and acceptance testing
3.3. How to Execute Routine Operator Tasks
3.3.1. Induce an Automated Health Metric Dump
The OBC logs predefined telemetry from various subsystems. To access this stored telemetry, one can induce a health metric dump in three ways:
Send any TC at least 2.5 minutes after the last TC has been sent. This will dump all historical telemetry across all subsystems
Send TC - 621 Get Health Data of All Submodule All Queue to explicitly dump all historical telemetry across all subsystems
If inducing over UHF over-the-air, it may take up to 2 minutes to receive all telemetry. Commanding may be limited during this downlink period
Send TC-621 for your desired subsystem
The operator can look up the appropriate command string for TC-621 when using Console or Ad-Hoc Task Creation (ex: for OBC-specific health metrics, choose 621 - Get OBC Health Telemetry Configuration)
The Submodule IDs and Queue IDs for each health metric packet is located on the far right side of the Console under Info. The Submodule ID’s are listed below as reference:
0 = EPS
1 = ADCS
2 = COMMS SBAND
3 = COMMS UHF
4 = SENSORS
5 = OBC
6 = ERROR HANDLER
If an operator would like to downlink health metrics on a specific band (UHF or SBand), the operator should perform this downlink over a contact that has the desired configuration. No explicit telecommands are needed to configure the communications link.
3.3.2. Disable an Automated Health Metric Dump
Sometimes, the automated health metric dump can impede operations in several ways:
Makes commanding impossible during the downlink during bi-directional UHF operations (since UHF is half-duplex)
Takes a non-trivial amount of power to transmit all health metric data, especially over S-Band
Crowds the telemetry logs, impeding time-sensitive decision-making
To disable this feature, send TC-622 Change Queue Priority of All Submodules
CurPriority = 0
IsSingle = 3
Priority = 2
QueueID = 255
SubmoduleID = 255
To re-enable automated health metric dumps, send TC-622 Change Queue Priority of All Submodules again with the following parameters:
CurPriority = 2
IsSingle = 3
Priority = 0
QueueID = 255
SubmoduleID = 255
3.3.3. Query EPS Power State
To query the current power state of the batteries, boards, and solar panels, send TC-200
To query historical power states, induce an EPS health metric dump with TC 621 - Get EPS Health Telemetry Configuration
3.3.4. Payload/Edge Application Upgrade
Build application artifacts (
upgrade_artifact.tar
) with DockerCreate .tar images of the “factory” version and the “updated” version. command: docker save -o <image_name> <image>:<tag>
“Factory” version should be available at <payload directory prefix>/factory_image/ directory on PS
ex) satos-payload-antaris:factory is the name of the docker image of factory version.
docker save -o satos-payload-antaris-app_factory.tar satos-payload-antaris-app:factory
ex) satos-payload-antaris:latest is the name of the docker image of updated version.
docker save -o satos-payload-antaris-app_latest.tar satos-payload-antaris-app:latest
Generate
upgrade_artifact.tar
using the factory image tarball and the updated app image tarballUse the bash script
create_docker_artifact_tar.sh
to generate the app artifacts. This script assumes that docker version being used is >=25.0.0Run the bash script with
bash create_upgrade_docker_artifacts_tar.sh -f <factory image tarball> -u <updated image tarball>
Upload
upgrade_artifact.tar
with the parameters (refer to section 2.3)App ID = 134
Destination ID = 134
Send TC-609 (app id = 136) to confirm the current app image tag on the flatsat
Send TC-610 (app id =136) to upgrade the app image to the new tag
This upgraded image will be stored under the factory_image directory with the tarball titled "<PAYLOAD_IMAGE_NAME>_update.tar"
Verify in TM-610 that Response = 0 (success)
IF Response != 0: Skip to step 8
Send TC-611 (app id = 136) to upgrade the factory image to the latest update tag
Verify in TM-611 that Response = 0 (success)
IF app image response was not successful, restore the previous factory image with TC-612 (app id = 136)
Send TC-609 (app id = 136) to confirm that the current app image tag is the updated tag
Last updated