{"action":"created","issue":{"url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/11792","repository_url":"https://api.github.com/repos/MarlinFirmware/Marlin","labels_url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/11792/labels{/name}","comments_url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/11792/comments","events_url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/11792/events","html_url":"https://github.com/MarlinFirmware/Marlin/pull/11792","id":358710347,"node_id":"MDExOlB1bGxSZXF1ZXN0MjE0MzgwNjQ4","number":11792,"title":"[2.0.x] Migrate Marlin to a new TMC library","user":{"login":"teemuatlut","id":7762686,"node_id":"MDQ6VXNlcjc3NjI2ODY=","avatar_url":"https://avatars1.githubusercontent.com/u/7762686?v=4","gravatar_id":"","url":"https://api.github.com/users/teemuatlut","html_url":"https://github.com/teemuatlut","followers_url":"https://api.github.com/users/teemuatlut/followers","following_url":"https://api.github.com/users/teemuatlut/following{/other_user}","gists_url":"https://api.github.com/users/teemuatlut/gists{/gist_id}","starred_url":"https://api.github.com/users/teemuatlut/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/teemuatlut/subscriptions","organizations_url":"https://api.github.com/users/teemuatlut/orgs","repos_url":"https://api.github.com/users/teemuatlut/repos","events_url":"https://api.github.com/users/teemuatlut/events{/privacy}","received_events_url":"https://api.github.com/users/teemuatlut/received_events","type":"User","site_admin":false},"labels":[{"id":848340248,"node_id":"MDU6TGFiZWw4NDgzNDAyNDg=","url":"https://api.github.com/repos/MarlinFirmware/Marlin/labels/F:%20Trinamic","name":"F: Trinamic","color":"3cc9c9","default":false},{"id":92052497,"node_id":"MDU6TGFiZWw5MjA1MjQ5Nw==","url":"https://api.github.com/repos/MarlinFirmware/Marlin/labels/PR:%20Improvement","name":"PR: Improvement","color":"c2e0c6","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":18,"created_at":"2018-09-10T16:59:24Z","updated_at":"2018-09-12T03:13:10Z","closed_at":null,"author_association":"MEMBER","pull_request":{"url":"https://api.github.com/repos/MarlinFirmware/Marlin/pulls/11792","html_url":"https://github.com/MarlinFirmware/Marlin/pull/11792","diff_url":"https://github.com/MarlinFirmware/Marlin/pull/11792.diff","patch_url":"https://github.com/MarlinFirmware/Marlin/pull/11792.patch"},"body":"I'm starting the process to migrate to a new TMC library that aims to support more driver models.\r\nIt might be a bit early but I'd like to get a review going to make things go smoothly.\r\n\r\nHere's a general plan for the rest of the year. Ticked boxes mark the changes introduced in this PR.\r\n- [x] Move to new universal TMCStepper library\r\n- [x] Implement inherited Marlin TMC classes\r\n- [ ] Support TMC2660\r\n- [ ] Support TMC5160\r\n- [ ] Add sanity checking for driver errors\r\n- [ ] Greatly reduce communication attempts for monitoring\r\n- [ ] Improve TMC error verbosity with better error messages\r\n- [ ] Add communication checking on boot\r\n- [ ] Add the ability to change chopper timings (spreadCycle)\r\n- [ ] Tweak default chopper settings for quieter spreadCycle operation\r\n- [ ] Support Trinamic coolStep technology\r\n- [ ] Improve `M122` with fetching raw register data\r\n- [ ] Add TMC section to the LCD\r\n- [ ] Support TMC5130\r\n- [ ] Support TMC2224\r\n- [ ] Add `SOFTWARE_ENABLE` for all smart drivers (Request from Panucatt)\r\n\r\n---\r\n\r\nRegarding this PR.\r\n\r\nA more universal library allows me to support more chips without creating a completely new library for each and every one of them. The maintenance would quickly become too great when the number of supported models is more than a couple.\r\nThe current aim is to support TMC2130, TMC2208, TMC2224, TMC5130, TMC5160 and TMC2660.\r\nThe library itself should be in pretty good condition but as always, it is mostly untested at this point.\r\n\r\nImplementing a child class within Marlin allows us to attach certain functions to the stepper objects so they don't have to be passed around as parameters, or be tracked as indexes to an array. This PR primarily uses this for printing out the axis labels and otpw counter values.\r\n\r\nBasically this PR forms the base for many of the new features, functions and fixes.\r\nI ask that the PRs don't get squashed together as I've tried to organize the commits thematically and it'll make it easier to debug in case of any issues."},"comment":{"url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/comments/420497801","html_url":"https://github.com/MarlinFirmware/Marlin/pull/11792#issuecomment-420497801","issue_url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/11792","id":420497801,"node_id":"MDEyOklzc3VlQ29tbWVudDQyMDQ5NzgwMQ==","user":{"login":"thinkyhead","id":698003,"node_id":"MDQ6VXNlcjY5ODAwMw==","avatar_url":"https://avatars2.githubusercontent.com/u/698003?v=4","gravatar_id":"","url":"https://api.github.com/users/thinkyhead","html_url":"https://github.com/thinkyhead","followers_url":"https://api.github.com/users/thinkyhead/followers","following_url":"https://api.github.com/users/thinkyhead/following{/other_user}","gists_url":"https://api.github.com/users/thinkyhead/gists{/gist_id}","starred_url":"https://api.github.com/users/thinkyhead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thinkyhead/subscriptions","organizations_url":"https://api.github.com/users/thinkyhead/orgs","repos_url":"https://api.github.com/users/thinkyhead/repos","events_url":"https://api.github.com/users/thinkyhead/events{/privacy}","received_events_url":"https://api.github.com/users/thinkyhead/received_events","type":"User","site_admin":false},"created_at":"2018-09-12T03:13:10Z","updated_at":"2018-09-12T03:13:10Z","author_association":"MEMBER","body":"Ah, I see that your `self()` method in the templated `Base<>` class accomplished the same thing, but neater."}}
{"actor":{"display_login":"thinkyhead"}}