-
Notifications
You must be signed in to change notification settings - Fork 60
Multi-Tool/Multi-Material support #161
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
@codingcatgirl thanks a lot for your pr. I really appreciate it! Wow, I will take a look on the implementation in the next days..... will be a great challenge, because I also already changed a lot in the sourcecode (including multi-tool support)...but I didn't pushed/released it to git-branch. |
Hi @codingcatgirl, |
I'll take a look at this bug tomorrow! Also, i'll have to submit a pull request for your Cost Estimator plugin, as it tries to call a javascript function that (now) doesn't exist any more because i replaced it with one that supports multi-tools. |
fyi: I just removed the brackets and now it works. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
First review is done! Very good.
The odometer-part is still open, because the spoolmanager use the initial version of filamentmanager-plugin (V1.6.0). And there are some bugs e.g. measuring the length.
The latest release of filamentmanager-plugin use newodometer.py
I pushed my latest changes, including your pr to master, but I didn't build a release (odometer-topic), so you can checkup the latest implementation and can take a look on that.
Thanks again!!!!!
Btw. ...dieser PR kam genau zur rechten Zeit. Hatte mich in meiner Implementierung des MultiTool-Support total verrannt!
"spoolName": spoolModel.displayName if spoolModel else '(no spool selected)', | ||
} | ||
if spoolModel is not None: | ||
if checkForFilamentLength and not self.checkRemainingFilament(toolIndex): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Definitely a mistake! I noticed this while printing something yesterday and wondered whether i messed somethung up there :) You found it!
I'm not sure i have time very soon to take care of the remaining stuff, but i'll see when i have the time. Totally fair that you didn't make a release, it's not a good idea to release it until you can release a compatible update for costestimator :) I'll see what i can do but yes, you're welcome for the changes and i'm glad i can start doing multi-material printing soon! I also have my eye on that one ticket about having the spoolmanager select the right filament based on the gcode. I'm building my own multi material unit with 24 slots right now, so i will have all my filament loaded in it and would want octoprint to automatically translate all the tollnumbers in the gcode to the "correct" toolnumbers on the mmu :) Not sure, possibly might also just make it its own plugin but it definitely will have to work together with spoolmanager :) |
I finished the odometer-fix and improved some UI behaviour. Now, I will take a look into the CostEstimator-Plugin (CE). Wow, 24 how does this thing looks like? Again, thanks for your help! Olli PS. spoolselection via gcode is a really nice feature....I will wait for your pr ;-) |
Hey, awesome! Glad i could help you speed up development on this :) 24 slots… well. Honestly, i modified the prusa MMU (will publish it when it's done and the firmware is coded) to put the slots closer together, that makes it still less than 25cm wide, so it easily fits on top of the printer. It's modular, so you print just as many 6-slot-blocks as you want and screw them together with the end pieces :) Spoolselection via gcode is absolutely a thing i'll do then. Making it a PR for your repo would make sense, since it only makes sense with a spool registry anyway :) |
Really nice pull request @codingcatgirl and the code quality seems to have improved as well. Great work! That modified MMU is something that I am interested in as well... I really don't like having to switch filaments with the MMU so if I could load up a whole bunch that would be so much more convenient. I already replaced the MMU outlets with 6mm PTFE tubing + connectors to reduce friction (4mm works great for new filament but not if there's a small blob at the end) but that would be even more useful. |
Here's a sneak peek of how it looks :) Right now my test unit "only" has 12 slots, because that's enough for testing – and yes, it is still barely wider than Prusa's original version. Also, of course the carriage isn't mounted right now. Basically, it's the Prusa mmu, but the pulley part is flipped with the feeder gear on top and the idler bearings on the bottom. So far it's looking good, i'm still writing the software :) I also modified some parts of the MMU to use more standard parts so it's easier to diy without having to get prusa-specific proprietary parts, though i'll still release a version wehere those parts aren't modified so you can reuse parts of Prusa's MMu more easily. Generally i'm trying to reduce cost as much as possible. You should be able to run it on an Arduino UNO+CNC shield as a electronics without any issues even. In fact, that's what i'm testing it on. :) |
Very nice :) While I love the MK3S, I have grown to loathe the MMU because of all the issues. This looks like it could be a large improvement in both usability and functionality. |
Firmware has been finished today, but i'm still missing some part to move forward to proper testing :) What are common issues with the standard MMU? |
I still regularly experience jams due to stringing when retracting. Additionally retraction sometimes results in blobs which are big enough to prevent proper filament loading. This part might be filament dependent though. I often use cheap sunlu petg. And before I upgraded to the 6mm ptfe tube I would notice under extrusion at times. The most annoying part of all though... when it's not working you often need to unscrew the top part to clear the blockage which really should be a fast and tool-less operation. |
Oh, well to those things i can say: The retraction, imo, depends on the manner in which the filament is retracted. there's another project to build a filament multiplexer (sorry, if forgot the name, it has a website and is on thingiverse) and in the documentation it provides a precise before-tool-change gcode that the author says you should absolutely use to get the perfect tip after each unload. I definitely plan to use that G-Code myself :) I bet it would also help with the original MMU. Also, yep, cheap filament of course isn't such a good idea. I've ordered some prusament a while ago and the difference was so striking that i haven't gone back. Does the original MMU not use 6mm PTFE? I assumed it did. Also, yep, you'll never have to unscrew the top part with this one for obvious reasons :) |
SMuFF is the name of the project! And here's the G-Code https://github.com/technik-gegg/OctoPrint-Smuff. Look for "MMU Ramming Sequence". False alarm thoguh, the sequence used is the one used by Marlin, but the project author says that it creates an almost perfect nozzle tip each time. Huh! I wonder if the MK3S firmware doesn't use the same ramming sequence? |
I know, I've got quite a bit of prusament as well but especially for quick test prints I like the cheap sunlu. It's only about 50% of the price. Generally it works quite well honestly, but it could be a factor.
No. It uses 4mm which is indeed annoying as blobs don't fit |
Oh sorry, i must have mixed something up. I actually expected it to use 4mm… i mean that's what i see in the design xD Didn't know that was a bad idea though. Any modifications for 6mm on the main tube should totally work with my version |
I mean 2mm inner diameter, 4mm outer. That should be enough for filament but I've often seen blobs getting stuck if something went wrong with the print out something. So 4mm inner diameter and 6mm outer diameter makes it all much smoother |
Yeah that totally makes sense. For a bowden extruder it's certainly not feasable, but since the MMU is only supposed to feed the filament into the printer… I'll have to say thought that you'll only be able to use it for the ptfe tube that comes out of selector in my build. The simple reason: The filament slots are only 5.4mm apart :) |
Perhaps you could go staggered? It might not even be an issue with your design but I've noticed it helps (or feels like it helps) a bit with the occasional under extrusion issues for me. |
What do you mean with staggered? |
Ah yeah. I thought about something like that but it would be absolute horror, since the selectur would have to move up and down :D |
Nah, only the ptfe inlet would need it. It could end up in the same place. As long as there's something to guide it |
Okay, now im confused and also intrigued. Could you maybe make a sketch that explains what you mean? |
Please forgive my shoddy CAD work, I'm pretty new at this ;) The tubes would come in from the bottom in this view and the filament would come out at the top. For the actual MMU the orientation would probably be slightly different |
Ah! Well, the problem is that on the other side of the tube you'd need to have the same arrangement, because the pulley carriage can't move up and down either :D |
On a different note though… i just noticed yesterday that you can get PTFE tube with 4mm outer diameter and 3mm inner diameter, which should also solve the problem? |
I think that would work as well :) It's also not the worst problem in the world and if you can easily access the head you can simply snip it so you never encounter this issue of course. For regular MMU2s I found it to be a huge improvement, but it's honestly a bit of a workaround for a problem that shouldn't exist ;) |
Hi!
Since i really needed Multi-Tool support in this Plugin right now, i decided to just implement it myself :)
Simply put: It's done and this is how it looks:
List of Changes/Features:
Please test and merge and release as a new version :) Thanks! <3