{"action":"created","issue":{"url":"https://api.github.com/repos/PX4/Firmware/issues/10875","repository_url":"https://api.github.com/repos/PX4/Firmware","labels_url":"https://api.github.com/repos/PX4/Firmware/issues/10875/labels{/name}","comments_url":"https://api.github.com/repos/PX4/Firmware/issues/10875/comments","events_url":"https://api.github.com/repos/PX4/Firmware/issues/10875/events","html_url":"https://github.com/PX4/Firmware/pull/10875","id":382479042,"node_id":"MDExOlB1bGxSZXF1ZXN0MjMyMTc3MTQx","number":10875,"title":"boards organization","user":{"login":"dagar","id":84712,"node_id":"MDQ6VXNlcjg0NzEy","avatar_url":"https://avatars3.githubusercontent.com/u/84712?v=4","gravatar_id":"","url":"https://api.github.com/users/dagar","html_url":"https://github.com/dagar","followers_url":"https://api.github.com/users/dagar/followers","following_url":"https://api.github.com/users/dagar/following{/other_user}","gists_url":"https://api.github.com/users/dagar/gists{/gist_id}","starred_url":"https://api.github.com/users/dagar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dagar/subscriptions","organizations_url":"https://api.github.com/users/dagar/orgs","repos_url":"https://api.github.com/users/dagar/repos","events_url":"https://api.github.com/users/dagar/events{/privacy}","received_events_url":"https://api.github.com/users/dagar/received_events","type":"User","site_admin":false},"labels":[{"id":306636108,"node_id":"MDU6TGFiZWwzMDY2MzYxMDg=","url":"https://api.github.com/repos/PX4/Firmware/labels/documentation","name":"documentation","color":"fbca04","default":false},{"id":10884840,"node_id":"MDU6TGFiZWwxMDg4NDg0MA==","url":"https://api.github.com/repos/PX4/Firmware/labels/enhancement","name":"enhancement","color":"84b6eb","default":true}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/PX4/Firmware/milestones/29","html_url":"https://github.com/PX4/Firmware/milestone/29","labels_url":"https://api.github.com/repos/PX4/Firmware/milestones/29/labels","id":3761959,"node_id":"MDk6TWlsZXN0b25lMzc2MTk1OQ==","number":29,"title":"Release v1.9.0","description":"PX4 Stable Release v1.9.0","creator":{"login":"dagar","id":84712,"node_id":"MDQ6VXNlcjg0NzEy","avatar_url":"https://avatars3.githubusercontent.com/u/84712?v=4","gravatar_id":"","url":"https://api.github.com/users/dagar","html_url":"https://github.com/dagar","followers_url":"https://api.github.com/users/dagar/followers","following_url":"https://api.github.com/users/dagar/following{/other_user}","gists_url":"https://api.github.com/users/dagar/gists{/gist_id}","starred_url":"https://api.github.com/users/dagar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dagar/subscriptions","organizations_url":"https://api.github.com/users/dagar/orgs","repos_url":"https://api.github.com/users/dagar/repos","events_url":"https://api.github.com/users/dagar/events{/privacy}","received_events_url":"https://api.github.com/users/dagar/received_events","type":"User","site_admin":false},"open_issues":8,"closed_issues":1,"state":"open","created_at":"2018-10-23T14:25:59Z","updated_at":"2018-11-20T02:58:58Z","due_on":"2019-01-04T08:00:00Z","closed_at":null},"comments":6,"created_at":"2018-11-20T02:58:58Z","updated_at":"2018-11-22T11:56:40Z","closed_at":null,"author_association":"MEMBER","pull_request":{"url":"https://api.github.com/repos/PX4/Firmware/pulls/10875","html_url":"https://github.com/PX4/Firmware/pull/10875","diff_url":"https://github.com/PX4/Firmware/pull/10875.diff","patch_url":"https://github.com/PX4/Firmware/pull/10875.patch"},"body":"As previously discussed in conjunction with #7705, https://github.com/PX4/Firmware/pull/8777, https://github.com/PX4/Firmware/pull/7806, https://github.com/PX4/Firmware/issues/8127, https://github.com/PX4/Firmware/issues/7318, https://github.com/PX4/Firmware/pull/8923, I'd like to consolidate **all** components of a board into a single location.\r\n\r\nWhy?\r\n\r\n* effectively creates a board \"API\" showing all pieces that need to be implemented for a new board\r\n* easy board addition\r\n* easy board removal\r\n* third party boards can live out of tree\r\n* direct comparison between boards (ie diff fmu-v2 and fmu-v4)\r\n* trivial to create a custom minor board variant without hacking the existing board in a private fork (something I've seen many times).\r\n* work towards minimizing what's actually required in a board support package\r\n\r\nExample\r\n\r\n* fmu-v2\r\n  * default.cmake\r\n  * nuttx-config\r\n  * include\r\n    * board_config.h\r\n  * src\r\n    * init.c\r\n    * etc\r\n\r\nIn 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.\r\n\r\nThoughts/comments/concerns/complaints? \r\n\r\n\r\n```\r\n% tree -L 3 --dirsfirst boards\r\n\r\nboards\r\n├── aerotenna\r\n│   └── ocpoc\r\n│       ├── src\r\n│       └── ubuntu.cmake\r\n├── airmind\r\n│   └── mindpx-v2\r\n│       ├── nuttx-config\r\n│       ├── src\r\n│       ├── default.cmake\r\n│       └── firmware.prototype\r\n├── atlflight\r\n│   ├── cmake_hexagon\r\n│   ├── eagle\r\n│   │   ├── src\r\n│   │   ├── default.cmake\r\n│   │   └── qurt-default.cmake\r\n│   └── excelsior\r\n│       ├── src\r\n│       ├── default.cmake\r\n│       └── qurt-default.cmake\r\n├── atmel\r\n│   └── same70xplained\r\n│       ├── nuttx-config\r\n│       ├── src\r\n│       ├── default.cmake\r\n│       └── firmware.prototype\r\n├── auav\r\n│   ├── esc35-v1\r\n│   │   ├── nuttx-config\r\n│   │   ├── src\r\n│   │   ├── default.cmake\r\n│   │   └── firmware.prototype\r\n│   └── x21\r\n│       ├── nuttx-config\r\n│       ├── src\r\n│       ├── default.cmake\r\n│       └── firmware.prototype\r\n├── av\r\n│   └── x-v1\r\n│       ├── nuttx-config\r\n│       ├── src\r\n│       ├── default.cmake\r\n│       └── firmware.prototype\r\n├── beaglebone\r\n│   └── blue\r\n│       ├── src\r\n│       ├── cross.cmake\r\n│       └── native.cmake\r\n├── bitcraze\r\n│   └── crazyflie\r\n│       ├── nuttx-config\r\n│       ├── src\r\n│       ├── default.cmake\r\n│       └── firmware.prototype\r\n├── emlid\r\n│   └── navio2\r\n│       ├── src\r\n│       ├── cross.cmake\r\n│       └── native.cmake\r\n├── gumstix\r\n│   └── aerocore2\r\n│       ├── nuttx-config\r\n│       ├── src\r\n│       ├── default.cmake\r\n│       └── firmware.prototype\r\n├── intel\r\n│   └── aerofc-v1\r\n│       ├── nuttx-config\r\n│       ├── src\r\n│       ├── default.cmake\r\n│       ├── firmware.prototype\r\n│       └── rtps.cmake\r\n├── nxp\r\n│   └── hlite-v3\r\n│       ├── nuttx-config\r\n│       ├── src\r\n│       ├── default.cmake\r\n│       └── firmware.prototype\r\n├── omnibus\r\n│   └── f4sd\r\n│       ├── nuttx-config\r\n│       ├── src\r\n│       ├── default.cmake\r\n│       └── firmware.prototype\r\n├── parrot\r\n│   └── bebop\r\n│       ├── src\r\n│       └── default.cmake\r\n├── px4\r\n│   ├── cannode-v1\r\n│   │   ├── nuttx-config\r\n│   │   ├── src\r\n│   │   ├── default.cmake\r\n│   │   └── firmware.prototype\r\n│   ├── esc-v1\r\n│   │   ├── nuttx-config\r\n│   │   ├── src\r\n│   │   ├── default.cmake\r\n│   │   └── firmware.prototype\r\n│   ├── fmu-v2\r\n│   │   ├── nuttx-config\r\n│   │   ├── src\r\n│   │   ├── default.cmake\r\n│   │   ├── firmware.prototype\r\n│   │   ├── lpe.cmake\r\n│   │   └── test.cmake\r\n│   ├── fmu-v3\r\n│   │   ├── nuttx-config\r\n│   │   ├── src\r\n│   │   ├── default.cmake\r\n│   │   ├── firmware.prototype\r\n│   │   ├── rtps.cmake\r\n│   │   └── stackcheck.cmake\r\n│   ├── fmu-v4\r\n│   │   ├── nuttx-config\r\n│   │   ├── src\r\n│   │   ├── default.cmake\r\n│   │   ├── firmware.prototype\r\n│   │   ├── rtps.cmake\r\n│   │   └── stackcheck.cmake\r\n│   ├── fmu-v4pro\r\n│   │   ├── nuttx-config\r\n│   │   ├── src\r\n│   │   ├── default.cmake\r\n│   │   ├── firmware.prototype\r\n│   │   └── rtps.cmake\r\n│   ├── fmu-v5\r\n│   │   ├── nuttx-config\r\n│   │   ├── src\r\n│   │   ├── default.cmake\r\n│   │   ├── firmware.prototype\r\n│   │   ├── rtps.cmake\r\n│   │   └── stackcheck.cmake\r\n│   ├── io-v2\r\n│   │   ├── nuttx-config\r\n│   │   ├── src\r\n│   │   ├── default.cmake\r\n│   │   └── firmware.prototype\r\n│   ├── raspberrypi\r\n│   │   ├── src\r\n│   │   ├── cross.cmake\r\n│   │   └── native.cmake\r\n│   └── sitl\r\n│       ├── src\r\n│       ├── default.cmake\r\n│       ├── rtps.cmake\r\n│       └── test.cmake\r\n├── stm\r\n│   ├── 32f4discovery\r\n│   │   ├── nuttx-config\r\n│   │   ├── src\r\n│   │   ├── default.cmake\r\n│   │   └── firmware.prototype\r\n│   └── nucleo-F767ZI\r\n│       ├── nuttx-config\r\n│       ├── src\r\n│       ├── default.cmake\r\n│       └── firmware.prototype\r\n└── thiemar\r\n    └── s2740vc-v1\r\n        ├── nuttx-config\r\n        ├── src\r\n        ├── default.cmake\r\n        └── firmware.prototype\r\n\r\n97 directories, 67 files\r\n\r\n```"},"comment":{"url":"https://api.github.com/repos/PX4/Firmware/issues/comments/441007863","html_url":"https://github.com/PX4/Firmware/pull/10875#issuecomment-441007863","issue_url":"https://api.github.com/repos/PX4/Firmware/issues/10875","id":441007863,"node_id":"MDEyOklzc3VlQ29tbWVudDQ0MTAwNzg2Mw==","user":{"login":"davids5","id":1945821,"node_id":"MDQ6VXNlcjE5NDU4MjE=","avatar_url":"https://avatars1.githubusercontent.com/u/1945821?v=4","gravatar_id":"","url":"https://api.github.com/users/davids5","html_url":"https://github.com/davids5","followers_url":"https://api.github.com/users/davids5/followers","following_url":"https://api.github.com/users/davids5/following{/other_user}","gists_url":"https://api.github.com/users/davids5/gists{/gist_id}","starred_url":"https://api.github.com/users/davids5/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davids5/subscriptions","organizations_url":"https://api.github.com/users/davids5/orgs","repos_url":"https://api.github.com/users/davids5/repos","events_url":"https://api.github.com/users/davids5/events{/privacy}","received_events_url":"https://api.github.com/users/davids5/received_events","type":"User","site_admin":false},"created_at":"2018-11-22T11:56:40Z","updated_at":"2018-11-22T11:56:40Z","author_association":"MEMBER","body":"@dagar - I pushed 2 consistency changes. Albeit these may be deleted in the future, when the px4io app is reworked and the rc test is removed, but until then I think we should be consistent.  "}}
{"actor":{"display_login":"davids5"}}