Skip to main content

OreSat GPS Software

OreSat GPS software runs the OreSat GPS card and publishes navigation data to the satellite over CANopen. It is designed to hide receiver-specific details and provide a consistent interface for the rest of the flight software.

This app targets custom OreSat GPS hardware (oresat-gps-hardware) and supports two reception paths on the card:

  • SkyTraq Orion B16 (current operational path)
  • MAX2771 SDR path (hardware present; software path not yet implemented in this repo)

The CANopen-facing interface provides GPS-derived data such as position, velocity, fix quality, satellites-in-view, and time fields used by other systems. During development, you can inspect CAN traffic with tools like candump and interact with objects through standard CANopen tooling.

GPS is also used as a high-quality time reference. When a valid fix is available, the app can synchronize system time so other spacecraft services share a common clock base for telemetry correlation, event ordering, and time-sensitive control loops.

In the wider satellite stack, this data is consumed by components like ADCS and mission operations pipelines for state estimation, timeline reconstruction, and post-pass analysis.

Like other OreSat apps, this project is built on OLAF. When running locally, OLAF's debug interface is available at http://localhost:8000, including a GPS page at http://localhost:8000/skytraq.

Quick Start

Install dependencies.

pip3 install . --group dev

Make a virtual CAN bus.

sudo ip link add dev vcan0 type vcan
sudo ip link set vcan0 up

Run the GPS app.

python3 -m oresat_gps

Select the CAN bus to use (vcan0, can0, etc) with the -b BUS arg.

Mock hardware by using the -m HARDWARE flag.

  • The -m all flag can be used to mock all hardware (CAN bus is always required).
  • The -m skytraq flag would only mock the skytraq

See other options with -h flag.

A basic Flask-based website for development and integration can be found at http://localhost:8000 when the software is running.

Architecture Notes

Low-level receiver protocol details are intentionally abstracted behind the app interface, but for maintainers:

  • The SkyTraq path is implemented in a userspace driver at oresat_gps/skytraq.py.
  • Host-to-SkyTraq commands use the SkyTraq binary protocol (see AN0037).
  • SkyTraq navigation reports are parsed and mapped into CANopen object dictionary entries.

Metadata

Release files for oresat-gps 1.5.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for oresat-gps 1.5.2
File Size Uploaded
oresat_gps-1.5.2.tar.gz 26.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for oresat-gps 1.5.2
File Interpreter ABI Platform
oresat_gps-1.5.2-py3-none-any.whl Python 3 none any Details

Total release size: 51.7 kB

Release files / oresat_gps-1.5.2.tar.gz

Download URL oresat_gps-1.5.2.tar.gz
Size 26.8 kB
Tags Source
SHA-256 checksum
How to use checksums
509b642017c8c45db21e63821223f2ae66c3435d371971c5163f2c07a86e9393
BLAKE2b-256 checksum
How to use checksums
d02d6366d66d5a342ce7eb927da4a01e0b02a257bf8cf60779c4454c280d5289
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 11, 2026.

Transparency log

Release files / oresat_gps-1.5.2-py3-none-any.whl

Download URL oresat_gps-1.5.2-py3-none-any.whl
Size 24.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
32e2a7c4001a56c6a3327b6df38b7516e09f33f780153aad57af62915db70e0b
BLAKE2b-256 checksum
How to use checksums
1c650016b8dbda60897623be7f41ca2ab54fe23c1fda0e0e3755a92c22af10e3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 11, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.5.2 This release

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page