TOM (Telemetry Operations Manager) is the main flight board of CPSS (Cal Poly Space Systems) - designed, assembled, and programmed in-house.
It is a multi-mission flight computer capable of data collection, logging, state estimation, telemetry, control surface actuation, and pyrotechnic firing. It is extensible, has multiple redundant systems, and was designed with safety and reliability in mind.
Initially drafted onboard CPSS to program a nonexistent flight computer five weeks before launch, I quickly found myself collaborating with a core team to create a flight computer responsible for gathering sensor data and broadcasting it back to the launch site. While that initial launch didn't quite work out, we still learned a lot, and it motivated us to create a more robust solution.
After a bit of preliminary design, I spent that summer diving into Zephyr RTOS, and the rest of the year building a board that would later be known as TOM. Naturally assuming the role of Avionics Technical Lead, I spearheaded both the PCB design and fabrication, as well as the software architecture and programming.
Data Collection
In addition to a GPS module, TOM is equipped with 3 Altimeters and 3 IMUs for redundancy.
A median filter is used to guard against sensor failure, and a median over time is used to dampen the effect of sensor noise.
This data is forwarded over CAN to the other processors onboard for state estimation, downlink, and logging.
Telemetry
In order to receive data in flight, and to assist post-landing recovery, TOM has an onboard GPS module and LoRa radio.
After discovering that the firmware installed on the LoRa module would not properly respond to frequency change requests, a timeshare algorithm was implemented. Synchronized using GPS time, it coordinates signal broadcasting across multiple TOM boards to eliminate downlink crosstalk when communicating with multiple boards simultaneously.
Logging
Due to the unreliability of MicroSD cards in high vibration environments, a soldered SPI flash module was chosen for log storage.
I implemented a custom log retrieval solution that took advantage of TOM's onboard Bluetooth capabilities. I wrote an accompanying mobile application which could browse the stored files and download them for analysis.
NAV - Navigation Microprocessor
TLM - Telemetry Microprocessor
MPU - Mission Processor
Borrowing from BPS.Space's AVA flight computer, TOM was designed to have three microcontrollers. Each one is responsible for a specific set of operations:
NAV: Sensor data collection
TLM: Telemetry and Logging
MPU: Mission-specific programming
Together, these chips provide TOM's full functionality,
TOM uses a Controller Area Network (CAN) bus to communicate between its three microcontrollers. CAN was chosen because it offers simpler hardware requirements than Ethernet, supports more clients than Serial, and provides faster transfer rates than I2C.
Additionally, since it uses a differential-pair, CAN is less prone to interference and noise, especially over longer distances - for example, in situations where additional sensor boards or control modules at opposite ends of the rocket need to communicate with TOM.
Unfortunately, Zephyr's CAN support was lacking features important to our use-case, and while we were able to implement a version with reduced functionality on TOM, there were a few too many hurdles we had to work around. Ultimately, we decided it was not worth the effort to continue supporting CAN on future iterations of TOM (see TOM 2.0), and opted instead for a single processor and multiple different links for different use cases. While seemingly more complex, it greatly simplifies our new software architecture and closer aligns with the goal of TOM 2.0 to be more developer-friendly.
TOM's pyrotechnic circuitry includes a physical lock-out mechanism, preventing accidental firing.
In June of 2024, TOM successfully triggered stage separation and SES of CPSS's two-stage rocket "Forte". A state machine was used to passively detect liftoff and MECO. Correct behavior was ensured by replaying recorded flight data from TOM's previous missions.
Unfortunately, manufacturing abnormalities outside of our control led to parachute system failure on the lower stage of our rocket. It experienced a high-speed impact on touchdown, destroying one of our TOM boards in the process.
Log data collected by the second stage rocket "Fortissimo"
All was not lost, however. We were able to receive telemetry from the first stage during flight, and the data collected from the second stage allowed for a valuable postmortem analysis.
Throughout the course of this project, we gained inspiration from many places and people. While visiting OpenSauce 2025, we were lucky enough to meet and show TOM to a few of them:
"You guys capital 'C' Cooked!" -Joe Barnard (BPS.Space)
"Have you shown this to BPS.Space?" -Scott Manley
"You should get BPS.Space to sign this" -Destin Sandlin (SmarterEveryDay)