Development¶
This guide covers building ORION from source on a development machine (macOS or Linux x86_64). For deploying to a Raspberry Pi 5, see Deployment.
Prerequisites¶
| Dependency | Minimum Version | Purpose |
|---|---|---|
| Python | 3.10+ | F-Prime tooling and ground segment scripts |
| CMake | 3.20+ | Building llama.cpp and the F-Prime project |
| uv | latest | Python environment and dependency management |
| libcurl | any | SimSat HTTP client (NavTelemetry, CameraManager) |
| C++ compiler | C++17 | F-Prime and llama.cpp compilation |
| Git | any | Submodule management |
macOS¶
brew install cmake uv
# Xcode Command Line Tools provides clang and libcurl
xcode-select --install
Ubuntu / Debian¶
sudo apt-get update
sudo apt-get install build-essential cmake libcurl4-openssl-dev libomp-dev python3 python3-venv
# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh
Clone the Repository¶
ORION uses Git submodules for F-Prime and llama.cpp. Always clone with --recursive:
git clone --recursive https://github.com/Saransh-cpp/ORION.git
cd ORION
If you already cloned without --recursive, initialize the submodules manually:
git submodule update --init --recursive
Build llama.cpp¶
The VLM inference engine links against llama.cpp as a static library. Build it before the flight segment:
cd ground_segment/llama.cpp
cmake -B build \
-DBUILD_SHARED_LIBS=OFF \
-DLLAMA_BUILD_TESTS=OFF \
-DLLAMA_BUILD_EXAMPLES=OFF \
-DLLAMA_BUILD_SERVER=OFF
cmake --build build -j$(nproc)
cd ../..
Set Up the Python Environment¶
Create a virtual environment and install the F-Prime Python dependencies:
uv venv
source .venv/bin/activate
uv pip install -r flight_segment/orion/lib/fprime/requirements.txt
Generate and Build the Flight Segment¶
Use F-Prime's build tooling to generate the autocoded sources and compile the binary:
cd flight_segment/orion
fprime-util generate
fprime-util build --all -j$(nproc)
The compiled binary is located at:
flight_segment/orion/build-artifacts/Linux/Orion/bin/Orion # Linux
flight_segment/orion/build-fprime-automatic-native/bin/Orion # varies by platform
Install Ground Segment Dependencies (Optional)¶
If you plan to run the training pipeline or data generation scripts, install the ground segment Python dependencies:
cd ground_segment
uv sync
cd ..
This installs PyTorch, Transformers, PEFT, and other ML dependencies defined in ground_segment/pyproject.toml.
Verify the Build¶
Run the binary with --help or test that it starts:
./flight_segment/orion/build-artifacts/Linux/Orion/bin/Orion --help
Next Steps¶
- Deployment: cross-compile for Raspberry Pi 5 and deploy
- Usage: run a demo session with SimSat and GDS
- Environment Variables: configure paths and endpoints