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

[RFC] boards organization #8923

Closed
wants to merge 1 commit into from
Closed

[RFC] boards organization #8923

wants to merge 1 commit into from

Conversation

dagar
Copy link
Member

@dagar dagar commented Feb 20, 2018

As previously discussed in conjunction with #7705, #8777, #7806, #8127, #7318, I'd like to consolidate all components of a board into a single location.

Why?

  • effectively creates a board "API" showing all pieces that need to be implemented for a new board
  • easy board addition
  • easy board removal
  • third party boards can live out of tree
  • direct comparison between boards (ie diff fmu-v2 and fmu-v4)
  • trivial to create a custom minor board variant without hacking the existing board in a private fork (something I've seen many times).
  • work towards minimizing what's actually required in a board support package

Example

  • fmu-v2
    • default.cmake
    • nuttx_defconfig
    • include
      • board_config.h
    • src
      • init.c
      • etc

In this current PR I've sorted the boards by VENDOR (eg PX4) and then by MODEL (eg FMU-v2). The downside is it changes the common naming from px4fmu-v2 to px4_fmu-v2. This is somewhat flexible if people feel strongly about it.

Thoughts/comments/concerns/complaints?

Here's the full tree. ATLFlight not yet sorted.

boards
├── aerotenna
│ └── ocpoc
│ ├── cross.cmake
│ └── ubuntu.cmake
├── airmind
│ └── mindpx-v2
│ └── default.cmake
├── atlflight
│ ├── eagle
│ │ ├── default.cmake
│ │ ├── hil.cmake
│ │ ├── legacy.cmake
│ │ ├── muorb.cmake
│ │ ├── qurt_eagle_default.cmake
│ │ ├── qurt_eagle_hello.cmake
│ │ ├── qurt_eagle_hil.cmake
│ │ ├── qurt_eagle_legacy.cmake
│ │ ├── qurt_eagle_muorb.cmake
│ │ ├── qurt_eagle_test.cmake
│ │ └── qurt_eagle_travis.cmake
│ ├── excelsior
│ │ ├── posix_excelsior_default.cmake
│ │ ├── posix_excelsior_legacy.cmake
│ │ ├── qurt_excelsior_default.cmake
│ │ └── qurt_excelsior_legacy.cmake
│ └── sdflight
│ ├── posix_sdflight_default.cmake
│ ├── posix_sdflight_legacy.cmake
│ ├── posix_sdflight_rtps.cmake
│ ├── qurt_sdflight_default.cmake
│ └── qurt_sdflight_legacy.cmake
├── auav
│ ├── esc35-v1
│ │ └── default.cmake
│ └── x21
│ └── default.cmake
├── bitcraze
│ └── crazyflie
│ └── default.cmake
├── emlid
│ └── navio2
│ ├── common.cmake
│ ├── cross.cmake
│ ├── cross_no_shield.cmake
│ └── native.cmake
├── gumstix
│ └── aerocore2
│ └── default.cmake
├── intel
│ └── aerofc-v1
│ ├── default.cmake
│ └── rtps.cmake
├── nxp
│ └── hlite-v3
│ └── default.cmake
├── parrot
│ └── bebop
│ └── default.cmake
└── px4
├── cannode-v1
│ └── default.cmake
├── esc-v1
│ └── default.cmake
├── fmu-v2
│ ├── default.cmake
│ ├── lpe.cmake
│ └── test.cmake
├── fmu-v3
│ ├── default.cmake
│ └── rtps.cmake
├── fmu-v4
│ ├── default.cmake
│ └── rtps.cmake
├── fmu-v4pro
│ ├── default.cmake
│ └── rtps.cmake
├── fmu-v5
│ ├── default.cmake
│ └── rtps.cmake
├── io-v2
│ └── default.cmake
├── nucleoF767ZI-v1
│ └── default.cmake
├── s2740vc-v1
│ └── default.cmake
├── same70xplained-v1
│ └── default.cmake
├── sitl
│ ├── broadcast.cmake
│ ├── default.cmake
│ ├── lpe.cmake
│ ├── rtps.cmake
│ ├── shell.cmake
│ └── test.cmake
├── stm32f4discovery
│ └── default.cmake
└── tap-v1
└── default.cmake

@dagar dagar changed the title [RFC] Pr boards [RFC] boards organization Feb 20, 2018
@bkueng
Copy link
Member

bkueng commented Feb 20, 2018

This looks pretty good. The only minor thing is that .cmake & NuttX configs will be a bit more scattered, but I can live with that.

navio2/cross_no_shield.cmake does not use the navio hat, and thus should live under something like px4/raspberry_pi

@dagar
Copy link
Member Author

dagar commented Feb 20, 2018

Ok, I'll get this branch fully working and we'll give everyone that's interested a chance to review and test.

The other minor thing I was thinking about was giving the configs a special extension like .px4cfg.

davids5
davids5 previously approved these changes Feb 20, 2018
Copy link
Member

@davids5 davids5 left a comment

Choose a reason for hiding this comment

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

@dagar - looks like a winner!

@dagar
Copy link
Member Author

dagar commented Nov 16, 2018

Let's give this another go.

@dagar dagar added this to the Release v1.9.0 milestone Nov 16, 2018
@dagar dagar self-assigned this Nov 16, 2018
@mrpollo
Copy link
Contributor

mrpollo commented Nov 16, 2018

Aside from rebasing hurdles what is blocking this PR?

@dagar
Copy link
Member Author

dagar commented Nov 16, 2018

The main hurdle here will likely be the naming changing slightly.

eg px4fmu-v5 -> px4_fmu-v5 (BOARD -> VENDOR/MODEL)

@dagar
Copy link
Member Author

dagar commented Nov 20, 2018

Continued in #10875

@dagar dagar mentioned this pull request Nov 20, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants