{"action":"created","comment":{"url":"https://api.github.com/repos/MarlinFirmware/Marlin/pulls/comments/225834834","pull_request_review_id":165518915,"id":225834834,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIyNTgzNDgzNA==","diff_hunk":"@@ -2066,15 +2064,14 @@ bool Planner::_populate_block(block_t * const block, bool split_move,\n   // Calculate and limit speed in mm/sec for each axis\n   float current_speed[NUM_AXIS], speed_factor = 1.0f; // factor <1 decreases speed\n   LOOP_XYZE(i) {\n-    #if ENABLED(MIXING_EXTRUDER)\n+    #if ENABLED(MIXING_EXTRUDER) && ENABLED(RETRACT_SYNC_MIXING)","path":"Marlin/src/module/planner.cpp","position":26,"original_position":26,"commit_id":"8f31a8d51bb3d585d1ce09565e9e8caf86aec8b6","original_commit_id":"8f31a8d51bb3d585d1ce09565e9e8caf86aec8b6","user":{"login":"AnHardt","id":211931,"node_id":"MDQ6VXNlcjIxMTkzMQ==","avatar_url":"https://avatars2.githubusercontent.com/u/211931?v=4","gravatar_id":"","url":"https://api.github.com/users/AnHardt","html_url":"https://github.com/AnHardt","followers_url":"https://api.github.com/users/AnHardt/followers","following_url":"https://api.github.com/users/AnHardt/following{/other_user}","gists_url":"https://api.github.com/users/AnHardt/gists{/gist_id}","starred_url":"https://api.github.com/users/AnHardt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AnHardt/subscriptions","organizations_url":"https://api.github.com/users/AnHardt/orgs","repos_url":"https://api.github.com/users/AnHardt/repos","events_url":"https://api.github.com/users/AnHardt/events{/privacy}","received_events_url":"https://api.github.com/users/AnHardt/received_events","type":"User","site_admin":false},"body":"> I'm also concerned that delta_mm_i = delta_mm[i] / MIXING_STEPPERS will have unintended side effects since the planner now thinks that the speed of the extruder movement is now lower than it actually is.\r\n\r\nIsn't that exactly what you wanted? The virtual tool for the autoretraction moves exactly the same amount of filament on all mixing steppers. So each of the mixing steppers has to move 1/MIXING_STEPPERS - and speed calculation is based on that.","created_at":"2018-10-17T08:52:30Z","updated_at":"2018-10-17T08:52:30Z","html_url":"https://github.com/MarlinFirmware/Marlin/pull/12098#discussion_r225834834","pull_request_url":"https://api.github.com/repos/MarlinFirmware/Marlin/pulls/12098","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/MarlinFirmware/Marlin/pulls/comments/225834834"},"html":{"href":"https://github.com/MarlinFirmware/Marlin/pull/12098#discussion_r225834834"},"pull_request":{"href":"https://api.github.com/repos/MarlinFirmware/Marlin/pulls/12098"}},"in_reply_to_id":225760298},"pull_request":{"url":"https://api.github.com/repos/MarlinFirmware/Marlin/pulls/12098","id":222954618,"node_id":"MDExOlB1bGxSZXF1ZXN0MjIyOTU0NjE4","html_url":"https://github.com/MarlinFirmware/Marlin/pull/12098","diff_url":"https://github.com/MarlinFirmware/Marlin/pull/12098.diff","patch_url":"https://github.com/MarlinFirmware/Marlin/pull/12098.patch","issue_url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/12098","number":12098,"state":"closed","locked":false,"title":"New Continuous Filament Mixer","user":{"login":"AnHardt","id":211931,"node_id":"MDQ6VXNlcjIxMTkzMQ==","avatar_url":"https://avatars2.githubusercontent.com/u/211931?v=4","gravatar_id":"","url":"https://api.github.com/users/AnHardt","html_url":"https://github.com/AnHardt","followers_url":"https://api.github.com/users/AnHardt/followers","following_url":"https://api.github.com/users/AnHardt/following{/other_user}","gists_url":"https://api.github.com/users/AnHardt/gists{/gist_id}","starred_url":"https://api.github.com/users/AnHardt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AnHardt/subscriptions","organizations_url":"https://api.github.com/users/AnHardt/orgs","repos_url":"https://api.github.com/users/AnHardt/repos","events_url":"https://api.github.com/users/AnHardt/events{/privacy}","received_events_url":"https://api.github.com/users/AnHardt/received_events","type":"User","site_admin":false},"body":"This implements a replacement for the old filament mixer.\r\n\r\nThe old mixer has several problems. Especially when the segments are short or better only contain a few e-steps, like they are often seen on printers with move subdivision (Delta). Neither the amount of produced e-steps, nor the mix is correct.\r\n\r\nThe old mixer sets up Bresenham-'directions' for each of the mixing steppers. In this rounding errors occur. In short segments this errors are relative big - up to a amount the result is unusable. Because the 'errors' are the same for all sub segments of a move a line is drawn consistently wrong. Even without rounding errors the 'pressure' in the nozzle is not well distribute in time, when the fractions of the mix are equal. If the relation is 1/1 ether both of the mixing steppers step at the same time, or both don't step.\r\n\r\nThe new mixer uses the 'normal' e-steps, but selects one of the mixing steppers for each of the e-steps. The mixer does not know about lines or segments, it just selects the next stepper to be as close as possible to the selected mix.\r\n\r\nI made some tests with old and new mixer.\r\nI used this [config](https://github.com/AnHardt/Marlin/commit/d65722ccd0f7246ccf65e4e2b76e04dd30bd35fa) to test with just a Mega and a logic-analyser.\r\nThe used g-code, the RH-logs, the produced logic-files and a benchmark program to test the algorithm can be found together with some screen shots in the [archive](https://github.com/MarlinFirmware/Marlin/files/2479386/MixingExtruder.zip). The .logicdata files can be opened with http://downloads.saleae.com/logic/1.2.18/Logic+Setup+1.2.18.exe.\r\n![overviewt](https://user-images.githubusercontent.com/211931/46961703-a4eb5b80-d0a1-11e8-9f2d-67b1a6e8f42e.PNG)\r\n![pressure 1](https://user-images.githubusercontent.com/211931/46961712-aa48a600-d0a1-11e8-9e90-c1faa087235d.PNG)\r\n![pressure 2](https://user-images.githubusercontent.com/211931/46961715-acab0000-d0a1-11e8-9243-40dd8320348f.PNG)\r\n![rounding 1](https://user-images.githubusercontent.com/211931/46961718-ae74c380-d0a1-11e8-93ed-9aa0085eceed.PNG)\r\n![rounding 2](https://user-images.githubusercontent.com/211931/46961722-b0d71d80-d0a1-11e8-95be-42dd22d867dc.PNG)\r\n\r\n### Implementation\r\n\r\n* Found some already patched problems with the mixer.\r\n* Renamed `active_extruder` to `active_extruder_b` and `active_extruder_s` to make the variable distinguishable in 'block' and 'stepper'. (Many other different  `active_extruder`s remain at other places.)\r\n* Draw a clean line between parsing the related g-codes (in the parser) and their implementations in 'mixer'.\r\n* Made an object from the mixer.\r\n* Moved all mixer related code into the mixer-object. Including the definition and use of data stored in 'block' and 'stepper' (Macros). Mixer does not have any 'global' data now.\r\n* Most of the methods are just to make data available to the rest of the world. They are tiny and can be inlined.\r\n* The central method is `get_next_stepper(void)` either called from the stepper-interrupt or from the LA-interrupt (if that exists). The mixer should work now together with LA.\r\n\r\n### Usage\r\n`M163` uses an float array to collect the fractions for each of the mixing extruders. This means the user can specify the relation in whatever 'system' he likes. It could add to 1 [0.25, 0.75], in % [25, 75], in whole numbers [1, 3] or any other convenient system.\r\nThis collector is normalized and committed to a virtual extruder by M164. The normalization does not affect the contents of the collector. This enables the user to use sequences like `M163 S0 P1 \\n M163 S1 P0 \\n M164 S0 \\n M163 S1 P1 \\n M164 S1 \\n M163 S1 P2 \\n M164 S2`, where the value for the first mixing extruder not has to be repeated.\r\n`M164` commits to the specified, or if omitted to the active, virtual extruder.\r\n`M165` collects the channel information in the M163-collector and normalizes and commits always to the active virtual tool.\r\nMixing information inline with G1 is intermediately stored in the collector, then normalized and committed to the active virtual tool.\r\nThat means, `M165` and inline mixing information do alter the M163-collector. This should not be a problem as long the user consistently uses one of the systems, or does not trust in setting only one of the factors with `M163`.\r\nNormalizing is done so that the biggest fraction is scaled to 0x80 for 8bit processors, or 0x8000 on the other ones. The different scaling is just and only done for speed reasons. A possible relation of 128/1 seems to be sufficient. The molten material inside the nozzle acts as a lowpass-filter. But when the sequence to represent a color becomes to long [0x8000, 0x8000, 1] it becomes likely the filter is not strong enough and we see the low fraction component pulsing (varying its visibility).\r\n\r\n### Further ideas\r\nTested whether adding some more randomness in the algorithm could avoid visible patterns in the output. It could, but the additional cost for computation is too high. If the lowpass does its work well it's useless.\r\nTested how to integrate a different steps/mm for the mixing steppers could be integrated. Its possible, but the amount of needed changes is huge. Maybe another day.\r\nRunning the algorithm backwards to avoid missing rarely-stepping components in retracts, is also much slower than I'd like to implement.\r\n","created_at":"2018-10-15T15:47:56Z","updated_at":"2018-10-17T08:52:30Z","closed_at":"2018-10-16T08:38:57Z","merged_at":"2018-10-16T08:38:57Z","merge_commit_sha":"f56968ba0b8d4eaccbc9b0c7834cf0cd2f5872d8","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":92052497,"node_id":"MDU6TGFiZWw5MjA1MjQ5Nw==","url":"https://api.github.com/repos/MarlinFirmware/Marlin/labels/PR:%20Improvement","name":"PR: Improvement","color":"c2e0c6","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/MarlinFirmware/Marlin/pulls/12098/commits","review_comments_url":"https://api.github.com/repos/MarlinFirmware/Marlin/pulls/12098/comments","review_comment_url":"https://api.github.com/repos/MarlinFirmware/Marlin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/12098/comments","statuses_url":"https://api.github.com/repos/MarlinFirmware/Marlin/statuses/8f31a8d51bb3d585d1ce09565e9e8caf86aec8b6","head":{"label":"AnHardt:NewColor_Mixer_V04","ref":"NewColor_Mixer_V04","sha":"8f31a8d51bb3d585d1ce09565e9e8caf86aec8b6","user":{"login":"AnHardt","id":211931,"node_id":"MDQ6VXNlcjIxMTkzMQ==","avatar_url":"https://avatars2.githubusercontent.com/u/211931?v=4","gravatar_id":"","url":"https://api.github.com/users/AnHardt","html_url":"https://github.com/AnHardt","followers_url":"https://api.github.com/users/AnHardt/followers","following_url":"https://api.github.com/users/AnHardt/following{/other_user}","gists_url":"https://api.github.com/users/AnHardt/gists{/gist_id}","starred_url":"https://api.github.com/users/AnHardt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AnHardt/subscriptions","organizations_url":"https://api.github.com/users/AnHardt/orgs","repos_url":"https://api.github.com/users/AnHardt/repos","events_url":"https://api.github.com/users/AnHardt/events{/privacy}","received_events_url":"https://api.github.com/users/AnHardt/received_events","type":"User","site_admin":false},"repo":{"id":43525464,"node_id":"MDEwOlJlcG9zaXRvcnk0MzUyNTQ2NA==","name":"Marlin","full_name":"AnHardt/Marlin","private":false,"owner":{"login":"AnHardt","id":211931,"node_id":"MDQ6VXNlcjIxMTkzMQ==","avatar_url":"https://avatars2.githubusercontent.com/u/211931?v=4","gravatar_id":"","url":"https://api.github.com/users/AnHardt","html_url":"https://github.com/AnHardt","followers_url":"https://api.github.com/users/AnHardt/followers","following_url":"https://api.github.com/users/AnHardt/following{/other_user}","gists_url":"https://api.github.com/users/AnHardt/gists{/gist_id}","starred_url":"https://api.github.com/users/AnHardt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AnHardt/subscriptions","organizations_url":"https://api.github.com/users/AnHardt/orgs","repos_url":"https://api.github.com/users/AnHardt/repos","events_url":"https://api.github.com/users/AnHardt/events{/privacy}","received_events_url":"https://api.github.com/users/AnHardt/received_events","type":"User","site_admin":false},"html_url":"https://github.com/AnHardt/Marlin","description":"Reprap FW with look ahead. SDcard and LCD support. It works on Gen6, Ultimaker, RAMPS and Sanguinololu","fork":true,"url":"https://api.github.com/repos/AnHardt/Marlin","forks_url":"https://api.github.com/repos/AnHardt/Marlin/forks","keys_url":"https://api.github.com/repos/AnHardt/Marlin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/AnHardt/Marlin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/AnHardt/Marlin/teams","hooks_url":"https://api.github.com/repos/AnHardt/Marlin/hooks","issue_events_url":"https://api.github.com/repos/AnHardt/Marlin/issues/events{/number}","events_url":"https://api.github.com/repos/AnHardt/Marlin/events","assignees_url":"https://api.github.com/repos/AnHardt/Marlin/assignees{/user}","branches_url":"https://api.github.com/repos/AnHardt/Marlin/branches{/branch}","tags_url":"https://api.github.com/repos/AnHardt/Marlin/tags","blobs_url":"https://api.github.com/repos/AnHardt/Marlin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/AnHardt/Marlin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/AnHardt/Marlin/git/refs{/sha}","trees_url":"https://api.github.com/repos/AnHardt/Marlin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/AnHardt/Marlin/statuses/{sha}","languages_url":"https://api.github.com/repos/AnHardt/Marlin/languages","stargazers_url":"https://api.github.com/repos/AnHardt/Marlin/stargazers","contributors_url":"https://api.github.com/repos/AnHardt/Marlin/contributors","subscribers_url":"https://api.github.com/repos/AnHardt/Marlin/subscribers","subscription_url":"https://api.github.com/repos/AnHardt/Marlin/subscription","commits_url":"https://api.github.com/repos/AnHardt/Marlin/commits{/sha}","git_commits_url":"https://api.github.com/repos/AnHardt/Marlin/git/commits{/sha}","comments_url":"https://api.github.com/repos/AnHardt/Marlin/comments{/number}","issue_comment_url":"https://api.github.com/repos/AnHardt/Marlin/issues/comments{/number}","contents_url":"https://api.github.com/repos/AnHardt/Marlin/contents/{+path}","compare_url":"https://api.github.com/repos/AnHardt/Marlin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/AnHardt/Marlin/merges","archive_url":"https://api.github.com/repos/AnHardt/Marlin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/AnHardt/Marlin/downloads","issues_url":"https://api.github.com/repos/AnHardt/Marlin/issues{/number}","pulls_url":"https://api.github.com/repos/AnHardt/Marlin/pulls{/number}","milestones_url":"https://api.github.com/repos/AnHardt/Marlin/milestones{/number}","notifications_url":"https://api.github.com/repos/AnHardt/Marlin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/AnHardt/Marlin/labels{/name}","releases_url":"https://api.github.com/repos/AnHardt/Marlin/releases{/id}","deployments_url":"https://api.github.com/repos/AnHardt/Marlin/deployments","created_at":"2015-10-01T22:54:37Z","updated_at":"2018-10-16T09:35:15Z","pushed_at":"2018-10-17T08:19:21Z","git_url":"git://github.com/AnHardt/Marlin.git","ssh_url":"git@github.com:AnHardt/Marlin.git","clone_url":"https://github.com/AnHardt/Marlin.git","svn_url":"https://github.com/AnHardt/Marlin","homepage":"","size":79310,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"archived":false,"open_issues_count":7,"license":{"key":"gpl-3.0","name":"GNU General Public License v3.0","spdx_id":"GPL-3.0","url":"https://api.github.com/licenses/gpl-3.0","node_id":"MDc6TGljZW5zZTk="},"forks":1,"open_issues":7,"watchers":0,"default_branch":"bugfix-2.0.x"}},"base":{"label":"MarlinFirmware:bugfix-2.0.x","ref":"bugfix-2.0.x","sha":"2d2cd628c63bdb593468323ada57e79b0851967e","user":{"login":"MarlinFirmware","id":10418365,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEwNDE4MzY1","avatar_url":"https://avatars3.githubusercontent.com/u/10418365?v=4","gravatar_id":"","url":"https://api.github.com/users/MarlinFirmware","html_url":"https://github.com/MarlinFirmware","followers_url":"https://api.github.com/users/MarlinFirmware/followers","following_url":"https://api.github.com/users/MarlinFirmware/following{/other_user}","gists_url":"https://api.github.com/users/MarlinFirmware/gists{/gist_id}","starred_url":"https://api.github.com/users/MarlinFirmware/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MarlinFirmware/subscriptions","organizations_url":"https://api.github.com/users/MarlinFirmware/orgs","repos_url":"https://api.github.com/users/MarlinFirmware/repos","events_url":"https://api.github.com/users/MarlinFirmware/events{/privacy}","received_events_url":"https://api.github.com/users/MarlinFirmware/received_events","type":"Organization","site_admin":false},"repo":{"id":2200856,"node_id":"MDEwOlJlcG9zaXRvcnkyMjAwODU2","name":"Marlin","full_name":"MarlinFirmware/Marlin","private":false,"owner":{"login":"MarlinFirmware","id":10418365,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEwNDE4MzY1","avatar_url":"https://avatars3.githubusercontent.com/u/10418365?v=4","gravatar_id":"","url":"https://api.github.com/users/MarlinFirmware","html_url":"https://github.com/MarlinFirmware","followers_url":"https://api.github.com/users/MarlinFirmware/followers","following_url":"https://api.github.com/users/MarlinFirmware/following{/other_user}","gists_url":"https://api.github.com/users/MarlinFirmware/gists{/gist_id}","starred_url":"https://api.github.com/users/MarlinFirmware/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MarlinFirmware/subscriptions","organizations_url":"https://api.github.com/users/MarlinFirmware/orgs","repos_url":"https://api.github.com/users/MarlinFirmware/repos","events_url":"https://api.github.com/users/MarlinFirmware/events{/privacy}","received_events_url":"https://api.github.com/users/MarlinFirmware/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/MarlinFirmware/Marlin","description":"Optimized firmware for RepRap 3D printers based on the Arduino platform.","fork":false,"url":"https://api.github.com/repos/MarlinFirmware/Marlin","forks_url":"https://api.github.com/repos/MarlinFirmware/Marlin/forks","keys_url":"https://api.github.com/repos/MarlinFirmware/Marlin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/MarlinFirmware/Marlin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/MarlinFirmware/Marlin/teams","hooks_url":"https://api.github.com/repos/MarlinFirmware/Marlin/hooks","issue_events_url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/events{/number}","events_url":"https://api.github.com/repos/MarlinFirmware/Marlin/events","assignees_url":"https://api.github.com/repos/MarlinFirmware/Marlin/assignees{/user}","branches_url":"https://api.github.com/repos/MarlinFirmware/Marlin/branches{/branch}","tags_url":"https://api.github.com/repos/MarlinFirmware/Marlin/tags","blobs_url":"https://api.github.com/repos/MarlinFirmware/Marlin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/MarlinFirmware/Marlin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/MarlinFirmware/Marlin/git/refs{/sha}","trees_url":"https://api.github.com/repos/MarlinFirmware/Marlin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/MarlinFirmware/Marlin/statuses/{sha}","languages_url":"https://api.github.com/repos/MarlinFirmware/Marlin/languages","stargazers_url":"https://api.github.com/repos/MarlinFirmware/Marlin/stargazers","contributors_url":"https://api.github.com/repos/MarlinFirmware/Marlin/contributors","subscribers_url":"https://api.github.com/repos/MarlinFirmware/Marlin/subscribers","subscription_url":"https://api.github.com/repos/MarlinFirmware/Marlin/subscription","commits_url":"https://api.github.com/repos/MarlinFirmware/Marlin/commits{/sha}","git_commits_url":"https://api.github.com/repos/MarlinFirmware/Marlin/git/commits{/sha}","comments_url":"https://api.github.com/repos/MarlinFirmware/Marlin/comments{/number}","issue_comment_url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/comments{/number}","contents_url":"https://api.github.com/repos/MarlinFirmware/Marlin/contents/{+path}","compare_url":"https://api.github.com/repos/MarlinFirmware/Marlin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/MarlinFirmware/Marlin/merges","archive_url":"https://api.github.com/repos/MarlinFirmware/Marlin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/MarlinFirmware/Marlin/downloads","issues_url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues{/number}","pulls_url":"https://api.github.com/repos/MarlinFirmware/Marlin/pulls{/number}","milestones_url":"https://api.github.com/repos/MarlinFirmware/Marlin/milestones{/number}","notifications_url":"https://api.github.com/repos/MarlinFirmware/Marlin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/MarlinFirmware/Marlin/labels{/name}","releases_url":"https://api.github.com/repos/MarlinFirmware/Marlin/releases{/id}","deployments_url":"https://api.github.com/repos/MarlinFirmware/Marlin/deployments","created_at":"2011-08-13T08:07:20Z","updated_at":"2018-10-17T07:47:39Z","pushed_at":"2018-10-17T08:21:35Z","git_url":"git://github.com/MarlinFirmware/Marlin.git","ssh_url":"git@github.com:MarlinFirmware/Marlin.git","clone_url":"https://github.com/MarlinFirmware/Marlin.git","svn_url":"https://github.com/MarlinFirmware/Marlin","homepage":"http://www.marlinfw.org/","size":83358,"stargazers_count":4366,"watchers_count":4366,"language":"C","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":6087,"mirror_url":null,"archived":false,"open_issues_count":883,"license":{"key":"gpl-3.0","name":"GNU General Public License v3.0","spdx_id":"GPL-3.0","url":"https://api.github.com/licenses/gpl-3.0","node_id":"MDc6TGljZW5zZTk="},"forks":6087,"open_issues":883,"watchers":4366,"default_branch":"1.1.x"}},"_links":{"self":{"href":"https://api.github.com/repos/MarlinFirmware/Marlin/pulls/12098"},"html":{"href":"https://github.com/MarlinFirmware/Marlin/pull/12098"},"issue":{"href":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/12098"},"comments":{"href":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/12098/comments"},"review_comments":{"href":"https://api.github.com/repos/MarlinFirmware/Marlin/pulls/12098/comments"},"review_comment":{"href":"https://api.github.com/repos/MarlinFirmware/Marlin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/MarlinFirmware/Marlin/pulls/12098/commits"},"statuses":{"href":"https://api.github.com/repos/MarlinFirmware/Marlin/statuses/8f31a8d51bb3d585d1ce09565e9e8caf86aec8b6"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"AnHardt"}}