Skip to content
This repository has been archived by the owner on Mar 17, 2021. It is now read-only.

UPstreaming a new port #654

Merged
merged 5 commits into from
Dec 2, 2018
Merged

Conversation

hamishwillee
Copy link
Collaborator

This attempts to capture the information about upstreaming covered in #651.

@LorenzMeier

  • Can you provide any concrete examples of maintenance that you might expect people to perform, or is the high level statement we have made sufficient?
  • Is there any maintenance we don't expect them to perform? For example, I would assume that if we decided to reorganise some of the Firmware tree that impacted boards, we would do that reorganisation work?

@mhkabir
Copy link
Member

mhkabir commented Nov 19, 2018

@davids5 would be able to contribute here :)

@davids5
Copy link
Member

davids5 commented Nov 19, 2018

@hamishwillee - how about we have a call and I can share the Nuttx side from the bottom up and top down and you can distill it into what you feel best will communicate the requirements.

@mrpollo
Copy link
Contributor

mrpollo commented Nov 19, 2018

Hey @davids5 lets have that meeting in a time zone that works for Hamish and invite @dagar, I think #651 started with the necessity to document our current process, in hopes of making it clear who we are and how we work, next up is to define that in more detail, your proposed meeting would be great. Next, we need to determine if we are happy with the current process and if there are any improvements we would like to make.

Copy link
Contributor

@mrpollo mrpollo left a comment

Choose a reason for hiding this comment

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

Overall your PR captures what @LorenzMeier covered on #651, while I agree with everything Lorenz said, I do believe there's room for misinterpretation, I think the changes I propose help set the right tone and clarify most of Lorenz points.

@@ -80,3 +80,24 @@ It is generally recommended to connect RC via separate RX and TX pins to the mic
If however RX and TX are connected together, the UART has to be put into singlewire mode to prevent any contention.
This is done via board config and manifest files.
One example is [px4fmu-v5](https://github.com/PX4/Firmware/blob/master/src/drivers/boards/px4fmu-v5/manifest.c).


## Accepting a Board into PX4 Codelines
Copy link
Contributor

Choose a reason for hiding this comment

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

I'm not sure about the word "Codelines", I've been thinking about this and I think we should call it "Officially supported hardware", "How to get your port officially supported", where "official support" means:

  • Get your code in the PX4 repository
  • CI auto firmware builds
  • Accessible firmware builds from QGC
  • Compatibility with the rest of the ecosystem

Copy link
Collaborator Author

@hamishwillee hamishwillee Nov 21, 2018

Choose a reason for hiding this comment

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

OK, how about (reorganised):


Officially Supported Hardware

The PX4 project supports and maintains the FMU standard reference hardware and any boards that are compatible with the standard.
This includes the Pixhawk-series (see the user guide for a full list of officially supported hardware).

Every officially supported board benefits from:

  • PX4 Port available in the PX4 repository
  • Automatic firmware builds that are accessible from QGroundControl
  • Compatibility with the rest of the ecosystem
  • Automated checks via CI - safety remains paramount to this community
  • Flight testing

We encourage board manufacturers to aim for full compatibility with the FMU spec.
With full compatibility you benefit from the ongoing day-to-day development of PX4, but have none of the maintenance costs that come from supporting deviations from the specification.

Tip Manufacturers should carefully consider the cost of maintenance before deviating from the specification
(the cost to the manufacturer is proportional to the level of divergence).

We welcome any individual or company to submit their port for inclusion in our supported hardware, provided they are willing to follow our Code of Conduct and work with the Dev Team to provide a safe and fulfilling PX4 experience to their customers.

It's also important to note that the PX4 dev team has a responsibility to release safe software, and as such we require any board manufacturer to commit any resources necessary to keep their port up-to-date, and in a working state.

If you want to have your board officially supported in PX4:

  • Your hardware must be available in the market (i.e. it can be purchased by any developer without restriction).
  • Hardware must be made available to the PX4 Dev Team so that they can validate the port (contact [email protected] for guidance on where to ship hardware for testing).
  • The board must pass full test suite and flight testing.

The PX4 project reserves the right to refuse acceptance of new ports (or remove current ports) for failure to meet the requirements set by the project.

You can reach out to the core developer team and community on the official Forums and Chat.

Copy link
Member

Choose a reason for hiding this comment

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

@hamishwillee

Port source code available in the PX4 repository

I do not know how to parse this sentence.

"Port: is an overloaded term in CS. The act of porting PX4 to new hardware is a "PX4 Port" to XYZ HW or a Port of PX4 to XYZ hardware.

Typically a Board Support Packages (BSP) is created to facilitate porting. PX4 does not use that term, but in essence that is what it is.

Is this what you are saying: Board Support source code available in the PX4 repository ?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

@davids5 Actually that was Ramon's text, but I interpret it as "PX4 Port available in the PX4 repository" and have changed appropriately above.

Is it otherwise OK?

@mrpollo And is it OK for you. If so I can merge this into the PR and merge the PR. (Ie what else to happen?)

Note that some of this might need to be moved around/reused in future. The reason being that if we explain base porting in the context of the different types of porting you might want to do (ie what lets you remain compatible) then we may need to explain the benefits of compatibility earlier. We will see.

Copy link
Contributor

Choose a reason for hiding this comment

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

lets merge his 👍

en/hardware/porting_guide.md Outdated Show resolved Hide resolved
> **Note** The sole responsibility for maintaining an accepted board lies with the manufacturer!
Failure to maintain a board will lead to its removal from upstream support.

The PX4 project provides free support for the Pixhawk-series FMU standard reference hardware (and by extension, other boards that are 100% compatible with the standard).
Copy link
Contributor

Choose a reason for hiding this comment

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

Slight edit, let me know what you think

The PX4 project supports and maintains the FMU standard reference hardware and any boards that are compatible with the standard, this includes the Pixhawk-series (see our docs for a full list of supported hardware).

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

This line got deleted anyway.The story we want to tell is not "what we support" but "what we want you go support" so I figured we could lose it.

If you disagree, add it back in. Note, is the FMU standard the correct name? Terminology a bit confused for me.

Copy link
Contributor

Choose a reason for hiding this comment

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

Terminology is confusing, but FMU is a standard, what other ways we have been calling it lately?

Copy link
Contributor

Choose a reason for hiding this comment

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

I also like the note about PX4 supporting and maintaining the FMU standard, perhaps this should be in the FMU section

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I'll add it back in a second. I guess it is part of "what we do for you", but it makes things less succinct.

Copy link
Contributor

Choose a reason for hiding this comment

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

Agree with @mrpollo , the support is not "free", the engineering incurs on/absorbed by someone; the manufacturer should understand that.

We have many "standards" here, FMU is standard, Pixhawk is also standard, we need a better description of the inter-relationships of the standards.

en/hardware/porting_guide.md Outdated Show resolved Hide resolved
en/hardware/porting_guide.md Outdated Show resolved Hide resolved
en/hardware/porting_guide.md Outdated Show resolved Hide resolved
@LorenzMeier
Copy link
Member

Thanks Ramon, that’s helpful - my comments were not intended to go into official documentation - the tone was way to colloquial and as you say, not welcoming enough in this context.

@hamishwillee
Copy link
Collaborator Author

All, I've included @mrpollo text and given a light subedit. Yes, a lot less intimidating :-). Please review.

@hamishwillee - how about we have a call and I can share the Nuttx side from the bottom up and top down and you can distill it into what you feel best will communicate the requirements.

@davids5 , that would be great. Yes, probably good to invite @dagar too. Most of his timeslots that work for me are at 8 am AEST (Melbourne/Sydney time). What times work for you/Where are you based now?

@mrpollo
Copy link
Contributor

mrpollo commented Nov 20, 2018

Can you add a note towards the end on how to get in touch with the dev team, perhaps point them to where in the docs this is covered, discuss/slack/github, etc. Its important users know how to make the first contact with a maintainer.

@hamishwillee
Copy link
Collaborator Author

Can you add a note towards the end on how to get in touch with the dev team, perhaps point them to where in the docs this is covered, discuss/slack/github, etc. Its important users know how to make the first contact with a maintainer.

I disagree with this. We introduce the dev team on the very front page: http://dev.px4.io/en/#support
YOu could argue similarly that we have to have this information on any and all pages, but no particular need for it to be on this one.

@mrpollo
Copy link
Contributor

mrpollo commented Nov 20, 2018

You are overthinking this, just link to the Forums & Page section, no need to duplicate content, a simple link is enough.

You can reach out to the core developer team and community on the official Forms and Chat.

@hamishwillee
Copy link
Collaborator Author

You are overthinking this, just link to the Forums & Page section, no need to duplicate content, a simple link is enough.

No I am not. But it isn't worth my time to argue.

@mrpollo
Copy link
Contributor

mrpollo commented Nov 20, 2018

I agree that you could argue the same for every other page, but I don't think that's a valid argument. For this page and section specifically I think it's needed, manufacturers are a different type of audience for the guide, they might not always employ in-house developers who would otherwise know how to look for these things.

@hamishwillee
Copy link
Collaborator Author

Unconvinced, but it does no particular harm.

Is this the right place in the article for the content? I think so.

@mrpollo
Copy link
Contributor

mrpollo commented Nov 20, 2018

response placement: I think so too, it flows naturally towards the end.

@hamishwillee
Copy link
Collaborator Author

OK, ready to merge then?

@dagar
Copy link
Member

dagar commented Nov 20, 2018

Working on making it slightly easier - PX4/PX4-Autopilot#10875

@davids5
Copy link
Member

davids5 commented Nov 20, 2018

@hamishwillee 8 am AEST is 2:00 PST which works for me. @dagar @mrpollo does that work for you?

@mrpollo
Copy link
Contributor

mrpollo commented Nov 20, 2018

8:00 am AEST works tomorrow, 8:30 am AEST | 2:30 PST works better for me today.

@davids5
Copy link
Member

davids5 commented Nov 20, 2018

8:00 am AEST works tomorrow, 8:30 am AEST | 2:30 PST works better for me today.

@hamishwillee @dagar I am fine with today or tomorrow at @mrpollo times. So whatever works best for you both, is good with me.

@mrpollo
Copy link
Contributor

mrpollo commented Nov 20, 2018

I'm guessing it's going to be tomorrow since its too short notice for @hamishwillee, let us know if tomorrow works for you or some other day!

@hamishwillee
Copy link
Collaborator Author

@davids5 @dagar @mrpollo Yes, 8am tomorrow morning AEST works for me. Ramon, can you set up a zoom meeting and send out an invite?


Agenda:

DavidS to share the Nuttx side from the bottom up and top down and you can distill it into what you feel best will communicate the requirements.

Basically, I would like to understand tasks need to be done to go from start to end.

  • Instructional guide for at least getting started - copy x, y, z, then do a, b, c
  • What are the pieces that need to be updated and what is likely to work out of the box.
  • What might you remove from an existing base port
  • How do you test each bit as you go?
  • Essential tools for the base porter.

Do we need to wait until PX4/PX4-Autopilot#10875 goes in - how much easier and different will things be after that is in place.

@davids5
Copy link
Member

davids5 commented Nov 21, 2018

@hamishwillee - we confirmed on the dev call today that we are confirmed for 2:00 PST / 8am AEST today, @mrpollo can you set up a zoom meeting and send out an invite?

@mrpollo
Copy link
Contributor

mrpollo commented Nov 21, 2018

@davids5 Hamish had sent an invite already, its for 1:00 pm PST, I just shared that with you and @dagar

@davids5
Copy link
Member

davids5 commented Nov 21, 2018

Thank you! @mrpollo

@hamishwillee
Copy link
Collaborator Author

hamishwillee commented Nov 22, 2018

FYI All, had a meeting with @davids5 @dagar today. Sent notes to @mrpollo and those guys. We're going to pause the docs work until PX4/PX4-Autopilot#10875 goes in and think a bit more about what can and cannot be done to improve the overall process.

[A few things that are clear to me are that you don't have to go very far before you need to know quite a lot about NuttX, and that what is included in our ports as "configurable" is quite limited. It might be good if we included more common configuration options as part of the reference definition]

An aside conversation we had was that many of the relevant docs in an FMU definition are in google docs/spreadsheets and are hence not properly versioned, linked or searchable. They are also cases where a non native speaker might misinterpret things (e.g. an instruction to do "either/or" might be taken as "both").

Upshot, it would be good if we can keep versions and all associated docs as a versioned copy (e.g. PDF, MSWord etc) in github, provide changelog as per the pinout legend for all docs, and ideally translate the docs for each revision (e.g. to Chinese). The "working" docs might still be a google doc, but that shouldn't be the official revision.

@mrpollo
Copy link
Contributor

mrpollo commented Nov 22, 2018

What does this mean to this PR?

@hamishwillee
Copy link
Collaborator Author

What does this mean to this PR?

Nothing. What needs to happen is for you to tell me if you are OK with my text in #654 (comment) , I put that into the PR properly, and then we merge.

@jinger26
Copy link
Contributor

PX4/PX4-Autopilot#10875 is merged, is this one ready to PR and merge as well?

@hamishwillee
Copy link
Collaborator Author

OK, so I will merge the text in #654 (comment)

By early next week.

@hamishwillee hamishwillee merged commit 76cbf8e into PX4:master Dec 2, 2018
@hamishwillee hamishwillee deleted the boardacceptance branch December 2, 2018 23:30
@hamishwillee
Copy link
Collaborator Author

Done! Thanks all.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants