Skip to main content

OreSat mission configurations

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

oresat_configs-1.1.3.tar.gz (130.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

oresat_configs-1.1.3-py3-none-any.whl (86.7 kB view details)

Uploaded Python 3

File details

Details for the file oresat_configs-1.1.3.tar.gz.

File metadata

  • Download URL: oresat_configs-1.1.3.tar.gz
  • Upload date:
  • Size: 130.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for oresat_configs-1.1.3.tar.gz
Algorithm Hash digest
SHA256 4f9f4e7581f87da8c129f229a221ac912153c7d7f3a19ed1137a862e7f6b459e
MD5 d5ee330aa036d4c03671eb8d88c1a24b
BLAKE2b-256 6ea401401c50bd910739e2a08e656883b77ce70fab167b4de86673d97cda6ec0

See more details on using hashes here.

Provenance

The following attestation bundles were made for oresat_configs-1.1.3.tar.gz:

Publisher: pypi.yaml on oresat/oresat-configs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oresat_configs-1.1.3-py3-none-any.whl.

File metadata

  • Download URL: oresat_configs-1.1.3-py3-none-any.whl
  • Upload date:
  • Size: 86.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for oresat_configs-1.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 e147a6b32b51227bae9e8886665231bab7ba04b7c8285aeb9828a5278cb44995
MD5 97db1295d86cc497d202d8aa533be9b0
BLAKE2b-256 807f67bf0458966a79dbd2c253e9410181da0d87f9216c1e228714e9b12f6247

See more details on using hashes here.

Provenance

The following attestation bundles were made for oresat_configs-1.1.3-py3-none-any.whl:

Publisher: pypi.yaml on oresat/oresat-configs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page