← Back to Projects
EMBEDDED SYSTEMS · AEROSPACE · RESEARCH

CubeSat Mission Software & On-Board Computer

Design and development of the embedded computing platform, flight software architecture and subsystem communication used to operate and test Violet, the New Brunswick CubeSat.

Doctoral research · Université de Moncton · CubeSat NB (Violet)

STM32F405 STM32F407 ARM Cortex-M4 C FreeRTOS CSP CAN GNSS FlatSat

PROJECT OVERVIEW

Building the Embedded System Behind an Autonomous CubeSat

Violet is the New Brunswick CubeSat developed as part of the Canadian CubeSat initiative to support scientific research related to the Earth's ionosphere and space weather.

Operating a CubeSat requires much more than running a single application. The spacecraft must coordinate multiple embedded subsystems, execute scheduled mission operations, collect and store scientific data, communicate with the ground station, monitor its own health and respond to faults.

My doctoral research focused on the embedded platform required to support these operations, including the on-board computer, mission software, inter-subsystem communication, GNSS payload integration and the FlatSat environment used for system-level testing.

ENGINEERING SCOPE

What I Developed

The project covered the complete embedded stack, from custom electronics and low-level firmware to real-time software, spacecraft networking and hardware-in-the-loop integration testing.

01

Mission Software

Designed and implemented a layered embedded mission-software architecture in C using FreeRTOS.

02

On-Board Computer

Developed a custom STM32F405-based OBC platform for executing the mission software and coordinating spacecraft operations.

Custom CubeSat on-board computer developed for mission software testing
Custom STM32F405-based on-board computer used for mission software development and testing. Doctoral thesis, Figure 1.4.
03

Communication Board

Developed and integrated an STM32F407-based communication subsystem supporting the CubeSat communication architecture.

04

CSP & CAN

Implemented CubeSat Space Protocol (CSP) communication between embedded subsystems using the spacecraft CAN network.

05

GNSS Payload

Developed a C library and carrier-board integration for communicating with the OEM7 GNSS receiver.

06

FlatSat & CLI

Developed test infrastructure and CLI tools for commanding subsystems, debugging and analyzing results during integration.

FLIGHT SOFTWARE

Layered Mission Software Architecture

The flight software was organized into five layers to separate hardware-specific code from communication services and mission-level functionality. This structure made the system easier to develop, test and extend as additional CubeSat subsystems were integrated.

05
Application Layer

Mission operations · Telemetry · Housekeeping · Subsystem operation · Software installation & updates

04
Communication Layer

CubeSat Space Protocol (CSP) · Inter-subsystem networking

03
Real-Time Operating System

FreeRTOS · Tasks · Scheduling · Synchronization

02
Driver Layer

Hardware-dependent software · RTC · Storage · Sensors · Interfaces

01
Peripheral Layer

OBC · Communication · Payload · Sensors · CubeSat subsystems

Five-layer CubeSat mission software architecture
Proposed mission software architecture. Source: Doctoral thesis, Figure 2.4.

EMBEDDED COMMUNICATION

Distributed Communication with CSP over CAN

Violet consists of multiple embedded subsystems that must exchange commands, telemetry and mission data reliably. Rather than treating each interface independently, the spacecraft uses a common communication architecture.

CubeSat Space Protocol (CSP) was implemented and tested on the STM32F405 on-board computer and the STM32F407 communication board, with CAN serving as the primary inter-subsystem network.

This allowed the OBC to communicate with other spacecraft subsystems through a consistent packet-based interface while additional interfaces such as I²C were used where required.

CubeSat NB Violet system bus architecture showing OBC, communication, payload, ADCS and EPS subsystems
CubeSat bus architecture developed during the research. Source: Doctoral thesis, Figure 2.3.

RELIABILITY

Fault Detection & Recovery

The OBC periodically requests telemetry from spacecraft subsystems and evaluates the returned values against operating rules. When an abnormal condition is detected, the software identifies the fault, enters the appropriate failure mode and attempts recovery before returning the spacecraft to normal operation.

Monitor Collect subsystem telemetry
→
Detect Identify abnormal values
→
Evaluate Apply fault rules
→
Recover Execute recovery strategy
CubeSat telemetry monitoring and fault recovery algorithm
Fault detection and recovery process based on subsystem telemetry, fault rules and recovery attempts. Doctoral thesis, Figure 3.4.

INTEGRATION & VALIDATION

FlatSat Test Platform

Before final spacecraft integration, the embedded subsystems were connected through a FlatSat test platform. This made it possible to run the mission software on real hardware while keeping each subsystem physically accessible for debugging and measurement.

The configuration connected the STM32F405 OBC, STM32F407 communication board and OEM7 carrier board. It was used to verify CSP packet exchange over CAN, GNSS communication, command execution and communication between the spacecraft and ground-side test equipment.

01 OBC ↔ Communication Board
02 CSP packet transfer over CAN
03 OBC ↔ OEM7 GNSS receiver
04 CLI command & diagnostic testing
05 Ground-station beacon communication
CubeSat FlatSat integration test platform
FlatSat configuration used to integrate and test the OBC, communication board and OEM7 carrier board. Source: Doctoral thesis, Figure 3.11.

MEASURED RESULTS

Embedded Performance

240 KB Flight software flash footprint
1 MB OBC flash capacity
34% CPU load — normal/manual/maintenance
16% CPU load — failure mode
141.4 mW Maximum mode power consumption
52.8 mW Measured low-power test

TECHNOLOGIES

Engineering Stack

Embedded

STM32 · C/C++ · Firmware

Real-Time

FreeRTOS · Tasks · Synchronization

Communication

CAN · Embedded Interfaces

Engineering

Hardware Integration · Testing · Debugging · Validation

RESEARCH & PUBLICATIONS

Published Engineering Work

IEEE · 2022

Flight Software Development for a CubeSat Application

Research describing the architecture and development of flight software for the CubeSat application.

IEEE · 2023

On-Board Computer and Testing Platform for CubeSat Development

Engineering work covering the on-board computer and supporting test platform used during CubeSat development.

Building an Embedded or IoT Product?

Konceptux works on embedded firmware, connected products, hardware integration, communications and engineering prototypes.

Discuss Your Project