Skip to content

Commit

Permalink
fix issue with setting hw version from eeprom value
Browse files Browse the repository at this point in the history
  • Loading branch information
ryanpdx committed May 25, 2024
1 parent fbd5ca2 commit 3b4f863
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 16 deletions.
11 changes: 10 additions & 1 deletion olaf/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
from ._internals.updater import Updater, UpdaterState
from .board.adc import Adc
from .board.cpufreq import A8_CPUFREQS, get_cpufreq, get_cpufreq_gov, set_cpufreq, set_cpufreq_gov
from .board.eeprom import Eeprom
from .board.gpio import GPIO_HIGH, GPIO_IN, GPIO_LOW, GPIO_OUT, Gpio, GpioError
from .board.pru import Pru, PruError, PruState
from .canopen.ecss import scet_int_from_time, scet_int_to_time, utc_int_from_time, utc_int_to_time
Expand Down Expand Up @@ -138,8 +139,16 @@ def olaf_setup(name: str, args: Optional[Namespace] = None) -> tuple[Namespace,
if args.disable_flight_mode:
od["flight_mode"].value = False

version = "0.0"
try:
eeprom = Eeprom()
version = f"{eeprom.major}.{eeprom.minor}"
logger.info(f"detected v{version} card")
except (PermissionError, FileNotFoundError):
logger.warning("could not read hardware info from eeprom")
if args.hardware_version != "0.0":
od["versions"]["hw_version"].value = args.hardware_version
version = args.hardware_version
od["versions"]["hw_version"].value = version

is_octavo = config.cards[name].processor == "octavo"
if is_octavo:
Expand Down
7 changes: 0 additions & 7 deletions olaf/_internals/resources/system.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
import psutil
from loguru import logger

from ...board.eeprom import Eeprom
from ...canopen.node import NodeStop
from ...common.resource import Resource

Expand All @@ -22,12 +21,6 @@ def on_start(self):
self.node.add_sdo_callbacks("system", "unix_time", self.on_read_unix_time, None)
self.node.add_sdo_callbacks("system", "reset", None, self.on_write_reset)

try:
eeprom = Eeprom()
self.node.od_write("versions", "hw_version", f"{eeprom.major}.{eeprom.minor}")
except (PermissionError, FileNotFoundError):
logger.warning("could not read hardware info from eeprom")

def on_read_ram(self):
"""SDO read callback for getting the RAM usage percent."""

Expand Down
18 changes: 10 additions & 8 deletions olaf/board/eeprom.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,14 +59,16 @@ def __init__(self):
self.major = 0
self.minor = 0

if self.nice_name == "pocketbeagle":
self.device_tree = "am335x-pocketbeagle.dtb"
elif self.nice_name == "boneblack":
self.device_tree = "am335x-boneblack.dtb"
elif self.nice_name != "unknown": # aka an oresat card
if self.serial_id != "PSAS":
if self.nice_name == "pocketbeagle":
self.device_tree = "am335x-pocketbeagle.dtb"
elif self.nice_name == "boneblack":
self.device_tree = "am335x-boneblack.dtb"
else:
self.is_oresat_card = True
self.device_tree = f"{self.nice_name}-{self.version}.dtb"
if self.nice_name != "unknown": # aka an oresat card
self.device_tree = "unknown"
else:
self.device_tree = f"{self.nice_name}-{self.version}.dtb"
self.major = int(data[12:14])
self.minor = int(data[14:16])
else:
self.device_tree = "unknown"

0 comments on commit 3b4f863

Please sign in to comment.