CubeSTEP Flight System
Academic Research Project, 2022-2023
The CubeSat Technology Exploration Program (CubeSTEP) is a joint collaboration between Cal Poly Pomona (CPP) and NASA’s Jet Propulsion Laboratory (JPL). The program recently received $900,000 in funding from NASA to carry out its mission(link). Our project was presented to the AIAA Science and Technology Forum and Exposition(link). I worked on the program during my ‘23-‘24 school year at CPP.

Mission Statement
- Develop a generic, yet fully-featured, CubeSat platform that future CPP projects can use as a foundation to advance their research.
- Utilize additive manufacturing to allow for custom payloads with minimal modifications to the platform.
- Develop and test an Oscillating Heat Pipe (OHP) integrated battery case which was provided by JPL.
Objective
The satellite had multiple computer systems that needed to be developed and integrated into the on-board computer (OBC) and the flight software.
- Attitude Determination and Control System (ACS)
- UHF Antenna and Transmitter
- Electrical Power System (EPS)
- Payload Processor
My primary assignment had two aspects: to develop the Payload processor (ESP32-Pico-D4) and model its required functionality in the flight software (JPL’s F-Prime) to allow the OBC to interface with the payload.
This page will cover my general experience working on this project. See CubeSTEP Payload Processor(link) for information specific to the ESP32 development.
To achieve the three goals in the mission statement, our CubeSat required careful consideration of hardware and software. After extensive research and trade studies, we selected the following products:
- AAC Clyde Space’s KRYTEN-M3 Onboard Computer (OBC). The OBC handles all the general flight systems and data transmission.
- Tensor Tech’s ADCS-MTQ (ACS) which is an integrated Attitude Determination and Control System (ACS) that can measure and control the satellite’s movement.
- EnduroSat’s UHF Antenna III and Transceiver II will communicate telemetry and commands between the satellite and the ground station.
- AAC Clyde Space’s STARBUCK-NANO Electrical Power System (EPS) manages the power generated by the satellite’s exterior solar panels and the 4 LG batteries to the electrical components inside.
- ESP32-PICO-D4 (ESP32) that will be developed in-house to manage the OHP payload and facilitate experiments.
- NASA JPL’s F-prime framework will seve as the flight service to manage all hardware and operate all the systems needed on our satellite. It was chosen specifically for its focus on modularity, reusability, modeling, testing and open-source access.

To complete its mission, our CubeSat must be able to perform the following operations:
- The OBC must read and write across other components using telemetry via transceiver communicated commands. Some information to be handled includes thermal readings of payload, object orientation from the ACS, and power distribution readings from the EPS.
- The EPS must distribute obtained power from batteries and solar panels accordingly to the specifications of each component and operate at distinct power modes during the mission.
- The ESP32 must log temperature and power data with the exact time and date of collection and control the power sent to the OHP’s heater cartridges to facilitate a thermal experiment.
- Firmware must be developed using F-Prime framework and secure operating standards.
- The flight software must be able to command the spacecraft to a nominal state following a power reset.
- The flight software will report instantaneous status reports of spacecraft health and telemetry to ground control.
F-Prime
Developing for F-Prime (F’) was a challenging task. It required extensive training and studying. The process begins by extensively modelling each component of the system’s functionality and interconnections. Within the model, each component’s functionality is defined by Events that have a defined trigger and response. The interconnections are called Ports which have protocols to transmit data between components. The components and their interconnections are defined in the model’s Topology. The details of the model’s Topology, and each component’s Events and Ports are coded in F-Prime-Prime (FPP), which is a built-in modelling tool in F’. FPP has its own syntax and provides semantic and error checking on the models. The models are coded in ‘.fpp’ files. After the design is verified, F’ can build template C++, Python, and XML file based on the FPP model. The next step in the design process is to fill out the templates to add the functionality to the Events and Ports. After this implementation, each component would be unit-tested and refined until the flight system is ready to be deployed onto the hardware.
Payload Component
My part in this project was to design and implement software on the OBC and on the Payload Processor that could manage telemetry from the OHP and facilitate experiments to test the performance of the OHP and verify its effectiveness.
The main requirements of the Payload Processor are the ESP32-Pico-D4 microcontroller, headers for the thermistors, headers for the heater cartridges, a UART over USB-C interface, and the PC/104-Plus’ 104-pin bus connector. The ESP32 has 2 32-bit ADCs that provide a total of 18 channels that are accessed through thier assigned pads and can be connected to thermisters and configurated to read their voltages as temperatures. The heater cartridges are controlled by a solid-state relay using a PWM output from a GPIO pad on the ESP32.
Because of how specialized the requirements are, this hardware would have to be custom made. We used Altium Designer to create a schematic of a design that fulfills the task’s requirements and model a prototype PCB for production. The Payload processor uses Silicon Labs CP2102N USB to UART Bridge Controller to allow the ESP32 to be programmed through the USB-C port. Texas Instrument’s TLV1117LV was selected to step down the 5V power provided by the USB-C port to 3.3V. Each part’s datasheets were used to create the supporting electronic circuitry and define connections between each part.
