Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

core: backend: "Black Box" / Odometry for Vehicle hardware/software tracking #3061

Open
1 task done
vshie opened this issue Jan 14, 2025 · 1 comment
Open
1 task done
Labels
core Issue related to BlueOS-core enhancement New feature or request ui User Interface feature

Comments

@vshie
Copy link

vshie commented Jan 14, 2025

Current behaviour

Autopilot log files track how long a mission may be, but extracting this information is difficult and involves mission planner or custom code.

BlueOS system logs are very granular for overall services, but don't capture summary information, or much about hardware usage or age.

Expected or desired behaviour

This issue proposes a new BlueOS core service, maybe named something like "BlackBox"?
This process would run in its own container, and log data (detailed below.) The log files it creates should be very small, and saved on a partition such that they can be extracted if the SD card from the vehicle Pi / computer is inserted into another computer (ideally without support for linux partition types.)

The flight recorder / black box / odometer logs should include:

  1. Total time powered on, in minutes (this is a running total, like the odometer in your car. All times in minutes or even 10 minute resolution acceptable?)
  2. Total time armed (ideally broken down per flight mode)
  3. Total time at depth >1, >10>30>50>100m, with corresponding water temperature (for ROV vehicle type)
  4. Total time at speed >0>0.5 >0.8 >1 >1.2 >1.5 m/s, with corresponding max/min voltage at each speed (for Boat vehicle type)
  5. Timestamped entries for events like CPU throttle /undervoltage - resolves #2434
  6. Most recent CPU load status (from htop or similar statistics - not a running log, just most recent values replaced to keep log small.)
  7. Max / min voltage observed (just one value for each)
  8. List of installed extensions
  9. BlueOS version and time/date of update
  10. "Hello world" first date/time service started
  11. Any other information that could be useful!

This data could become a critical resource for both Blue Robotics and general hardware developers, as a much better idea of what the hardware has been through, how old it is, and the conditions it was used on are saved in a file that is still accessible, quickly and without technical expertise, if a vehicle floods or is otherwise damaged. A simple view only, vue based dashboard could summarize the current form of the log and allow it to be downloaded.

An additional benefit of this service would be date/ time management. Currently, the ROV syncs time if it has an internet connection - however, as units are typically powered up and used without internet, this means logs can have confusing dates and times, including logs from years before the unit was ever built / purchased!
If this service kept track of time it was on, it could potentially guess at the date, or at least not use a date that is before the last time sync!

Prerequisites

  • I have checked to make sure that a similar request has not already been filed or fixed.
@vshie vshie added core Issue related to BlueOS-core enhancement New feature or request triage Needs triage from developers ui User Interface feature labels Jan 14, 2025
@vshie vshie changed the title core: backeend: "Black Box" / Odometry for Vehicle hardware/software tracking core: backend: "Black Box" / Odometry for Vehicle hardware/software tracking Jan 14, 2025
@patrickelectric
Copy link
Member

Related to: #1296

@patrickelectric patrickelectric removed the triage Needs triage from developers label Jan 14, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
core Issue related to BlueOS-core enhancement New feature or request ui User Interface feature
Projects
None yet
Development

No branches or pull requests

2 participants