The Command and Data Handling Subsystem (CDH) has two main objectives: to produce software that is flight ready, and run the flight computer in an efficient way. This software controls the hardware components of the satellite and interacts with other subsystems in order to have a complete and functional satellite.
Our work consists of writing and testing software, as well as working with other subsystems to help them achieve their software goals. Our overall software workflow is writing an initial version, writing tests for it, and then going back and making sure all tests pass and that we have an efficient version that is ready for flight.
Undergraduate researchers learn a lot on the team! We program in C++ on Linux, use Google Test and Makefile for testing, and use GitHub for version control. We interact with hardware using various serial protocols like SPI, CAN, UART, and I2C. On top of that, researchers learn a lot about communication and group work skills. If you don't know some or any of these things, don't worry! We have initial training for new members to fit right into the team!