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

Support non-navigator linux boards (initially Argonot) #1625

Conversation

rafaellehmkuhl
Copy link
Member

With this small change, we can support running Ardupilot Linux-based firmwares for boards other than the Navigator.

This was motivated to support the Argonot system, from SymbyTech (a request from @DevinNorgarb).

The only downside for now is that when there's no firmware installed for that board, we will use the one we have stored for Navigator.

The PR is in draft mode until we confirm the sensors used to identify this board.

Fix #1623.

@rafaellehmkuhl rafaellehmkuhl force-pushed the support-non-navigator-linux-boards branch from 8abbad7 to 59bbd87 Compare April 17, 2023 19:28
@patrickelectric
Copy link
Member

I believe that would be more future proof to do what we currently do by default, and if there is a binary under userdata, run the binary if its valid.

@rafaellehmkuhl
Copy link
Member Author

I believe that would be more future proof to do what we currently do by default, and if there is a binary under userdata, run the binary if its valid.

But in this case, we wouldn't offer the firmware download/update nor the board identification features to those.

@patrickelectric
Copy link
Member

patrickelectric commented Apr 17, 2023

I believe that would be more future proof to do what we currently do by default, and if there is a binary under userdata, run the binary if its valid.

But in this case, we wouldn't offer the firmware download/update nor the board identification features to those.

That'll be more related to: #1624, on the idea of the manifest file

@rafaellehmkuhl
Copy link
Member Author

I believe that would be more future proof to do what we currently do by default, and if there is a binary under userdata, run the binary if its valid.

But in this case, we wouldn't offer the firmware download/update nor the board identification features to those.

That'll be more related to: #1624, on the idea of the manifest file

Didn't quite get it. Why not use the ardupilot one if it exists?

@patrickelectric
Copy link
Member

I believe that would be more future proof to do what we currently do by default, and if there is a binary under userdata, run the binary if its valid.

But in this case, we wouldn't offer the firmware download/update nor the board identification features to those.

That'll be more related to: #1624, on the idea of the manifest file

Didn't quite get it. Why not use the ardupilot one if it exists?

  1. 3rd party companies when releasing a product will rarely do a firmware update, that's the most common use case.
  2. If we rely only in ArduPilot manifest we and others will be stuck with it, the code review process, the release cycle and more. Custom binaries will be heavily expensive to maintain over it, and new binaries may not be supported by the 3rd party companies or validated, making the release cycle out of the companies to the hand of the ArduPilot organization.
  3. Having our own manifest will help 3rd party companies to release their own binaries and have total control over it, including providing not open source versions of ArduPilot firmwares.

@rafaellehmkuhl
Copy link
Member Author

I believe that would be more future proof to do what we currently do by default, and if there is a binary under userdata, run the binary if its valid.

But in this case, we wouldn't offer the firmware download/update nor the board identification features to those.

That'll be more related to: #1624, on the idea of the manifest file

Didn't quite get it. Why not use the ardupilot one if it exists?

  1. 3rd party companies when releasing a product will rarely do a firmware update, that's the most common use case.
  2. If we rely only in ArduPilot manifest we and others will be stuck with it, the code review process, the release cycle and more. Custom binaries will be heavily expensive to maintain over it, and new binaries may not be supported by the 3rd party companies or validated, making the release cycle out of the companies to the hand of the ArduPilot organization.
  3. Having our own manifest will help 3rd party companies to release their own binaries and have total control over it, including providing not open source versions of ArduPilot firmwares.

I agree we should support this alternative. I just don't get why not to do both.

@patrickelectric
Copy link
Member

I believe that would be more future proof to do what we currently do by default, and if there is a binary under userdata, run the binary if its valid.

But in this case, we wouldn't offer the firmware download/update nor the board identification features to those.

That'll be more related to: #1624, on the idea of the manifest file

Didn't quite get it. Why not use the ardupilot one if it exists?

  1. 3rd party companies when releasing a product will rarely do a firmware update, that's the most common use case.
  2. If we rely only in ArduPilot manifest we and others will be stuck with it, the code review process, the release cycle and more. Custom binaries will be heavily expensive to maintain over it, and new binaries may not be supported by the 3rd party companies or validated, making the release cycle out of the companies to the hand of the ArduPilot organization.
  3. Having our own manifest will help 3rd party companies to release their own binaries and have total control over it, including providing not open source versions of ArduPilot firmwares.

I agree we should support this alternative. I just don't get why not to do both.

a

@rafaellehmkuhl rafaellehmkuhl force-pushed the support-non-navigator-linux-boards branch from 59bbd87 to a1a8c54 Compare April 18, 2023 17:32
@rafaellehmkuhl rafaellehmkuhl marked this pull request as ready for review April 18, 2023 17:34
@rafaellehmkuhl rafaellehmkuhl changed the title [WIP] Support non-navigator linux boards (initially Argonot) Support non-navigator linux boards (initially Argonot) Apr 18, 2023
@patrickelectric
Copy link
Member

@DevinNorgarb was it tested ?

Copy link
Collaborator

@joaoantoniocardoso joaoantoniocardoso left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The changes seem good, adding ad-hoc code to support boards is a good solution until we have the need for something like Kraken but for 3rd party boards

@rafaellehmkuhl rafaellehmkuhl force-pushed the support-non-navigator-linux-boards branch from 94926c1 to c60bb60 Compare April 24, 2023 19:33
@rafaellehmkuhl rafaellehmkuhl force-pushed the support-non-navigator-linux-boards branch from c60bb60 to bbd9c11 Compare April 24, 2023 20:04
Copy link
Member

@patrickelectric patrickelectric left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved by user

@patrickelectric patrickelectric merged commit cf12c05 into bluerobotics:master Apr 24, 2023
5 checks passed
@rafaellehmkuhl rafaellehmkuhl deleted the support-non-navigator-linux-boards branch April 25, 2023 01:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

ardupilot-manager: The service is currently hardcoded to support only Navigators when it comes to Linux boards
3 participants