Background
This is a long-running project at Rice, with previous iterations and teams dating back several years. The graduation of the initial team of grad student designers led to the project being recently revived by a new group of undergraduates. As part of this new, small but passionate team, I have been working on developing the software systems necessary for the CubeSat's On-Board Computer (OBC). Our team is responsible for designing, implementing, and testing the flight software that will manage the satellite's operations, data handling, and communication with our ground station.
I joined OWLSAT in early 2025, attracted by the opportunity to work on a real-world space mission and contribute to the growing field of small satellite technology. I've been excited about space technology since I was a kid, and the chance to actually help design and build a satellite was something I couldn't pass up. The project also aligned well with my past experience in engineering and embedded software development.
My specific contributions have included setting up the initial framework for asynchronous task management on the OBC, given that it's a single-threaded microcontroller environment with limited resources. After extensive research, I decided on utilizing CircuitPython's Tasko libary due to its lightweight nature and convenience of use (much of our team are new programmers, and CircuitPython is very beginner-friendly). This has allowed us to efficiently manage multiple concurrent tasks, such as sensor data acquisition, data storage, and communication with the ground station, all while adhering to the strict timing requirements of satellite operations.