This topic covers development of smallsat flight software. This includes testing of all software running on the flight computer and responsible for command and data handling (C&DH) for the entire spacecraft - from the operating system to the application layer. Software flaws are one of the most common sources of on-orbit failure in small satellites. Therefore, development of robust and reliable flight software is an essential component of any smallsat development effort.
Resources in this topic area are primarily real-time operating systems and associated frameworks for developing flight software, tools for version control, and tools for management of development processes.
Save effort by holding off coding until later in the project lifecycle (e.g., after the preliminary design review). This will ensure that the key issues are fully understood before finalizing software requirements. Deciding to code with only a fraction of the requirements finalized may cause expensive, time-consuming rewrites especially if the architecture of the software has to be torn up and reworked.
Work with hardware engineers to design software such that if a failure or fault occurs, the root cause can be derived from telemetry.
Use watchdog timeouts liberally to prevent the software from hanging and provide a "safety valve" for the software to trap and handle errors.
Break down software into simple, testable modules and minimize logical paths within each to make testing with complete code-coverage easier. Build a reusable module whenever an action is repeated - do not repeat yourself.
Develop and strictly follow good procedures for revision control, bug tracking, testing, and review of all code.
This article thoroughly compares six different flight software frameworks for use on the 6U cubesat VCUB1 ... developed by Visiona Space Technology S.A. A variety of mission software criteria were developed to compare these frameworks, including software code and documentation, flight heritage, size, and quality. Smallsat teams can use this article to compare flight software frameworks to find the best solution for their specific needs.
This journal article discusses the utility of designing reuseable flight-control software to mitigate ... risk of failure. It provides an overview of a specific educational CubeSat mission presents a design approach to developing cost-effective and reliable flight software.
This article presents an overview of the F Prime (F') open-source software framework and its specific ... use-case for small-scale flight systems. F' is used for rapid development and deployment of embedded systems and spaceflight applications. This article discusses the F' architecture and how it is used to develop flight software for low-cost smallsat missions.