Skip to content

Commit 300dd2e

Browse files
committed
update README
1 parent d730d58 commit 300dd2e

File tree

4 files changed

+35
-7
lines changed

4 files changed

+35
-7
lines changed

README.md

+15-6
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,18 @@
1-
# Flight Software for the PyCubed Board (Argus-1)
1+
# Flight Software for the Argus Board
22

3-
The repository contains the current flight software stack for the **Mainboard** of Argus-1. Argus-1 is a technology demonstration mission with the goal of:
4-
- Demonstrating Vision-based Orbit Determination (A&OD) on a low-cost satellite (devoid of any GPS or ground involvement)
5-
- Collecting a dataset of images of the Earth to further efforts in CubeSat visual applications.
6-
- Demonstrating efficient on-orbit ML/GPU Payload processing
3+
The repository contains the current flight software for the **Mainboard** of Argus. Argus is a technology demonstration mission with the goal of demonstrating vision-based Orbit Determination on a low-cost satellite (devoid of any GPS or ground involvement). We also aim to collect a decent dataset of images of the Earth to further efforts in CubeSat visual applications and demonstrate efficient on-orbit ML/GPU processing.
4+
5+
## Architecture
6+
7+
See [High-Level Architecture](docs/architecture.md)
8+
9+
## Hardware
10+
11+
The flight software currently supports:
12+
- Argus v1 (ATSAMD51J20)
13+
- Argus v1.1
14+
- Argus v2 (RP2040, in testing)
15+
- Argus v3 (STM32 variant, board in dev)
716

817
## Build and Execution
918

@@ -13,7 +22,7 @@ Building current files and moving them to the board can be handled by the run.sh
1322
```bash
1423
./run.sh
1524
```
16-
The script first builds and compiles the flight software files to .mpy files and transfers them to the mainboard you are connected to.
25+
The script first builds and compiles the flight software files to .mpy files and transfers them to the mainboard you are connected to. The compilation is supported on Linux, MacOS, and Windows.
1726

1827
### Without mainboard
1928

docs/architecture.md

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Architecture
2+
3+
The onboard flight software for Argus-1 follows a hierarchical architecture, structured into distinct layers that isolate hardware interfacing, fault handling, core functionalities, and mission-specific applications.
4+
5+
## Hardware Abstraction Layer (HAL)
6+
The HAL interfaces directly with the spacecraft’s hardware, managing initialization, communication, and status reporting for all hardware components across the spacecraft bus (excluding payload elements). This layer ensures consistent, low-level access to the hardware, abstracting specific details to provide a standardized interface for higher software layers.
7+
8+
## Middleware
9+
The middleware layer acts as a wrapper around the HAL, adding local fault-handling capabilities based on defined drivers and associated handling functions. It enables safe and reliable interactions with hardware components and manages fault conditions at the HAL level.
10+
11+
## Core Framework
12+
The core framework layer is responsible for essential system services such as data handling (telemetry, onboard mass storage), task scheduling, state management, and command processing. This layer forms the backbone of the flight software, managing the flow of data and commands within the system.
13+
14+
## Application Layer
15+
The application layer contains mission-specific software, including attitude determination and control, communication protocols, and payload control systems. This layer focuses on the execution of mission objectives and includes high-level functionality required for autonomous operations.
16+
17+
<p align="center">
18+
<img src="hl_diag.png" alt="Architecture Diagram">
19+
</p>

docs/hl_diag.png

17 KB
Loading

flight/main.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ def print_memory_stats(call_gc=True):
2020
if path not in sys.path:
2121
sys.path.append(path)
2222

23-
setup_logger(level="NOTHING")
23+
setup_logger(level="INFO")
2424

2525
print_memory_stats(call_gc=True)
2626

0 commit comments

Comments
 (0)