Integrated Flight & Ground Software Framework for Fast Mission Timelines

Flight and ground segment software in university missions is often developed only after hardware has matured sufficiently towards flight configuration and also as bespoke codebases to address key subsystems in power, communications, attitude, and payload control with little commonality. This bespoke software process is often hardware specific, highly sequential, and costly in staff/monitory resources and, ultimately, development time. Within Surrey Space Centre (SSC), there are a number of satellite missions under development with similar delivery timelines that have overlapping requirements for the common tasks and additional payload handling. To address the needs of multiple missions with limited staff resources in a given delivery schedule, computing commonality for both flight and ground segment software is exploited by implementing a common set of flight tasks (or modules) which can be automatically generated into ground segment databases to deliver advanced debugging support during system end-to-end test (SEET) and operations. This paper focuses on the development, implementation, and testing of SSC’s common software framework on the Stellenbosch ADCS stack and OBC emulators for numerous missions including Alsat-1N, RemoveDebris, SME-SAT, and InflateSail. The framework uses a combination of open-source embedded and enterprise tools such as the FreeRTOS operating system coupled with rapid development templates used to auto-generate C and Python scripts offline from ‘message databases’. In the flight software, a ‘core’ packet router thread forwards messages between threads for inter process communication (IPC). On the ground, this is complemented with an auto-generated PostgreSQL database and web interface to test, log, and display results in the SSC satellite operations centre. Profiling is performed using FreeRTOS primitives to manage module behaviour, context, time and memory – especially important during integration. This new framework has allowed for flight and ground software to be developed in parallel across SSC’s current and future missions more efficiently, with fewer propagated errors, and increased consistency between the flight software, ground station and project documentation.