

Payload
Open Source Earth Imaging Satellite Hardware + Firmware
- Size
- 80 × 80 mm
- Copper layers
- 4
- Thickness
- 1.6 mm
- Parts
- 60
- Nets
- 211
- Pads
- 551
- Tracks, vias
- 808, 641
- Pours
- 3
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 23 Aug 2025
- Updated
- 8 Nov 2026
Overview
Payload 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 60 parts on 211 nets, routed with 808 tracks and 641 vias.
It is built around the SN65HVD230D, 74LVC1G07 and DRV8846RGE, with the ARJM11C7-502-AB-EW2 among its other parts. Its parts include 16 capacitors, 15 resistors, 7 ICs, 7 connectors and 6 diodes. It belongs with the Raspberry Pi (Linux) boards of this library.
Main components
4SN65HVD230D
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 Transceivers74LVC1G07
SOT-353-40℃~+105℃ 1 1 1.65V~5.5V 1.6ns@5.5V,50pF 24mA 4uA 74LVC Open-drain Power-off isolation、Level shifting Unidirectional SOT-353 Buffers, Drivers, Receivers, Transceivers ROHSWuxi I-core ElecBuffers, Drivers, Receivers, TransceiversDRV8846RGE
VQFN-24-EP(4x4)-40℃~+85℃ 1.4A 2 32 350mΩ 4V~18V Bipolar Driver Yes VQFN-24-EP(4x4) Stepper Motor Driver ROHSTexas InstrumentsStepper Motor DriverARJM11C7-502-AB-EW2
插件-40℃~+85℃ 1 Gold Right Angle Shielded With LED 插件 Ethernet Connectors / Modular Connectors (RJ45 RJ11) ROHSAbraconEthernet Connectors / Modular Connectors (RJ45 RJ11)
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
60| Qty | Value | Footprint | References |
|---|---|---|---|
| 9 | 100n | Capacitor_SMD:C_0402_1005Metric | C1, C4, C9, C10, C11, C12, C13, C15, C16 |
| 4 | , , , | ||
| 4 | 1k | Resistor_SMD:R_0402_1005Metric | R1, R2, R10, R11 |
| 4 | D_Zener | Diode_SMD:D_SOD-323 | D3, D4, D5, D6 |
| 4 | TBD | Capacitor_SMD:C_0402_1005Metric | C5, C6, C7, C8 |
| 3 | 5.1k | Resistor_SMD:R_0402_1005Metric | R3, R4, R7 |
| 2 | 1 | Resistor_SMD:R_1206_3216Metric | R5, R6 |
| 2 | 120 | Resistor_SMD:R_0402_1005Metric | R12, R13 |
| 2 | 20 MHz | Crystal:Crystal_SMD_SeikoEpson_TSX3225-4Pin_3.2x2.5mm | Y1, Y2 |
| 2 | 51k | Resistor_SMD:R_0402_1005Metric | R17, R18 |
| 2 | LED | LED_SMD:LED_0805_2012Metric | D1, D2 |
| 2 | MCP2517FD-xJHA | Package_DFN_QFN:DFN-14-1EP_3x4.5mm_P0.65mm_EP1.65x4.25mm | U2, U5 |
| 2 | SN65HVD230 | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U4, U7 |
| 1 | 10u | Capacitor_SMD:C_0402_1005Metric | C2 |
| 1 | 12k | Resistor_SMD:R_0402_1005Metric | R8 |
| 1 | 1u | Capacitor_SMD:C_0402_1005Metric | C14 |
| 1 | 2.2u | Capacitor_SMD:C_0402_1005Metric | C3 |
| 1 | 2k | Resistor_SMD:R_0402_1005Metric | R9 |
| 1 | 74LVC1G07 | Package_TO_SOT_SMD:SOT-23-5 | U6 |
| 1 | ARJM11C7-502-AB | payload:ARJM11C7-502-LEDs | J2 |
| 1 | CM4 | payload:Module_Raspberry_Pi_CM4 | U1 |
| 1 | Conn_01x05 | Connector_JST:JST_XH_B5B-XH-AM_1x05_P2.50mm_Vertical | J5 |
| 1 | Conn_02x04_Odd_Even | Connector_PinHeader_2.54mm:PinHeader_2x04_P2.54mm_Vertical | J4 |
| 1 | Conn_02x20_Odd_Even | Connector_Samtec_EdgeRate:Samtec_ERF8-020-XX.X-DV_2x20_P0.8mm_Socket | J10 |
| 1 | DRV8846 | Package_DFN_QFN:VQFN-24-1EP_4x4mm_P0.5mm_EP2.45x2.45mm_ThermalVias | U9 |
| 1 | Jumper_2_Open | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | JP1 |
| 1 | SW_Push | Button_Switch_SMD:SW_SPST_PTS810 | SW1 |
| 1 | USB_C_Receptacle_USB2.0_16P | Connector_USB:USB_C_Receptacle_GCT_USB4110 | J3 |
| 1 | ~ | Connector_FFC-FPC:Amphenol_F32Q-1A7x1-11022_1x22-1MP_P0.5mm_Horizontal | J1 |
| 1 | ~ | Connector_FFC-FPC:Amphenol_F32R-1A7x1-11022_1x22-1MP_P0.5mm_Horizontal | J7 |
The 59 most common of 60 parts.
Questions
How big is the Payload PCB?
It measures 80 × 80 mm and has 4 copper layers, 1.6 mm thick.
What parts does the Payload use?
60 parts, built around the SN65HVD230D, 74LVC1G07, DRV8846RGE and ARJM11C7-502-AB-EW2. 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 Payload KiCad files?
From the OSUSat/cubesat repository on GitHub, at the commit this page was made from: the board is payload/v1/hardware/payload.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 Payload 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 layers105 × 120 mm

Tvac
thanasipantazides/tate-thermovac
Readout board and code for the Tate 220 thermovacuum chamber
154 parts - 4 layers85 × 85 mm

- 4 layers51.4 × 61 mm

- 6 layers121 × 83 mm

- 4 layers120 × 120 mm

Yellow
NabuCasa/yellow
Home Assistant Yellow - hardware for Home Assistant which grows with your needs.
322 parts116 - 4 layers38 × 38 mm

- 4 layers72.6 × 170 mm

OpenJBOD RP2040
OpenJBOD/rp2040
This repository contains the hardware design files OpenJBOD RP2040 Baseboard.
129 parts87CERN-OHL-P-2.0 - 4 layers66 × 90 mm
