Skip to content

On-Board Computer (OBC) Subsystem

The On-Board Computer (OBC) serves as the primary "brain" of the FlatSat satellite, responsible for coordinating mission logic, handling data, and managing communication between all other subsystems,,. It is built around the high-performance STM32F429ZI microcontroller, which provides the necessary processing power and peripheral connectivity for satellite operations.

OBC Pinout diagram

Key Capabilities and Features

Based on the system architecture and technical requirements, the OBC manages the following core functions:

1. Central Processing & Logic

  • Microcontroller: Utilizes an STM32F429ZI MCU for high-level processing.
  • Mission Execution: Coordinates tasks such as taking images, reading GPS coordinates, and communicating with the ground station,,.
  • System Testing: Executes unified test routines to verify the health of GPIO, UART, I2C, SPI, and connected sensors,.

2. Data Storage & Memory

The OBC provides multiple layers of memory for flight software, telemetry logging, and mission data:

  • Internal Flash: 2 MB of high-speed internal storage.
  • External SPI Flash: A 128M-bit (16 MB) W25Q128 memory chip for non-volatile data storage,.
  • Micro SD Card: Supports high-capacity storage via a dedicated SPI interface, essential for saving large mission files like payload images,,.

3. Peripheral Connectivity

The OBC interacts with the rest of the satellite through various standardized protocols,:

  • Dual I2C Buses:
    • Internal I2C: Connects to an on-board Real-Time Clock (RTC) and temperature sensors,.
    • EPS I2C: Directly controls the Electrical Power System's sensors (INA226, TMP102) and hot-swap controllers (ADM1177),,.
  • Multi-Channel UART:
    • GPS: Dedicated link for satellite positioning data,,.
    • Communication Subsystem: Facilitates telecommand and telemetry links to the Ground Segment,,,.
    • Debug/Console: Connected to the ST-Link for real-time monitoring via a PC.
  • SPI Bus: High-speed connection used for the Camera Payload and SD card operations,,.
  • CAN Bus: Integrated via an SN65HVD230 transceiver, providing a robust interface to the PC104 expansion bus for additional user subsystems,,.

4. Integrated Power Management

The OBC directly manages the satellite's power distribution,:

  • Direct Control: Four dedicated GPIO pins (PD0–PD3) act as power control switches,,.
  • Monitoring: Through the EPS I2C bus, the OBC can read real-time voltage, current, and battery health data directly from the hardware sensors,,.

Example Code & Documentation

Prerequisite Library

These Arduino Library are needed to be installed to be able to use provided example code

SdFat is an advanced SD card file system library that provides fast and reliable read/write access to SD cards using SPI. It is more efficient and stable than the default SD library, especially when working with large files or continuous data logging. This project uses SdFat to store sensor data and system logs on the SD card.

Grove High Precision RTC (PCF85063TP) is a real-time clock library used to keep accurate time even when the microcontroller is powered off. It provides timestamping for files, logs, and events, ensuring the system always maintains correct date and time information. This project uses the RTC to timestamp sensor readings and system activity.

All libraries can be installed form Arduino IDE-s Library manager

The following example codes demonstrate how to interact with the OBC's hardware features. These files can be integrated into your development environment to learn the fundamentals of satellite embedded programming.

Feature Description Code Link
System Test A unified routine testing all OBC peripherals sequentially. obc_system_test.ino
EPS Monitoring Read voltage and current from the EPS sensors via I2C. obc_read_eps.ino
Power Control Toggle the four primary power channels (PD0–PD3). obc_power_control.ino
Camera to SD Capture an image from the payload and save it to the SD card. obc_camera2sd.ino
GPS Acquisition Read and parse positioning data from the GPS module. obc_gps_read.ino
Commu Link Send messages and telecommands to the Communication module. obc_msg_to_commu.ino
SPI Flash Interface with the external W25Q128 memory chip. obc_flash.ino
SD Card Initialize and perform basic file operations on the Micro SD card. obc_sd_card.ino
I2C Scanning Identify connected devices on the Internal and EPS I2C buses. obc_int_i2c_scan.ino