{"action":"created","issue":{"url":"https://api.github.com/repos/PX4/Firmware/issues/10534","repository_url":"https://api.github.com/repos/PX4/Firmware","labels_url":"https://api.github.com/repos/PX4/Firmware/issues/10534/labels{/name}","comments_url":"https://api.github.com/repos/PX4/Firmware/issues/10534/comments","events_url":"https://api.github.com/repos/PX4/Firmware/issues/10534/events","html_url":"https://github.com/PX4/Firmware/pull/10534","id":362076318,"node_id":"MDExOlB1bGxSZXF1ZXN0MjE2ODg2Nzkx","number":10534,"title":"Toward a centralized, flexible PWM resource coordination subsystem","user":{"login":"rolandash","id":13965984,"node_id":"MDQ6VXNlcjEzOTY1OTg0","avatar_url":"https://avatars0.githubusercontent.com/u/13965984?v=4","gravatar_id":"","url":"https://api.github.com/users/rolandash","html_url":"https://github.com/rolandash","followers_url":"https://api.github.com/users/rolandash/followers","following_url":"https://api.github.com/users/rolandash/following{/other_user}","gists_url":"https://api.github.com/users/rolandash/gists{/gist_id}","starred_url":"https://api.github.com/users/rolandash/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rolandash/subscriptions","organizations_url":"https://api.github.com/users/rolandash/orgs","repos_url":"https://api.github.com/users/rolandash/repos","events_url":"https://api.github.com/users/rolandash/events{/privacy}","received_events_url":"https://api.github.com/users/rolandash/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2018-09-20T08:34:29Z","updated_at":"2018-09-22T11:53:57Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/PX4/Firmware/pulls/10534","html_url":"https://github.com/PX4/Firmware/pull/10534","diff_url":"https://github.com/PX4/Firmware/pull/10534.diff","patch_url":"https://github.com/PX4/Firmware/pull/10534.patch"},"body":"**Note**\r\nThis PR is a workable branch, little bit behind latest px4/master (so all checks may fail), but as i imagine it will not be merged in short time so i need to rebase it anyway till then. You are welcome to comments on the new model and design, to see any improvements needed, and co-work if you are also interested. \r\nIf anyone would like to have a test flight you can find it here: \r\nhttps://github.com/airmind/OpenMindPX\r\nas its updated from time to time.\r\n\r\nSo far it is only tested on [MindPX](https://docs.px4.io/en/flight_controller/mindpx.html) and [MindRacer](https://docs.px4.io/en/flight_controller/mindracer.html). Please let me know if you found any problem on other hardware (TAP-V1 probably broke on LED drivers, but it was not a correct implementation and needs to be fixed later anyway).\r\n\r\n**Describe problem solved by the proposed pull request**\r\nThis PR starts the step towards a centralized while flexible PWM resource management system which introduce many interesting features. \r\n\r\nExisting PWM subsystem majorly hand-wire pwm resource allocation like timers, channels, pin numbers, scattered in many different locations such as board configs, airframe config files, mixer files, or source codes, many of them hard-coded. This makes attempts to expand supported PWM devices quite difficult as one needs to manually settle all potential conflicts on resource usage.\r\n\r\nThis PR wants to build a centralized while flexible way to support as many kind of PWM devices as possible with only few simple runtime configurations needed through some kind of Human-Machine Interface(like from GUI of GCS).\r\n\r\n**Describe your preferred solution**\r\nA new model of PWM devices and a centralized resource management group of classes are defined to \r\nachieve this goal. A detailed description of the model and design can be found here:\r\n[Design document](https://github.com/airmind/OpenMindPX/pull/3)\r\n![https://camo.githubusercontent.com/ad036a5b6d6f1ba7475997bf432512c056e0f6f9/687474703a2f2f7777772e636c75622e6d696e6470782e6e65742f7075626c69632f75706c6f61642f37383863366666316466663532326263323065346633373933613031376432342e706e67](\r\nhttps://camo.githubusercontent.com/ad036a5b6d6f1ba7475997bf432512c056e0f6f9/687474703a2f2f7777772e636c75622e6d696e6470782e6e65742f7075626c69632f75706c6f61642f37383863366666316466663532326263323065346633373933613031376432342e706e67)\r\n\r\nSome interesting features can be brought in by the new design. For example,\r\n\r\n1. Camera trigger will not be limited on the first 6pins of main output. Pilot can use any free pins on Main/Aux port, if the first 6 pins all occupied, through few configuration of parameters.\r\n1. A pilot that flys a hexa airframe, now can use the remaining 2 channels on Main port to drive an external PWM heater to heat any other components(not only the flight controller) on his vehicle, simply by selecting the pin number from GUI of GCS(needs further work). \r\n1. in the meanwhile, he can still connect a set of external PWM LEDs to AUX channels, still through configuration of the pin numbers from GUI of GCS(needs further work).\r\nHe will not need to change the codes and compile to upload everytime he wants to change the task modules layout for different missions.\r\n\r\n**Additional context**\r\n@davids5 It will be very interesting to see the possibility of it to be combined with the hardware manifest work you initiated. I am expecting your co-work on it.\r\n@dagar This PR is somewhat independent of the original PR #7208  and #8142 that separating the FMU from other 'flight management' tasks. I prefer that we pursuing that target in an other PR.\r\n@DonLakeFlyer Ultimately all these configurations has to be done through GCS. I think this will need your help on QGC side, if you like it and are interested on helping it out.\r\n**@testflights** I will be appreciate if you can help to test the PR. And i strongly recommend you have MindPX/MindRacer hardwares added into your testing package :-)\r\n\r\n@mzahana I think you can have all 16 (8 main + 8 aux) channels on MindPX fully funtional and all VTOL frames available now. Pls let me know on any issue. @TSC21 \r\n\r\n@LorenzMeier\r\n"},"comment":{"url":"https://api.github.com/repos/PX4/Firmware/issues/comments/423738961","html_url":"https://github.com/PX4/Firmware/pull/10534#issuecomment-423738961","issue_url":"https://api.github.com/repos/PX4/Firmware/issues/10534","id":423738961,"node_id":"MDEyOklzc3VlQ29tbWVudDQyMzczODk2MQ==","user":{"login":"rolandash","id":13965984,"node_id":"MDQ6VXNlcjEzOTY1OTg0","avatar_url":"https://avatars0.githubusercontent.com/u/13965984?v=4","gravatar_id":"","url":"https://api.github.com/users/rolandash","html_url":"https://github.com/rolandash","followers_url":"https://api.github.com/users/rolandash/followers","following_url":"https://api.github.com/users/rolandash/following{/other_user}","gists_url":"https://api.github.com/users/rolandash/gists{/gist_id}","starred_url":"https://api.github.com/users/rolandash/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rolandash/subscriptions","organizations_url":"https://api.github.com/users/rolandash/orgs","repos_url":"https://api.github.com/users/rolandash/repos","events_url":"https://api.github.com/users/rolandash/events{/privacy}","received_events_url":"https://api.github.com/users/rolandash/received_events","type":"User","site_admin":false},"created_at":"2018-09-22T11:53:57Z","updated_at":"2018-09-22T11:53:57Z","author_association":"CONTRIBUTOR","body":"@davids5 thank you and that's great!\r\n\r\nAre you sure the dev call is 8PM PST? as in dev call calendar it seems to be 8AM PST.\r\nI can do 8PM, but 8AM will be too late for me...\r\n\r\nIn latter case, I will be happy to discuss it on Slack (need someone invites me in though), or add more comments/documents where you need ...\r\n\r\n"}}
{"actor":{"display_login":"rolandash"}}