This project involves my work as a member of the CUSat team on campus, Cornell’s
entry into the Nanosat-4 Program run by the Department of Defense. The goal of
Cornell’s team for this program is design, build, and launch a two satellite system with a
mission goal of in-orbit satellite inspection. My task on the team was to design a memory
management system for the Telemetry and Command (T&C) subsystem. This subsystem
acts as the gateway between the satellite and the ground station, taking data from the
flight computer and storing in memory until the satellite is within transmission range of a
Although the memory management system design was completed, due to complications
throughout the entire CUSat team during the semester the T&C system as a whole is not
yet fully operational. However despite not having a completely final version of the
microcontroller code finished, it is close. The functions have been written to take in data
from the flight computer, store it in designated locations in the flash, and then read this
data and send it to the radios when over the ground stations. The groundwork has been
established for successful completion of the overall system design goals.
This is the header file containing the functions for reading from and writing to the flash memory.
Source fragment of the full satellite code.
This is the portion of the T&C MCU code that handles incoming commands from the flight computer. Commands with a payload generally allocate memory for this incoming data and then write it to a specified location in flash. Commands with a response expected either read data from the flash or current MCU memory and transmit it to the flight computer. Portions of this code are still a work in progress and being revised by current members of the CUSat Team.