{"action":"created","issue":{"url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/11061","repository_url":"https://api.github.com/repos/MarlinFirmware/Marlin","labels_url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/11061/labels{/name}","comments_url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/11061/comments","events_url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/11061/events","html_url":"https://github.com/MarlinFirmware/Marlin/pull/11061","id":333756424,"node_id":"MDExOlB1bGxSZXF1ZXN0MTk1ODkzNzU1","number":11061,"title":"[2.0.x] Implementation of Backlash Compensation and M425","user":{"login":"marcio-ao","id":29129419,"node_id":"MDQ6VXNlcjI5MTI5NDE5","avatar_url":"https://avatars2.githubusercontent.com/u/29129419?v=4","gravatar_id":"","url":"https://api.github.com/users/marcio-ao","html_url":"https://github.com/marcio-ao","followers_url":"https://api.github.com/users/marcio-ao/followers","following_url":"https://api.github.com/users/marcio-ao/following{/other_user}","gists_url":"https://api.github.com/users/marcio-ao/gists{/gist_id}","starred_url":"https://api.github.com/users/marcio-ao/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/marcio-ao/subscriptions","organizations_url":"https://api.github.com/users/marcio-ao/orgs","repos_url":"https://api.github.com/users/marcio-ao/repos","events_url":"https://api.github.com/users/marcio-ao/events{/privacy}","received_events_url":"https://api.github.com/users/marcio-ao/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":7,"created_at":"2018-06-19T16:53:49Z","updated_at":"2018-06-21T23:02:34Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/MarlinFirmware/Marlin/pulls/11061","html_url":"https://github.com/MarlinFirmware/Marlin/pull/11061","diff_url":"https://github.com/MarlinFirmware/Marlin/pull/11061.diff","patch_url":"https://github.com/MarlinFirmware/Marlin/pull/11061.patch"},"body":"This implements backlash compensation on X, Y and Z. This version implements a more advanced algorithm than proposed in #7579 and is a result of months of internal testing as we led up to the release of our Mini 2.\r\n\r\nThe original implementation proposed in #7579 worked by inserting a new planner block that would cause the motors to rapidly take up any backlash immediately following a motor direction change. Our testing indicated that while this got rid of the backlash, it caused a significant seam on the print due to the momentary pause and vibrations caused by the discontinuity in velocity and acceleration. The new algorithm presented here is less aggressive and has two modes:\r\n\r\n1) The backlash correction steps are added to the planner block in which the direction change takes place. This reduces the appearance of seam by spreading the correction over one segment, but may still show a seam if the segments are very short.\r\n2) When BACKLASH_SMOOTHING is enabled, the backlash correction is applied over one or more segments, reducing the appearance of a seam even for short segments. However, BACKLASH_SMOOTHING requires more storage and CPU overhead, so this is optional.\r\n\r\nThis PR also adds a new \"M425\" command. When enabled, it makes backlash compensation tunable at run-time:\r\n\r\n```\r\n   M425: Enable and tune backlash correction.\r\n   \r\n      F[fraction]     Enable/disable/fade-out backlash correction (0.0 to 1.0)\r\n      S[smoothing_mm] Distance over which backlash correction is spread\r\n      X[distance_mm]  Sets the backlash distance on X (0 to disable)\r\n      Y[distance_mm]                         ... on Y\r\n      Z[distance_mm]                         ... on Z\r\n      X               If a backlash measurent was done on X, copy that value\r\n      Y                                          ... on Y\r\n      Z                                          ... on Z\r\n```\r\nAdditionally, `MEASURE_BACKLASH_WHEN_PROBING` allows the backlash to be measured while probing during G29. If the G29 is followed by \"M425 F1 Z\" it enables backlash compensation with the measured value of backlash on Z.\r\n\r\nThere is the possibility of a similar feature called `MEASURE_BACKLASH_WHEN_HOMING` that could work on X, Y and Z but this PR does not implement it yet.\r\n\r\n-- Marcio"},"comment":{"url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/comments/399270051","html_url":"https://github.com/MarlinFirmware/Marlin/pull/11061#issuecomment-399270051","issue_url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/11061","id":399270051,"node_id":"MDEyOklzc3VlQ29tbWVudDM5OTI3MDA1MQ==","user":{"login":"hectori4502","id":36092499,"node_id":"MDQ6VXNlcjM2MDkyNDk5","avatar_url":"https://avatars3.githubusercontent.com/u/36092499?v=4","gravatar_id":"","url":"https://api.github.com/users/hectori4502","html_url":"https://github.com/hectori4502","followers_url":"https://api.github.com/users/hectori4502/followers","following_url":"https://api.github.com/users/hectori4502/following{/other_user}","gists_url":"https://api.github.com/users/hectori4502/gists{/gist_id}","starred_url":"https://api.github.com/users/hectori4502/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hectori4502/subscriptions","organizations_url":"https://api.github.com/users/hectori4502/orgs","repos_url":"https://api.github.com/users/hectori4502/repos","events_url":"https://api.github.com/users/hectori4502/events{/privacy}","received_events_url":"https://api.github.com/users/hectori4502/received_events","type":"User","site_admin":false},"created_at":"2018-06-21T23:02:33Z","updated_at":"2018-06-21T23:02:33Z","author_association":"NONE","body":"marcio-ao \r\n the steps changed from 100mm to 98mm and duplicates the backlash. Can it be for my 8bits board?\r\nonly when I  set  // #define BACKLASH_SMOOTHING 3 // mm."}}
{"actor":{"display_login":"hectori4502"}}