

Open Source Earth Imaging Satellite Hardware + Firmware
- Size
- 80 × 80 mm
- Copper layers
- 4
- Thickness
- 1.6 mm
- Parts
- 151
- Nets
- 194
- Pads
- 700
- Tracks, vias
- 1,011, 940
- Pours
- 8
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 23 Aug 2025
- Updated
- 8 Nov 2026
Overview
Obc is an open-source printed circuit board by OSUSat, from the OSUSat/cubesat repository on GitHub, published under the MIT licence. It is a 4-layer board of 80 × 80 mm with 151 parts on 194 nets, routed with 1,011 tracks and 940 vias.
It is built around the STM32H743ZGT6, SN65HVD230D and TPS564242DRL, with the LM66100DCK, AMS1117-3.3 and FM24CL16B-G among its other parts. Its parts include 48 capacitors, 37 resistors, 22 diodes, 15 ICs and 9 connectors. It belongs with the STM32 boards of this library.
Main components
12STM32H743ZGT6
LQFP-144(20x20)-40℃~+85℃ 1.62V~3.6V 114 12bit 16bit 1MB 1MB 32 Bit 480MHz ARM Cortex-M7 Built-in FLASH LQFP-144(20x20) Microcontrollers (MCU/MPU/SOC) ROHSSTMicroelectronicsMicrocontrollers (MCU/MPU/SOC)SN65HVD230D
SOIC-8-40℃~+85℃ 1 17mA 1Mbps 370uA 3V~3.6V CAN Transceiver Low-power mode、Wake-up function、ESD protection、Thermal shutdown protection、Bus fault protection、Hot-swap protection SOIC-8 CAN Transceivers ROHSTexas InstrumentsCAN TransceiversTPS564242DRL
SOT-563-40℃~+125℃@(TJ) 1 1.2MHz 120uA 3V~16V 4A 600mV~7V Adjustable Buck Built-in Overcurrent Protection、Light load efficient mode、Cycle-by-cycle current limiting Step-down type Yes SOT-563 DC-DC Converters ROHSTexas InstrumentsDC-DC ConvertersLM66100DCK
SC-70-6-40℃~+125℃ 1 1.5A 1.5V~5.5V 150nA 95mΩ Integrated FET Reverse current blocking、Reverse polarity protection、With enable SC-70-6 ORing Controllers ROHSTexas InstrumentsPower Distribution SwitchesAMS1117-3.3
SOT-223-40℃~+125℃ 0.003%Vout 1 1.1V@(800mA) 15V 1A 3.3V 5mA 72dB@(120Hz) Fixed Over Current Protection、Short Circuit Protection、Thermal shutdown Positive SOT-223 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSAdvanced Monolithic SystemsVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsFM24CL16B-G
SOIC-8-40℃~+85℃ 100,000,000,000,000 Cycles 151 Years 16Kbit 1MHz 2.7V~3.65V 300uA 6uA I2C SOIC-8 FRAM ROHSInfineon TechnologiesFRAMISM6HG256X
LGA-14L-40℃~+105℃ 1.71V~3.6V 2.9uA 4.5KB IMU (accelerometer + gyroscope) SPI、I2C X,Y,Z X,Y,Z ±256g ±4000dps LGA-14L Accelerometers ROHSSTMicroelectronicsAccelerometersMAX-M10S
LCC-18_10.1X9.7LCC-18_10.1X9.7 New Arrivals ROHSu-bloxUncategorisedMAX6369KA+T
SOT-23-8-40℃~+125℃@(Ta) 1 100ms 2.5V~5.5V 8uA Active Low No Open Drain Watchdog Timer Yes SOT-23-8 Supervisor and Reset ICs ROHSMaxim Integrated (Analog Devices)Supervisor And Reset ICsRFM96W-433S2
LCC-16_16X16mmLCC-16_16X16mm New Arrivals ROHSHOPE MICROELECTRONICSUncategorisedUSBLC6-2P6
SOT-666-6-40℃~+125℃ 150nA 17V 2 3.5pF 5.25V 5A@8/20us 6V ESD IEC 61000-4-2 Unidirectional SOT-666-6 ESD and Surge Protection (TVS/ESD) ROHSSTMicroelectronicsESD And Surge Protection (TVS/ESD)1N5819WS
SOD-3231 Independent 1A 25A 40V 500uA@40V 600mV@1A SOD-323 Schottky Diodes ROHSGuangdong HottechSchottky Diodes
README
README.mdOregon State University (OSU) AIAA OSUSat/SCRT Climate Science CubeSat
Welcome to the central repository for the OSUSat Climate Science CubeSat project. This repository contains the hardware designs, firmware, and documentation for the sub-systems comprising the satellite.
Mission Context & Goals
The OSUSat Climate Science CubeSat is a low-Earth orbit (LEO) satellite designed to capture high-resolution imagery and scientific data for climate science research.
Mission Objectives
- Earth Observations: Capture multispectral or high-resolution imagery using a dual-camera payload to study surface health, atmospheric conditions, cloud formations.
- Reliable Power Delivery (EPS): Harvest solar power from 6 body-mounted solar panels, manage charge for 4x 18650 Li-ion batteries, and distribute and regulate power rails to prevent overcurrent/overvoltage events.
- Command & Telemetry (OBC): Orchestrate system operations, manage communication buses (CANBus, UART, I2C, SPI), process ground commands, and monitor satellite health.
System Architecture
The satellite is divided into five primary subsystems interconnected via a shared backplane connector (exposing power rails and UART/CAN control buses):
graph TD
Solar[Solar Panels & Batteries] --> EPS[Electrical Power System - EPS]
EPS -->|Power| OBC[On-Board Computer - OBC]
EPS -->|Power| Payload[Science Camera Payload]
EPS -->|Power| ADCS[Attitude Determination & Control - ADCS]
EPS -->|Power| Comms[UHF Communications]
OBC <-->|Control Bus| EPS
OBC <-->|Control Bus| Payload
OBC <-->|Control Bus| ADCS
OBC <-->|Control Bus| Comms
Comms <-->|Radio Link| Ground[Ground Station]1. Electrical Power System (EPS)
- Microcontroller: NXP S32K3 Series / STM32L496xx (ARM Cortex-M4)
- Responsibilities:
- Solar energy harvesting with Maximum Power Point Tracking (MPPT).
- Battery charge/discharge management (2 independent packs of 2x 18650 cells).
- Voltage regulation (3.3V & 5V rails) with software-controllable load switches.
- Fast hardware-level and software-level overcurrent protection.
- Hardware watchdog monitoring.
- Broad mission context management using the MCU
2. On-Board Computer (OBC)
- Microcontroller: Main MCU + STM32H743xx (ARM Cortex-M7)
- Responsibilities:
- Master command parsing and state management.
- Health heartbeats and telemetry collection.
- Orbital calculations and scheduling payload imaging windows.
- Ground station radio communication interface.
3. Payload
- Processor: Raspberry Pi Compute Module 4 (CM4)
- Responsibilities:
- High-speed dual-camera scientific imaging.
- Actuator/motor driver control (e.g., lens shutters, filter wheels) (V1 Only).
- Image compression and storage before downlink.
4. Attitude Determination and Control System (ADCS)
- Responsibilities: Detumbling the spacecraft, aligning the imaging payload to nadir pointing, and tracking target orientations.
5. UHF Communications (Comms)
- Responsibilities: Uplinking commands and telemetry requests from ground stations, and downlinking collected science data and telemetry beacons.
Repository Structure
The project uses a versioned directory structure separating hardware and firmware iterations:
.
├── .github/ # GitHub Workflows & Issue/PR Templates
│ └── workflows/
│ ├── build_and_docs.yml # CI/CD action defining the pipeline
│ └── build_and_test.sh # Dynamic build script runner
│
├── adcs/ # Attitude Determination and Control System
│ ├── v1/
│ └── v2/
│
├── eps/ # Electrical Power System Subsystem
│ ├── v1/ # Version 1 (Prototype Model)
│ │ ├── firmware/ # STM32L4 firmware (CMake, CUnit tests, mocks)
│ │ ├── hardware/ # KiCad schematic, layout, symbols, & footprints
│ │ └── documentation/ # Doxygen, Sphinx configuration & spec files
│ ├── v2/ # Version 2 (Placeholder for v2 development)
│ └── documentation/ # Bootflows, subsystem specifications, & kickoff info
│
├── obc/ # On-Board Computer Subsystem
│ ├── v1/ # Version 1 (Prototype Model)
│ │ ├── firmware/ # STM32H7 firmware (CMake)
│ │ ├── hardware/ # KiCad schematic and layout
│ │ └── tests/ # Pico-based LoRa packet transmission test
│ ├── v2/ # Version 2 (Placeholder for v2 development)Getting Started & Building
1. Prerequisite Toolchains
Ensure you have the following installed on your host system:
- ARM Cross Compiler:
gcc-arm-none-eabi - Build System Tools:
cmake,make,g++ - Documentation Generators:
doxygen, Python 3 +sphinx
2. Fetching Submodules
This repository utilizes submodules (such as osusat/core and osusat/messaging). Clone with submodules or initialize them:
git submodule update --init --recursive3. Hardware Development & KiCad Templates
To create new expansion / daughterboard hardware designs in KiCad, symlink the shared template directory to your local KiCad user template path:
- Linux:
bash mkdir -p ~/.local/share/kicad/10.0/template ln -sf /path/to/cubesat/repo/shared/kicad/templates/test_board ~/.local/share/kicad/10.0/template/test_board - Windows (PowerShell):
powershell New-Item -ItemType Directory -Force -Path "$env:APPDATA\kicad\10.0\template" New-Item -ItemType SymbolicLink -Path "$env:APPDATA\kicad\10.0\template\test_board" -Target "C:\path\to\cubesat\repo\shared\kicad\templates\test_board"
Once symlinked, open KiCad, click File → New Project from Template..., select the User Templates tab, and choose OSUSat Backplane Test Board Template.
For full manual setup options and details, see shared/kicad/README.md.
4. Compilation Guide
Building for the ARM Target (e.g., EPS v1)
To build the firmware binaries to flash onto the MCU:
cd eps/v1/firmware
cmake -B build_arm -S . -DCMAKE_TOOLCHAIN_FILE=arm-none-eabi-toolchain.cmake
cmake --build build_armOutputs: .elf, .hex, and .bin files will be generated under build_arm/.
Building Host Tests / Hardware-in-the-Loop (HITL) Mocks
To build and execute unit tests on your local machine:
cd eps/v1/firmware
cmake -B build_hitl -S . -DTARGET_ARCH=HOST -DBUILD_HITL=ON
cmake --build build_hitl
cd build_hitl && ctest --output-on-failureCI/CD Pipeline
The repository uses a generalized GitHub Actions workflow:
- Scope-Based Execution: Uses git diffs to detect which subsystem version has been modified (e.g.
eps/v1/vsobc/v1/) and builds only the affected firmware. - Continuous Integration: Runs host-based CTests automatically to verify changes.
- Documentation Deployments: Generates Doxygen API listings and Sphinx documentation on successful builds. Pull Requests automatically receive a comment with links to Pages-hosted previews of the documentation.
Quality Assurance & Contributions
Before submitting a Pull Request, contributors must follow the project's QA procedures found in /documentation:
- Issue Checkout: Before work or contributions begin, ensure your changes are encapsulated by an issue in the GitHub project
- Design Guidelines: For any and all changes, follow the design guidelines.
- Design Reviews: Complete the Schematic Review Checklist and Layout Review Checklist checklists before fabricating PCBs.
- Firmware Guidelines: Adhere to the HITL Guidelines and Keeping the HAL Policy Free design rules.
- Acceptance Tests: All hardware deliverables require a formal ATP (Acceptance Test Procedure).
Parts
151| Qty | Value | Footprint | References |
|---|---|---|---|
| 23 | 100nF | Capacitor_SMD:C_0402_1005Metric | C1, C2, C3, C4, C10, C11, C15, C23, C24, C25, C26, C31, C32, C33, C34, C36 +7 |
| 16 | D_Zener | Diode_SMD:D_SOD-882 | D6, D7, D8, D9, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21 |
| 10 | 10k | Resistor_SMD:R_0402_1005Metric | R2, R8, R9, R10, R11, R14, R15, R16, R19, R21 |
| 8 | 0 | Resistor_SMD:R_0402_1005Metric | R26, R27, R28, R29, R30, R31, R32, R33 |
| 8 | 10uF | Capacitor_SMD:C_0603_1608Metric | C22, C27, C28, C30, C40, C41, C44, C45 |
| 8 | 51k | Resistor_SMD:R_0402_1005Metric | R1, R3, R4, R5, R6, R17, R18, R20 |
| 7 | 22u | Capacitor_SMD:C_0603_1608Metric | C29, C38, C39, C43, C47, C48, C49 |
| 4 | MountingHole | MountingHole:MountingHole_3.2mm_M3 | H1, H2, H3, H4 |
| 3 | 1k | Resistor_SMD:R_0402_1005Metric | R34, R35, R36 |
| 2 | 1.5uH | Inductor_SMD:L_Vishay_IHLP-2020 | L2, L3 |
| 2 | 12pF | Capacitor_SMD:C_0402_1005Metric | C17, C18 |
| 2 | 15pF | Capacitor_SMD:C_0402_1005Metric | C19, C20 |
| 2 | 1uF | Capacitor_SMD:C_0402_1005Metric | C16, C35 |
| 2 | 2.2uF | Capacitor_SMD:C_0402_1005Metric | C13, C14 |
| 2 | 30k | Resistor_SMD:R_0603_1608Metric | R23, R25 |
| 2 | 5.1k | Resistor_SMD:R_0402_1005Metric | R7, R12 |
| 2 | Conn_Coaxial | Connector_Coaxial:U.FL_Hirose_U.FL-R-SMT-1_Vertical | J3, J5 |
| 2 | LM66100DCK | Package_TO_SOT_SMD:SOT-363_SC-70-6 | U10, U11 |
| 2 | SN65HVD230 | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U7, U8 |
| 2 | TPS564242 | Package_TO_SOT_SMD:SOT-563 | U14, U15 |
| 1 | 10 | Resistor_SMD:R_1206_3216Metric | R13 |
| 1 | 10nF | Capacitor_SMD:C_0402_1005Metric | C12 |
| 1 | 120k | Resistor_SMD:R_0603_1608Metric | R22 |
| 1 | 15k | Resistor_SMD:R_0402_1005Metric | R37 |
| 1 | 1N5819WS | Diode_SMD:D_SOD-323 | D3 |
| 1 | 220k | Resistor_SMD:R_0603_1608Metric | R24 |
| 1 | 25 MHz | Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mm | Y1 |
| 1 | 27nH | Inductor_SMD:L_0402_1005Metric | L1 |
| 1 | 32.768 kHz | Crystal:Crystal_SMD_3215-2Pin_3.2x1.5mm | Y2 |
| 1 | 4.7uF | Capacitor_SMD:C_0402_1005Metric | C21 |
| 1 | 600R | Inductor_SMD:L_0603_1608Metric | FB1 |
| 1 | AMS1117-3.3 | Package_TO_SOT_SMD:SOT-223-3_TabPin2 | U9 |
| 1 | AO3400A | Package_TO_SOT_SMD:SOT-23 | Q2 |
| 1 | AO3401A | Package_TO_SOT_SMD:SOT-23 | Q1 |
| 1 | CR2032 | Battery:BatteryHolder_Keystone_3002_1x2032 | BT1 |
| 1 | Conn_01x03 | Connector_JST:JST_PH_S3B-PH-K_1x03_P2.00mm_Horizontal | J9 |
| 1 | Conn_02x02_Odd_Even | Connector_PinHeader_2.54mm:PinHeader_2x02_P2.54mm_Vertical | J6 |
| 1 | Conn_ARM_JTAG_SWD_10 | Connector_PinHeader_1.27mm:PinHeader_2x05_P1.27mm_Vertical_SMD | J1 |
| 1 | D_TVS | Diode_SMD:D_SOD-882 | D5 |
| 1 | ERF8-020-09.0-L-DV-TR | Connector_Samtec_EdgeRate:Samtec_ERF8-020-XX.X-DV_2x20_P0.8mm_Socket | J11 |
| 1 | FM24CL16B | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U5 |
| 1 | Green | LED_SMD:LED_0805_2012Metric | D4 |
| 1 | ISM6HG256X | Package_LGA:LGA-14_3x2.5mm_P0.5mm_LayoutBorder3x4y | U13 |
| 1 | Jumper | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | JP1 |
| 1 | MAX-M10S | RF_GPS:ublox_MAX | U4 |
| 1 | MAX6369 | Package_TO_SOT_SMD:SOT-23-8 | U3 |
| 1 | MS5607-02BA | Package_LGA:LGA-8_3x5mm_P1.25mm | U6 |
| 1 | Micro_SD_Card | Connector_Card:microSD_HC_Molex_47219-2001 | J2 |
| 1 | RFM96W-433S2 | RF_Module:HOPERF_RFM9XW_SMD | U2 |
| 1 | Red | LED_SMD:LED_0805_2012Metric | D2 |
| 1 | SI7129DN-T1-GE3 | Package_SO:Vishay_PowerPAK_1212-8_Single | Q3 |
| 1 | STM32H743ZGT6 | Package_QFP:LQFP-144_20x20mm_P0.5mm | U1 |
| 1 | SW_Push | Button_Switch_SMD:SW_SPST_TS-1088-xR020 | SW2 |
| 1 | SW_SPDT | Button_Switch_SMD:SW_SPDT_Shouhan_MSK12C02 | SW1 |
| 1 | USBLC6-2P6 | Package_TO_SOT_SMD:SOT-666 | U12 |
| 1 | USB_C_Receptacle_USB2.0_16P | Connector_USB:USB_C_Receptacle_G-Switch_GT-USB-7010ASV | J4 |
| 1 | White | LED_SMD:LED_0805_2012Metric | D1 |
| 1 | Yellow | LED_SMD:LED_0805_2012Metric | D22 |
| 1 | ~ | Connector_Samtec_EdgeRate:Samtec_ERM8-020-XX.X-DV_2x20_P0.8mm_Terminal | J10 |
The 148 most common of 151 parts.
Questions
How big is the Obc PCB?
It measures 80 × 80 mm and has 4 copper layers, 1.6 mm thick.
What parts does the Obc use?
151 parts, built around the STM32H743ZGT6, SN65HVD230D, TPS564242DRL and LM66100DCK. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the Obc KiCad files?
From the OSUSat/cubesat repository on GitHub, at the commit this page was made from: the board is obc/v1/hardware/obc.kicad_pcb and its schematic eps/v1/battery_contact_l/battery_contact.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Obc design in my own project?
Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).
More from OSUSat/cubesat
6- 6 layers80 × 80 mm

- 4 layers80 × 80 mm

- 2 layers73 × 28 mm

Battery contact panel
OSUSat/cubesat
Open Source Earth Imaging Satellite Hardware + Firmware
34 parts8MIT - 2 layers35 × 28 mm

- 2 layers35 × 28 mm

- 4 layers12.6 × 17 mm

Similar boards
- 4 layers60 × 150 mm

HAL-1-HW
liquid-rocketry-illinois/HAL-1-HW
Hardware designs for HAL-1, including EDA files, datasheets, AV Bay CAD files, and other relevant files for final design.
114 parts - 4 layers66 × 42 mm

- 4 layers80 × 80 mm

BLDC Version1 1 0
DJAY101/Dynamiq_BLDC_Controller
Bringing brushless motor control to the masses
125 partsGPL-3.0 - 2 layers40 × 60 mm

Joint controller board rev d logic
aliahumanoid/alia-humanoid-core
Humanoid research project (Phase 0): firmware, host software, STL files and electronics for tendon-driven joints inside real human proportions. GPLv3 software, CC BY-NC-ND hardware files.
43 parts12GPL-3.0 - 4 layers90.2 × 95.9 mm

- 4 layers

- 10 layers

Robohub prototype v1 ddr chip2
jackfrye/robohub_prototype_v1
ATSAMA based board for command and control of future robotics systems
102 parts - 4 layers75 × 38 mm
