Software

At its core, this architecture comprises two integral components – the flight software governing the satellite's autonomous operations and the testing software that plays a pivotal role in ensuring the reliability of each subsystem. Together, these components form a cohesive system that not only orchestrates the CubeSat's functions in the vast expanse of space but also undergoes rigorous testing to guarantee its readiness for the complexities of its mission.

The flight software emerges as the brain behind the Artemis CubeSat, imbued with the capability to manage a myriad of tasks crucial to the satellite's functioning. From data processing to communication protocols, this software optimally synchronizes the operations of the Avionics subsystem. In doing so, it not only ensures efficiency but also adapts seamlessly to the dynamic space environment.

Concurrently, the testing software assumes a critical role during the developmental and pre-flight phases, serving as the litmus test for the CubeSat's reliability. By validating the functionality of each subsystem through a series of rigorous testing scenarios, this software system ensures that the satellite is well-prepared to confront the challenges of its mission.

The flight software architecture of the Artemis CubeSat has been meticulously designed to efficiently handle and process the extensive data generated by the physical components of the kit. This prowess enables the flight software to collect telemetry, process data, and issue commands to control hardware components, thus facilitating a seamless and autonomous execution of the CubeSat's mission objectives.

Delving into the intricacies of Artemis’ testing software, it offers users a valuable toolkit to explore and understand the diverse components of the CubeSat. The on-board computer (OBC) features a Teensy-driven Artemis Arduino library, complete with user-friendly code crafted for testing sensors and other embedded elements. This library, by deconstructing the flight software into individual components, empowers users to rigorously test and evaluate the functionality of different systems and elements, fostering a deeper understanding of their satellite. Facilitating this testing software is the Arduino programming language, a framework rooted in C and C++, utilizing the Arduino IDE for coding Arduino board microcontrollers. 

Resources

Here are some useful resources to help you get started:

C++


Arduino