Optimize Your Satellite: A Guide to CMU Argus Flight Software for Enhanced Performance
Are you working on a satellite project leveraging the CMU Argus platform? This guide provides a comprehensive overview of the flight software, covering everything from installation to troubleshooting common issues. Learn how to maximize your satellite's potential with the right software and configurations.
What is CMU Argus Flight Software?
The CMU Argus flight software is designed for the mainboard of the Argus satellite, a technology demonstration mission focused on vision-based orbit determination. It aims to achieve orbit determination without GPS or ground involvement. This software also supports collecting Earth imagery for CubeSat visual applications and on-orbit ML/GPU processing. This means quicker turnaround in processing and analysis, all directly from space!
Supported Hardware: Ensure Compatibility
The flight software is compatible with multiple Argus hardware versions:
- Argus v1 (ATSAMD51J20)
- Argus v1.1 (ATSAMD51J20)
- Argus v2 (RP2040)
- Argus v3 (RP2350)
Make sure you are utilizing the right version for your board else you will have many problems with the software.
Step-by-Step Installation Guide
Follow these steps to install the Argus flight software on your system. Note that the simulation only supports Ubuntu systems version 22.04 or greater.
-
Create a Virtual Environment: This isolates dependencies and avoids conflicts.
-
Initialize and Update Submodules:
-
Run the Installation Script:
Building and Executing the Flight Software
With Mainboard Connection
Use the run.sh
script for building and transferring files to the mainboard. The script compiles the flight software to .mpy
files.
Compilation is supported on Linux, MacOS, Windows, and RPi.
Without Mainboard: Emulation and Simulation
If you don't have a mainboard, use the emulator or simulator.
-
Run the Emulator:
-
Run the Simulator:
Individual Build and Move Actions
Utilize build.py
and move_to_board.py
from the build_tools
directory for separate build and move actions.
-
Build Files:
For emulation:
-
Move Files to the Board:
Troubleshooting Common Problems and Solutions
Encountering issues? Most people will when first starting out, here are some ways to address them.
1. Board Stuck in Read-Only Mode
Access REPL and run the following commands:
2. Reflashing the Board
If you have access to the buttons on the board, you can enter the bootloader by pressing the buttons on-board. Refer to the Argus firmware guide. If not, access REPL and type to reflash Argus:
Warning: Avoid running this in main.py
to prevent boot loops.
3. Nuking the Board
As a last resort for boards stuck in bootloader or behaving unexpectedly, "nuke" the board by flashing it with the appropriate nuke firmware found in the firmware folder.
4. Can't Compile and Move Code
Potential causes:
- Power Issues: Ensure the board is powered via USB, and VSYS/GND pins are correctly connected.
- Incorrect Board Name: New boards default to
CIRCUITPY
. Rename it toARGUS
using your system tools. - USB Connector: Check the USB connector on the mainboard.
5. Data Handler Issues
If the data handler complains, the task data structure might have changed. Try wiping the SD card.
6. Mainboard Keeps Restarting
If using USB power:
- Turn off some devices.
- Lower burn wire strength.
Do I Need to Change Anything Before Compiling?
No, configurations are automatically detected by the CMU Argus flight software, simplifying the deployment process.
Conclusion
Operating CMU Argus flight software doesn't have to be complicated. Equipping yourself with the right strategies and troubleshooting tips will help maximize the performance of your satellite. This guide is designed to help you navigate common issues and optimize your flight software setup.