{"action":"created","issue":{"url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/7290","repository_url":"https://api.github.com/repos/MarlinFirmware/Marlin","labels_url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/7290/labels{/name}","comments_url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/7290/comments","events_url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/7290/events","html_url":"https://github.com/MarlinFirmware/Marlin/pull/7290","id":242893616,"number":7290,"title":"Low-level integration of MK2 Multiplexer","user":{"login":"tcm0116","id":1868773,"avatar_url":"https://avatars2.githubusercontent.com/u/1868773?v=4","gravatar_id":"","url":"https://api.github.com/users/tcm0116","html_url":"https://github.com/tcm0116","followers_url":"https://api.github.com/users/tcm0116/followers","following_url":"https://api.github.com/users/tcm0116/following{/other_user}","gists_url":"https://api.github.com/users/tcm0116/gists{/gist_id}","starred_url":"https://api.github.com/users/tcm0116/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tcm0116/subscriptions","organizations_url":"https://api.github.com/users/tcm0116/orgs","repos_url":"https://api.github.com/users/tcm0116/repos","events_url":"https://api.github.com/users/tcm0116/events{/privacy}","received_events_url":"https://api.github.com/users/tcm0116/received_events","type":"User","site_admin":false},"labels":[{"id":92052497,"url":"https://api.github.com/repos/MarlinFirmware/Marlin/labels/Improvement","name":"Improvement","color":"009800","default":false},{"id":281783768,"url":"https://api.github.com/repos/MarlinFirmware/Marlin/labels/Status:%20Don't%20Merge","name":"Status: Don't Merge","color":"b60205","default":false},{"id":342950962,"url":"https://api.github.com/repos/MarlinFirmware/Marlin/labels/Status:%20Experimental","name":"Status: Experimental","color":"0e8a16","default":false},{"id":195632380,"url":"https://api.github.com/repos/MarlinFirmware/Marlin/labels/Support:%20Hardware","name":"Support: Hardware","color":"006b75","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":35,"created_at":"2017-07-14T04:21:39Z","updated_at":"2017-10-01T22:13:54Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/MarlinFirmware/Marlin/pulls/7290","html_url":"https://github.com/MarlinFirmware/Marlin/pull/7290","diff_url":"https://github.com/MarlinFirmware/Marlin/pull/7290.diff","patch_url":"https://github.com/MarlinFirmware/Marlin/pull/7290.patch"},"body":"This PR enhances the initial integration of the MK2 multiplexer by generalizing its use beyond the MK2 multi-material upgrade. Strictly speaking, the MK2 multiplexer could potentially be used in a variety of extruder configurations, not just the single nozzle configuration. As such, this PR aims to accomplish the following:\r\n\r\n1. Provide a low-level integration of the multiplexer control signals, such that the presence of the multiplexer is automatically handled in the `Stepper` class.\r\n2. Eliminate the artificial restrictions on the use of the multiplexer to only the MK2 multi-material configuration.\r\n3. Facilitate the use of 2, 4 or 8 channel MK2 multiplexers.\r\n\r\nI don't have an MK2 multiplexer to test this with, so this PR is pretty much theoretical at this point. If anyone has one, or knows how I could acquire one for testing purposes, that would go a long way in validating this capability.\r\n\r\nOne area of potential improvement is with the ability for the multiplexer to be used in a mixing extruder setup. I believe it's theoretically possible since the extruder steps are generated sequentially in `Stepper::isr`. However, the issue is that the direction lines for each extruder would need to be set in addition to the multiplexer control lines before each individual step pulse is generated, which could potentially overload the capability of the Stepper ISR on the 8-bit processors. This would require some analysis that I'm not very familiar with, and probably some testing with the multiplexer and an oscilloscope. "},"comment":{"url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/comments/333410799","html_url":"https://github.com/MarlinFirmware/Marlin/pull/7290#issuecomment-333410799","issue_url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/7290","id":333410799,"user":{"login":"thinkyhead","id":698003,"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":"2017-10-01T22:13:54Z","updated_at":"2017-10-01T22:13:54Z","author_association":"OWNER","body":"> Yes you have so many jobs to make , i understand ...\r\n\r\nFollow up on PRs, fix known bugs in 1.1.x for a 1.1.6 release, port all applicable 1.1.x fixes to 2.0.x, update the website documentation, work on Re-ARM character LCD support, implement CNC features for the MakerArm….\r\n\r\nSometime after I get through these tasks I'll bring more of the SNMM code from the Prusa MK2 fork into the main codebase. I already have the code in place which switches the multiplexer on tool-change and makes sure to reverse the stepper direction for even-numbered steppers. I brought that in with the first PR. However, this is only suitable for testing at this time, and I left comments in the blocks marked with `MK2_MULTIPLEXER` to remind myself what still needs to be added. In particular, when switching colors, the Prusa fork does a few specific moves to retract the previous color and insert the new one. Obviously, this is only suitable for the Prusa Multi-Material feeder, and won't work with custom versions. So, I want to make sure those moves are configurable.\r\n\r\nAnyway, I'm scrubbing through the bug list today, which is how I got here! I'll work for another 6 or 7 hours, and whatever gets fixed and patched by that time I'll tag and release as 1.1.6. There are enough serious issues fixed in the current code that it merits a maintenance release."}}
{"actor":{"display_login":"thinkyhead"}}