# Where to Find F Prime Documentation: Complete Guide to NASA's Flight Software Framework

> Locate F Prime documentation in the nasa/fprime repository docs directory or visit fprime jpl nasa gov for the web version. Your complete guide to NASA's flight software.

- Repository: [NASA/fprime](https://github.com/nasa/fprime)
- Tags: getting-started
- Published: 2026-07-13

---

**The F Prime documentation is located in the `docs/user-manual/` directory of the nasa/fprime repository, with a rendered web version available at fprime.jpl.nasa.gov.**

The F Prime flight software framework maintains its entire documentation set inside the repository under the `docs/` path. This allows developers to access version-controlled manuals offline while contributing improvements through pull requests. All primary guides, tutorials, and API references are written in markdown and organized into logical sections covering architecture, build systems, and ground operations.

## Repository Documentation Structure

The core documentation resides in `docs/user-manual/` and is divided into functional sections that mirror the framework's architecture.

### Overview and Architecture

The **Overview** section at [`docs/user-manual/overview/01-full-intro.md`](https://github.com/nasa/fprime/blob/main/docs/user-manual/overview/01-full-intro.md) provides the technical introduction to the F Prime ecosystem. This file covers high-level architecture, components, ports, and topologies required to understand flight software design.

### Framework Core Concepts

Detailed **Framework** mechanics are documented in [`docs/user-manual/framework/README.md`](https://github.com/nasa/fprime/blob/main/docs/user-manual/framework/README.md). This section explains state machines, memory management, data products, and ground interface protocols implemented in the F Prime core.

### Build System Configuration

The **CMake** workflow and platform support guides are found in [`docs/user-manual/build-system/README.md`](https://github.com/nasa/fprime/blob/main/docs/user-manual/build-system/README.md). It includes toolchain configuration instructions and platform customization options for cross-compilation targets.

### Design Patterns

Reusable implementation strategies are cataloged in [`docs/user-manual/design-patterns/README.md`](https://github.com/nasa/fprime/blob/main/docs/user-manual/design-patterns/README.md). This covers rate groups, hub patterns, and health checking mechanisms used across flight software components.

### Ground Data System (GDS)

Testing and visualization tools are documented in [`docs/user-manual/gds/gds-dev-guide.md`](https://github.com/nasa/fprime/blob/main/docs/user-manual/gds/gds-dev-guide.md). This guide details the GDS CLI, telemetry dashboards, and integration testing procedures used for hardware-in-the-loop validation.

### Step-by-Step Tutorials

Practical **Tutorials** are located in [`docs/tutorials/README.md`](https://github.com/nasa/fprime/blob/main/docs/tutorials/README.md), including the "Hello World" tutorial, cross-compilation examples, and Docker/Rancher deployment guides. These provide hands-on experience with component development.

### System Design Documents

Reference **SDDs** for core services are stored alongside their implementations. For example, [`Svc/WatchDog/docs/sdd.md`](https://github.com/nasa/fprime/blob/main/Svc/WatchDog/docs/sdd.md) contains the System Design Document for the WatchDog service, with similar files for Version and FileDownlink components.

## Online Documentation Portal

NASA maintains a synchronized web rendering of the manual for convenient browser access. The online versions are kept in lock-step with the repository markdown files.

- **User Manual**: https://fprime.jpl.nasa.gov/latest/docs/user-manual/
- **Hello World Tutorial**: https://fprime.jpl.nasa.gov/latest/tutorials-hello-world/docs/hello-world/

You can choose between the offline markdown files in the repository or the web-hosted version based on your connectivity and search preferences.

## Accessing Documentation Locally

Query and convert the documentation using command-line tools or Python scripts for offline reading.

### Opening Files from the Terminal

Navigate to the repository root and open specific markdown files directly in your default viewer:

```bash

# Change to the repository root

cd /path/to/fprime

# Open the Architecture overview

xdg-open docs/user-manual/overview/02-fprime-architecture.md

```

### Generating a Documentation Index

Use this Python script to print a table of contents of all manual sections:

```python
import pathlib

def list_manual_sections():
    root = pathlib.Path("docs/user-manual")
    for md in sorted(root.rglob("*.md")):
        with md.open() as f:
            first_line = next(f).strip()
            heading = first_line.lstrip('# ').strip()

            print(f"{md.relative_to(root)} – {heading}")

if __name__ == "__main__":
    list_manual_sections()

```

### Converting to HTML

Generate a single searchable HTML file using `pandoc`:

```bash

# Install pandoc if needed

pip install pandoc

# Convert the entire user manual to HTML

pandoc -s -o fprime_manual.html \
    $(git ls-files 'docs/user-manual/**/*.md')

```

## Key Documentation Files

- [`README.md`](https://github.com/nasa/fprime/blob/main/README.md) – High-level project description and getting-started instructions.
- [`docs/user-manual/index.md`](https://github.com/nasa/fprime/blob/main/docs/user-manual/index.md) – Entry point to the user manual with navigation structure.
- [`docs/user-manual/overview/02-fprime-architecture.md`](https://github.com/nasa/fprime/blob/main/docs/user-manual/overview/02-fprime-architecture.md) – Core architectural overview of ports, components, and topologies.
- [`docs/user-manual/framework/README.md`](https://github.com/nasa/fprime/blob/main/docs/user-manual/framework/README.md) – Framework concepts including state machines and memory management.
- [`docs/user-manual/build-system/README.md`](https://github.com/nasa/fprime/blob/main/docs/user-manual/build-system/README.md) – CMake build system guide and customization options.
- [`docs/tutorials/README.md`](https://github.com/nasa/fprime/blob/main/docs/tutorials/README.md) – Collection of step-by-step tutorials including the "Hello World" guide.
- [`docs/user-manual/gds/gds-dev-guide.md`](https://github.com/nasa/fprime/blob/main/docs/user-manual/gds/gds-dev-guide.md) – Developer guide for Ground Data System tooling.

## Summary

- **F Prime documentation** is stored in `docs/user-manual/` within the nasa/fprime repository.
- The manual is organized into **Overview**, **Framework**, **Build System**, **Design Patterns**, **GDS**, and **Tutorials** sections.
- Access the rendered web version at **fprime.jpl.nasa.gov** or browse markdown files directly in the repository.
- Use `pandoc` or Python scripts to generate offline documentation catalogs from the source markdown.

## Frequently Asked Questions

### Where is the F Prime documentation source code stored?

The documentation source is maintained in the `docs/` directory of the nasa/fprime repository, specifically under `docs/user-manual/`. These markdown files are tracked in version control, allowing you to read them offline or submit improvements via pull requests.

### How do I access the F Prime documentation without internet access?

Clone the repository and navigate to `docs/user-manual/` to read the markdown files directly. You can also generate a local HTML copy using the `pandoc` command to convert the markdown files into a single browsable document.

### What is the difference between the repository documentation and the website?

The content is identical. The repository contains the markdown source files that are automatically rendered to HTML at fprime.jpl.nasa.gov. The website provides enhanced navigation and search capabilities, while the repository files allow offline access and version-specific documentation.

### Which documentation should I read first as a new F Prime developer?

Start with [`docs/user-manual/overview/01-full-intro.md`](https://github.com/nasa/fprime/blob/main/docs/user-manual/overview/01-full-intro.md) for architectural concepts, then proceed to [`docs/tutorials/README.md`](https://github.com/nasa/fprime/blob/main/docs/tutorials/README.md) for the "Hello World" tutorial. The [`docs/user-manual/framework/README.md`](https://github.com/nasa/fprime/blob/main/docs/user-manual/framework/README.md) file provides essential background on component implementation and state machines.