{"action":"created","issue":{"url":"https://api.github.com/repos/betaflight/betaflight/issues/1282","repository_url":"https://api.github.com/repos/betaflight/betaflight","labels_url":"https://api.github.com/repos/betaflight/betaflight/issues/1282/labels{/name}","comments_url":"https://api.github.com/repos/betaflight/betaflight/issues/1282/comments","events_url":"https://api.github.com/repos/betaflight/betaflight/issues/1282/events","html_url":"https://github.com/betaflight/betaflight/pull/1282","id":181807041,"number":1282,"title":"DSHOT600 & 150 -> digital one shot motor (ESC) protocol","user":{"login":"blckmn","id":6168871,"avatar_url":"https://avatars.githubusercontent.com/u/6168871?v=3","gravatar_id":"","url":"https://api.github.com/users/blckmn","html_url":"https://github.com/blckmn","followers_url":"https://api.github.com/users/blckmn/followers","following_url":"https://api.github.com/users/blckmn/following{/other_user}","gists_url":"https://api.github.com/users/blckmn/gists{/gist_id}","starred_url":"https://api.github.com/users/blckmn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blckmn/subscriptions","organizations_url":"https://api.github.com/users/blckmn/orgs","repos_url":"https://api.github.com/users/blckmn/repos","events_url":"https://api.github.com/users/blckmn/events{/privacy}","received_events_url":"https://api.github.com/users/blckmn/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/betaflight/betaflight/labels/Discussing","name":"Discussing","color":"bfe5bf"},{"url":"https://api.github.com/repos/betaflight/betaflight/labels/Rebase%20Required","name":"Rebase Required","color":"fef2c0"},{"url":"https://api.github.com/repos/betaflight/betaflight/labels/Testing%20Required","name":"Testing Required","color":"fef2c0"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":57,"created_at":"2016-10-08T05:54:14Z","updated_at":"2016-10-15T12:44:33Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/betaflight/betaflight/pulls/1282","html_url":"https://github.com/betaflight/betaflight/pull/1282","diff_url":"https://github.com/betaflight/betaflight/pull/1282.diff","patch_url":"https://github.com/betaflight/betaflight/pull/1282.patch"},"body":"A very first **untested** cut only for **discussion** - it is only tested for compilation - not on actual hardware yet. The idea was floated by Felix and also independently discussed previously within the betaflight contributors group. It is very similar to WS2812 LED strip communications. Credit goes to Felix.\r\n\r\n**updated** for the DSHOT protocol. see below."},"comment":{"url":"https://api.github.com/repos/betaflight/betaflight/issues/comments/253982129","html_url":"https://github.com/betaflight/betaflight/pull/1282#issuecomment-253982129","issue_url":"https://api.github.com/repos/betaflight/betaflight/issues/1282","id":253982129,"user":{"login":"martinbudden","id":194586,"avatar_url":"https://avatars.githubusercontent.com/u/194586?v=3","gravatar_id":"","url":"https://api.github.com/users/martinbudden","html_url":"https://github.com/martinbudden","followers_url":"https://api.github.com/users/martinbudden/followers","following_url":"https://api.github.com/users/martinbudden/following{/other_user}","gists_url":"https://api.github.com/users/martinbudden/gists{/gist_id}","starred_url":"https://api.github.com/users/martinbudden/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martinbudden/subscriptions","organizations_url":"https://api.github.com/users/martinbudden/orgs","repos_url":"https://api.github.com/users/martinbudden/repos","events_url":"https://api.github.com/users/martinbudden/events{/privacy}","received_events_url":"https://api.github.com/users/martinbudden/received_events","type":"User","site_admin":false},"created_at":"2016-10-15T12:44:33Z","updated_at":"2016-10-15T12:44:33Z","body":"@ronlix , your results are interesting - it seems that all CRCs calculated with the 6way XOR have either two or four '1's. So it does not use the full 4-bit space, and so could be improved - but that is not surprising since anything other than a \"proper\" CRC will be sub-optimal. But it also means that it is possible to detect if a bit in the CRC is wrong. So the packet can be thrown out if either the CRC does not match, or the CRC does not match one of the allowed values.\r\n\r\nI'm not an expert in CRCs either - that's why I would recommend using the ITU one.\r\n\r\nThe purpose of CRCs is detecting (and sometimes correcting) errors. In our case we are not interested in correcting errors - if a error occurs we just ignore the packet and wait for the next one. We are, however, interested in detecting errors. The 6way XOR is certainly better the 3way XOR in detecting errors, but not as good as the ITU 4-bit CRC."}}
{"actor":{"display_login":"martinbudden"}}