On-board computer and data handling (OBC/CDH)

Also known as OBC, C&DH, CDH, Flight computer, On-board computer

Runs the flight software, executes telecommands, builds telemetry, stores data and manages the operating modes. Small satellites use commercial microcontrollers protected against radiation effects by software and hardware measures.

Document
SQ-SS-002
Updated
20 Oct 2026
Reading time
6 min
In this tab

Definition#

The on-board computer () and its command and data handling (C&DH) functions form the nervous system of a spacecraft. They validate and execute telecommands from the ground, collect and frame telemetry from the subsystems, store payload data, keep time and manage the operating modes[1]. In small satellites most of these functions run on one microcontroller on one board. Heavy computation such as image processing moves to a separate payload computer, an FPGA or, increasingly, a system-on-chip (SoC)[2].

Architecture#

In a centralized architecture one OBC drives every subsystem directly. In a distributed one each subsystem has its own microcontroller, and the OBC talks to them over a data bus, which makes it easier to isolate a fault. I²C, SPI, UART or RS-485 and CAN are the common on-board buses of small satellites; larger systems use high-speed serial networks such as SpaceWire[2]. The interface proposed for PocketQubes standardizes an RS-485 bus with a few unregulated power lines[3].

flowchart TB
  subgraph OBC["Flight computer"]
    direction LR
    WDT["Independent watchdog"] --> MCU["MCU and RTOS"]
    MCU --- MEM["FRAM and Flash"]
  end
  OBC <-->|"I²C, CAN"| EPS["EPS"]
  OBC <-->|"UART"| TRX["Transceiver"]
  OBC <-->|"I²C, SPI"| ADCS["ADCS"]
  OBC <-->|"SPI"| PL["Payload"]

Operating modes#

One of the most important decisions of the flight software is which mode the spacecraft is in. After separation it waits out the launch-provider timer, deploys its antennas and starts a beacon. It drops into safe mode when the battery voltage falls, after a watchdog reset or when no ground contact has been made for a long time: payloads switch off, and only the beacon, telecommand reception and, if needed, keep running.

stateDiagram-v2
  state "Start-up" as Boot
  state "Safe mode" as Safe
  state "Nominal" as Nominal
  state "Payload operations" as Payload
  [*] --> Boot : separation
  Boot --> Safe : deployments done
  Safe --> Nominal : ground command, battery sufficient
  Nominal --> Payload : scheduled task
  Payload --> Nominal : task complete
  Nominal --> Safe : low battery or reset
  Payload --> Safe : fault

References

  1. [1]Wertz, J. R., Everett, D. F., & Puschell, J. J. (Eds.). (2011). Space Mission Engineering: The New SMAD. Microcosm Press.
  2. [2]NASA Small Spacecraft Systems Virtual Institute. (2026). Small Spacecraft Avionics. State-of-the-Art of Small Spacecraft Technology (2026 edition), Chapter 8. NASA Ames Research Center.nasa.gov(accessed 20 October 2026)
  3. [3]Bouwmeester, J. (2018). PQ9 and CS14 electrical and mechanical subsystem interface standard for PocketQubes and CubeSats, Version 1.0. DataverseNL.doi:10.34894/6MVBCZ
  4. [4]nadir lab. (2026). PocketQube picosatellites: A review of standards, mission trends and miniaturization constraints, with lessons learned from Grizu-263A, Türkiye’s first PocketQube [Preprint]. nadir lab.Read on nadir lab.
  5. [5]Kaitai Project. (n.d.). Kaitai Struct: a declarative language for describing binary data structures.kaitai.io(accessed 20 October 2026)
  6. [6]Libre Space Foundation. (2026). SatNOGS DB: Grizu-263A (NORAD 51025).db.satnogs.org(accessed 20 October 2026)

Cite this SatWiki entry

@misc{nadirlab2026obccdh,
  author       = {{nadir lab.}},
  title        = {{On-board computer and data handling (OBC/CDH)}},
  year         = {2026},
  month        = oct,
  howpublished = {nadir lab. SatWiki SQ-SS-002 (Rev. 3)},
  url          = {https://nadirlab.space/en/wiki/obc-cdh/}
}