Skip to main content

OreSat Configs

Firmware/software configurations for OreSat missions.

Includes:

  • A centralize "database" for all OreSat card object dictionaries (OD)
  • Beacon definition for each OreSat mission
  • The C3 F-RAM data definition (object values to be saved to the F-RAM chip)

Having all the OD defined in one place makes it much easier to update OD definitions without having to go to each repo to update each cards OD. Also, the C3 can easily import all the OD definitions to be used for SDO transfers.

How This Works

  • All object dictionaries for a specific OreSat mission are defined by YAML files.
    • All the OD configs are in oresat_configs/base/
    • All the beacon configs (beacon.yaml)are in their mission directories: oresat_configs/oresat<mission_num>/
  • All card specific configs are are named <card_name>.yaml format. They contain all card specific objects and PDOs.
    • NOTE: The cards YAML are similar to CANopen's .eds files; they are for a device type, not a unique device on a CAN network (if you add an object to solar.yaml, all solar cards will have that object).
  • The sw_common.yaml defines all CANopen standard objects, common objects, and common PDOs for all Octavo A8-based cards.
  • The fw_common.yaml defines all CANopen standard objects, common objects, and common PDOs for all STM32-based cards.
  • A standard_object.yaml contains some CANopen standard objects that any <card_name>.yaml or *_common.yaml can flag to include.
  • The beacon.yaml file defines the beacon definition as all the data is pulled strait out the C3's OD, which is mostly build from all other ODs.
  • The c3.yaml file also defines what objects have their values periodically saved to the C3's F-RAM chip.

Setup

For regular users: libyaml should be installed by default on reasonable systems, but it never hurts to make sure.

sudo apt install libyaml-0-2
pip install oresat-configs

For developers:

sudo apt install libyaml-0-2
pip install -e . --group dev

If installing on ARM (e.g. Octavo cards like the C3) special work is needed to ensure that pyyaml uses the libyaml C bindings. The binary wheels from PyPI aren't built with them so we need to install from the source package:

Installing the first time:

sudo apt install libyaml-dev
pip install --no-binary pyyaml oresat-configs

Fixing an already installed pyyaml: (see here if you get "ImportError: pyyaml missing/installed without libyaml bindings.")

sudo apt install libyaml-dev
pip install --force-reinstall --no-cache-dir --no-binary pyyaml pyyaml

Updating a Config

After updating configs for card(s), run the unit tests to validate all the configs.

pytest

If there are no errors, the configs are valid.

Build and install the new version of oresat-configs to build, test, and/or import with. If you have both oresat-configs and the project using it on the same system it can be very useful to install this project as an editable dependency there, then local changes you make here show up immediately.

In the project used for testing:

pip install --editable <path to oresat-configs directory>

Once the change have been tested with firmware/software, open a Pull Request to this repo to get all changes into the next release.

Building a distributable package

$ python -m build

The artifact will be in dist/oresat_configs-*.whl

Metadata

Release files for oresat-configs 1.2.0

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-configs 1.2.0
File Size Uploaded
oresat_configs-1.2.0.tar.gz 131.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for oresat-configs 1.2.0
File Interpreter ABI Platform
oresat_configs-1.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 218.4 kB

Release files / oresat_configs-1.2.0.tar.gz

Download URL oresat_configs-1.2.0.tar.gz
Size 131.3 kB
Tags Source
SHA-256 checksum
How to use checksums
e0275c58feabbe7b980864e4647f0accb9bed7a4a0fd072bbfff2f205d7b7514
BLAKE2b-256 checksum
How to use checksums
191a5356213726c2573b1b3d2ac3c79d090077cf9daec769ef53dd14b0bad618
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 14, 2026.

Transparency log

Release files / oresat_configs-1.2.0-py3-none-any.whl

Download URL oresat_configs-1.2.0-py3-none-any.whl
Size 87.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cbe29529506507a08dd5a7c85b8316d5f862429712b8e440b79307579a2de295
BLAKE2b-256 checksum
How to use checksums
ed4f79419746660dc92d243c64b38c7911920ba62fd3fc67ebe296c4c4148b4a
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 14, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.2.0 This release

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.8.0

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.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