... Documentation is still being developed ...
This repository contains the firmware for the Payload, Iris, of Ex-Alta3. This firmware is used to interface with the custom 'Theia' PCB developed for Iris which is used to interface with the Camera Modules, monitor temperature and current flow, and transmit captured images back to OBC.
This firmware will run on a Raspberry Pi Compute Module 4 running 'Raspberry Pi OS Lite' as its operating system.
The PCB Firmware code has been divided into 4 folders.
General Inc Folder: inc/
General C Folder: src/
Main Folder: main_service/
SPI Folder: spi_service/
The 'main_service/' folder contains the 'main' function for the Theia Service responsible for interfacing with the PCB. It is the primary service for the Payload and is the largest portion of this repository.
The 'spi_service/' folder contains the 'main' function for the SPI Service responsibele for interfacing with the OBC. This service configures the SPI interface of the payload as the 'Host', and reads / writes data.
The 'inc/' and 'src/' folders contain the majority of the Firmware code and are used in both services above.
Within the folder 'misc_raspi' there are files used to configure the Raspberry Pi during boot 'config.txt' and additional bash scripts which help with file management and corruption protection.
Warning
The location of these files within the Linux File System are important for their functionality. Care should be taken to validate the functionality of these files when placed in the system.
The build process for the firmware utilizes a 'makefile' to automate the process. There are 4 possible build configurations available.
make one_service
make two_service
make debug_one
make debug_two
The Theia Service can either be a combined executable, or divided into two separate services. The two separate services allows the SPI Driver to be a separate service, while the single service combines the funcitonality.