aerospace Article Reusable and Reliable Flight-Control Software for a Fail-Safe and Cost-Efficient Cubesat Mission: Design and Implementation Ibtissam Latachi 1,* , Tajjeeddine Rachidi 2, Mohammed Karim 1 and Ahmed Hanafi 1 1 Faculty of Sciences Dhar El Mhraz, Université Sidi Mohammed Ben Abdellah of Fez, Fes 30050, Morocco;
[email protected] (M.K.); ahmed.hanafi
[email protected] (A.H.) 2 School of Science and Engineering, Al Akhawayn University in Ifrane (AUI), Ifrane 53000, Morocco;
[email protected] * Correspondence:
[email protected]; Tel.: +212-655-573-285 Received: 12 August 2020; Accepted: 6 October 2020; Published: 10 October 2020 Abstract: While there is no rigorous framework to develop nanosatellites flight software, this manuscript aimed to explore and establish processes to design a reliable and reusable flight software architecture for cost-efficient student Cubesat missions such as Masat-1. Masat-1 is a 1Unit CubeSat, developed using a systems engineering approach, off-the-shelf components and open-source software tools. It was our aim to use it as a test-bed platform and as an initial reference for Cubesat flight software development in Morocco. The command and data handling system chosen for Masat-1 is a system-on-module-embedded computer running freeRTOS. A real-time operating system was used in order to simplify the real-time onboard management. To ensure software design reliability, modularity, reusability and extensibility, our solution follows a layered service oriented architectural pattern, and it is based on a finite state machine in the application layer to execute the mission functionalities in a deterministic manner.