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 the OD configs are in
- All card specific configs are are named
<card_name>.yamlformat. They contain all card specific objects and PDOs.- NOTE: The cards YAML are similar to CANopen's
.edsfiles; they are for a device type, not a unique device on a CAN network (if you add an object tosolar.yaml, all solar cards will have that object).
- NOTE: The cards YAML are similar to CANopen's
- The
sw_common.yamldefines all CANopen standard objects, common objects, and common PDOs for all Octavo A8-based cards. - The
fw_common.yamldefines all CANopen standard objects, common objects, and common PDOs for all STM32-based cards. - A
standard_object.yamlcontains some CANopen standard objects that any<card_name>.yamlor*_common.yamlcan flag to include. - The
beacon.yamlfile 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.yamlfile 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4f9f4e7581f87da8c129f229a221ac912153c7d7f3a19ed1137a862e7f6b459e
|
|
| MD5 |
d5ee330aa036d4c03671eb8d88c1a24b
|
|
| BLAKE2b-256 |
6ea401401c50bd910739e2a08e656883b77ce70fab167b4de86673d97cda6ec0
|
Provenance
The following attestation bundles were made for oresat_configs-1.1.3.tar.gz:
Publisher:
pypi.yaml on oresat/oresat-configs
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
oresat_configs-1.1.3.tar.gz -
Subject digest:
4f9f4e7581f87da8c129f229a221ac912153c7d7f3a19ed1137a862e7f6b459e - Sigstore transparency entry: 1810295655
- Sigstore integration time:
-
Permalink:
oresat/oresat-configs@87a28725efcff55acebcd875a7cec2466d24d45d -
Branch / Tag:
refs/tags/v1.1.3 - Owner: https://github.com/oresat
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yaml@87a28725efcff55acebcd875a7cec2466d24d45d -
Trigger Event:
release
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e147a6b32b51227bae9e8886665231bab7ba04b7c8285aeb9828a5278cb44995
|
|
| MD5 |
97db1295d86cc497d202d8aa533be9b0
|
|
| BLAKE2b-256 |
807f67bf0458966a79dbd2c253e9410181da0d87f9216c1e228714e9b12f6247
|
Provenance
The following attestation bundles were made for oresat_configs-1.1.3-py3-none-any.whl:
Publisher:
pypi.yaml on oresat/oresat-configs
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
oresat_configs-1.1.3-py3-none-any.whl -
Subject digest:
e147a6b32b51227bae9e8886665231bab7ba04b7c8285aeb9828a5278cb44995 - Sigstore transparency entry: 1810295668
- Sigstore integration time:
-
Permalink:
oresat/oresat-configs@87a28725efcff55acebcd875a7cec2466d24d45d -
Branch / Tag:
refs/tags/v1.1.3 - Owner: https://github.com/oresat
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yaml@87a28725efcff55acebcd875a7cec2466d24d45d -
Trigger Event:
release
-
Statement type: