{"action":"created","issue":{"url":"https://api.github.com/repos/betaflight/betaflight/issues/7264","repository_url":"https://api.github.com/repos/betaflight/betaflight","labels_url":"https://api.github.com/repos/betaflight/betaflight/issues/7264/labels{/name}","comments_url":"https://api.github.com/repos/betaflight/betaflight/issues/7264/comments","events_url":"https://api.github.com/repos/betaflight/betaflight/issues/7264/events","html_url":"https://github.com/betaflight/betaflight/pull/7264","id":393490003,"node_id":"MDExOlB1bGxSZXF1ZXN0MjQwNDk4MzIx","number":7264,"title":"Dshot telemetry","user":{"login":"joelucid","id":18134492,"node_id":"MDQ6VXNlcjE4MTM0NDky","avatar_url":"https://avatars0.githubusercontent.com/u/18134492?v=4","gravatar_id":"","url":"https://api.github.com/users/joelucid","html_url":"https://github.com/joelucid","followers_url":"https://api.github.com/users/joelucid/followers","following_url":"https://api.github.com/users/joelucid/following{/other_user}","gists_url":"https://api.github.com/users/joelucid/gists{/gist_id}","starred_url":"https://api.github.com/users/joelucid/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joelucid/subscriptions","organizations_url":"https://api.github.com/users/joelucid/orgs","repos_url":"https://api.github.com/users/joelucid/repos","events_url":"https://api.github.com/users/joelucid/events{/privacy}","received_events_url":"https://api.github.com/users/joelucid/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":5,"created_at":"2018-12-21T15:06:26Z","updated_at":"2018-12-22T10:17:26Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/betaflight/betaflight/pulls/7264","html_url":"https://github.com/betaflight/betaflight/pull/7264","diff_url":"https://github.com/betaflight/betaflight/pull/7264.diff","patch_url":"https://github.com/betaflight/betaflight/pull/7264.patch"},"body":"This is a first version of dshot_telemetry which reads rpm telemetry from blheli32 escs on the dshot signal line after each dshot command. As a result the FC will be fully aware of the real time rpm of all motors, which opens up many new improvements like better filtering and motor control.\r\n\r\nThe feature does not support burst DMA and is not implemented on the HAL drivers. It's guarded by USE_DSHOT_TELEMETRY which needs to be set to enable it. If the firmware does support it the cli option dshot_telemetry needs to be set on to activate it.\r\n\r\nThe feature requires a custom blheli32 firmware which isn't yet released. This firmware implements a couple of new dshot commands which are used to manage the feature. I'm currently trying to get in touch with Felix of KISS to ensure compatibility with KISS ESCs now and going forward.\r\n\r\nClearly this isn't yet ready for integration, but I wanted to get the ball rolling so we can ensure safe delivery into 4.0. I would appreciate any help from devs more familiar with the driver internals to double check what I've done here."},"comment":{"url":"https://api.github.com/repos/betaflight/betaflight/issues/comments/449560233","html_url":"https://github.com/betaflight/betaflight/pull/7264#issuecomment-449560233","issue_url":"https://api.github.com/repos/betaflight/betaflight/issues/7264","id":449560233,"node_id":"MDEyOklzc3VlQ29tbWVudDQ0OTU2MDIzMw==","user":{"login":"joelucid","id":18134492,"node_id":"MDQ6VXNlcjE4MTM0NDky","avatar_url":"https://avatars0.githubusercontent.com/u/18134492?v=4","gravatar_id":"","url":"https://api.github.com/users/joelucid","html_url":"https://github.com/joelucid","followers_url":"https://api.github.com/users/joelucid/followers","following_url":"https://api.github.com/users/joelucid/following{/other_user}","gists_url":"https://api.github.com/users/joelucid/gists{/gist_id}","starred_url":"https://api.github.com/users/joelucid/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joelucid/subscriptions","organizations_url":"https://api.github.com/users/joelucid/orgs","repos_url":"https://api.github.com/users/joelucid/repos","events_url":"https://api.github.com/users/joelucid/events{/privacy}","received_events_url":"https://api.github.com/users/joelucid/received_events","type":"User","site_admin":false},"created_at":"2018-12-22T10:17:26Z","updated_at":"2018-12-22T10:17:26Z","author_association":"CONTRIBUTOR","body":"@mikeller,\r\n\r\nyes 42-47 are request telemetry value commands. Given the bandwidth constraints of the dshot line we can't use the telemetry bit with the same semantics as the traditional esc telemetry because we can't send more than one value back. Certainly not everything as is done in response to the telemetry bit. Secondly the telemetry bit is already used for requesting traditional esc telemetry.\r\n\r\nWe considered adding additional bits to the dshot frame to request motor signal line telemetry. However erpm is likely the only item one wants to retrieve in real time and adding overhead to each frame for telemetry requests that happen only rarely did not seem like a good trade-off. \r\n\r\nThese dshot telemetry request commands give the FC flexibility not only in how often a given telemetry type is retrieved, but also when. For example one may issue them when the current dshot motor value has not changed much.\r\n\r\nThe only one implemented in BF for now with this PR is erpm telemetry which I consider by far the most significant for us. That said I do think the other telemetry items can be useful to avoid the extra wiring of serial telemetry. We could flag these extra commands as experimental.\r\n\r\nThe thought behind ERPM period telemetry was to enable low powered ESCs to report a value that can be converted on the FC to ERPM. This could be essential in enabling blheli_s to support this feature. On the other hand we didn't want to force 4 divisions on the FC with blheli32 escs to support low powered FCs (like SilverWare). \r\n\r\nBurst dma should be doable once the response timing is strictly defined. That's needed since captured values are collected at update of the timer which may occur before the esc has started responding."}}
{"actor":{"display_login":"joelucid"}}