Changing color filaments with different temps is a challenge 3.8.1 & 1.06
I am printing several colors that have different temperature ranges. I've noticed that when it comes time to change, the temperature begins to increase or decrease immediately and prior to the actual unload of the current filament. This means that the ejection temp is wrong and the tips are not correct. Then on the next attempt to load, the MMU jams.
Would like to see the temperature not change the existing filament until the retraction has actually begun.
RE: Changing color filaments with different temps is a challenge 3.8.1 & 1.06
I have solved it with the Post Processing Script of the following post: https://forum.prusa3d.com/forum/original-prusa-i3-mmu2s-mmu2-general-discussion-announcements-and-releases/mmu2-real-multi-material/#post-122360
I pointed out the problem on GitHub (Prusa slicer should manage temps in a better way) and on the Forum but till now I had no lucky to get things fixed.
Please consider the nozzle temps is the major setting that I found to get good filament tips during the unloading process, I would recommend to get even 2 temps (a printing temp and an unloading temp so to get a more reliable unloading procedure).
RE: Changing color filaments with different temps is a challenge 3.8.1 & 1.06
Those are all good suggestions for their temp script. I hope they read this and add it to the next update of the Slicer. I'm struggling because even PLA can have a wide range of temps. Just not sure if the MMU can really work well without this setting option. They cannot simply make a statement like, "this works best if you use filament with all the same temps." That won't work and makes the device very limited, which is not the Prusa way. I really like my printer. This would help me love it.
RE: Changing color filaments with different temps is a challenge 3.8.1 & 1.06
What I have foud too is that ambient temp makes huge difference with different PVA filaments.
What it was hardly manageble by mmu2s with 19°celsius went very good with 21-22°.
With low temp the filament tend to be hardered to bend so load and unload becomes more and more difficult to go in a good manner.
RE: Changing color filaments with different temps is a challenge 3.8.1 & 1.06
Hello,
I implemented the temperature change during filament change, in the very first version of DRIBBLING, but then on subsequent rework I deleted the code, due to the fact the changing temperature required additional time, and I did not want wait for ages for a print.
In theory I could reimplement, but then the print time increase a lot. The print temperature it was using were the one you set in the current filament profile that you use in the print, so as example, image your two colours filaments:
PETG - Print Temp: 235
PLA - Print Temp: 198
When you need to change, dribbling plays with the filament and extract it with correct shape (an this already take some time)
But then it needs to cool down by 37 degree and wait until the temperature is reached BEFORE inserting the PLA filament.
This could take from 30 to 50 seconds. The same will happen from PLA to PETG, however heating the nozzle is faster than cooling.
Imagine what happen on 1000 changes..., even for a small object it will take just 13 hours of "wait" + the effective print time 😱
That was the NO-GO for me to continue the development, and delete the code.
Regards
RE: Changing color filaments with different temps is a challenge 3.8.1 & 1.06
@antimix
I am sorry but I cannot agree with you. Please consider that during unloading the temp i very important to get a good tip shape. If you are going to use soluble interfaces or supports you are going to use PVA in combination with PLA, PetG or even Abs.
PVA works at less than 190° while ABS works with more than 240° there is non way to get a smooth filament without having mmu2s stuck with bad tips.
You do not wait a lot since you can use temp inertia to clean old filament from the nozzle during the load of new filament.
the it could be a good idea to set temp tolerace during cool down and load/unload processes.
then you could set if and when and if the printer has to wait for getting the right temp.
By the way have you ever tried to use Pva? If you succeded to unloading it properly by mmu2s, could you tell to me which settings are you using?
regards,
Michele
RE: Changing color filaments with different temps is a challenge 3.8.1 & 1.06
@michele
may be I had a false feeling of time waste. However is not a problem for me adding the code again for temperature change.
But this time I would add a new configuration flag to enable/disable the temperature change feature, so that who do not plan to use it can disable it on gcode generation.
Regards
RE: Changing color filaments with different temps is a challenge 3.8.1 & 1.06
@antimix
That sounds great and lets good chance to make tests with MMU2S and different filaments.
Looking forward to testing your next version.
Bests,
RE: Changing color filaments with different temps is a challenge 3.8.1 & 1.06
I don't know how to modify the code, so I can't test this, but at least for me, I think my only issue is that the temperature BEGINS to adjust before the element is ejected. I would like to see the code and shift that at the same moment that the filament is ejected, THEN the signal is sent to begin making the extruder temp change. I don't think we would need to wait until the temp has fully changed, but I could be wrong.
I don't think it will make a huge difference as the cooling or warming between filaments is taking place while the filament is ejecting, changing, wiping on the tower. I would imagine that in most cases, the temp will be correct before it moves off the wipe tower. May need to slow down the wipe speed or perhaps this will mess with the tower? I just want to get rid of the ejected filaments with balls at the tip or long strings. This is causing the print to stop way too many times and forcing me to cut the tips and continue.
RE: Changing color filaments with different temps is a challenge 3.8.1 & 1.06
No, I think we have to change the temperature and wait to ensure the temp is reached.
In addition we would need a new filament parameter: "Temperature for dribbling".
I print always at lower temperature range, so that the dribbling shape gives better results to me with less strings with some PLA I have. HOWEVER I recognize that someone may need to print at higher temp range.
With the current version that would affect the final results. With a specific parameter, I could set the temperature before performing the dribbling shape, allowing to print at any filament range manufacturing temp (e.g. 190-215, and choosing a specific temp for that filament to dribbling shape, e.g. 190)
At the end I think that the logic should be:
- Start the movements (and set the dribbling temp without waiting)
- Dribbling to shape the filament (it should be at the specific dribbling temp)
- Issue the UNLOAD COMMAND
- Raise or lower the temp based on the next filament temperature, and wait for it
- LOAD the new filament
- PURGE THE COLOR (we should be sure the temp is correct when start here)
Always wait for temp. If no wait is done, e.g. from 195 -> 240 and the temp is not still reached after the filament load, the immediate print could jam the nozzle (e.g. printing PETG at 195°). On the contrary from ABS 240° to PVA 190° you may "burn" the PVA into the nozzle.
Regards
RE: Changing color filaments with different temps is a challenge 3.8.1 & 1.06
Interesting that you are printing ABS and PVA. That must be a real challenge!
I suppose my original post and concern was not so much trying for such a huge difference but just for the more common PLA temp variations (one PLA to another PLA) or possibly PETG to PLA. I, for one, would be willing to try the temp shift on the fly...just at a slightly later moment. It seems that my printer heats and cool fairly quickly. I believe within the time of the wipe.
Since it seems that the temp is beginning to adjust prior to the unload, seems like the temp would be better if the shift began at the time of ejection as opposed to prior to ejection (what it currently does). That would hopefully at least solve the problem of the ejection tip not being correct. That means that by the time the new filament is brought in, the temp will be inbetween the old and new temp....better for the purge. If you wait for a temp to adjust before you purge, that would seem to be a big problem as well.
If anyone knows how to adjust the current script to simply move the temp shift point to be at the same moment that ejection begins, I would love to test and see if that solves my problem and why I started this thread. There could be, of course, others that want or need to make a shift and fine tune all of these settings and more settings. That is fine. I'm just interested in making a slight shift automatically and without more work and see if that gets me close enough.
I personally (fine if others want more) don't want to have to tune each and every print and try to guess what each setting should be. Have a print fail. Go and test again. Tweak small things. Fail. Try again to tweak. Seems like the current script is pretty close for my purposes (only PLA and PETG). Suppose I can start digging through the code, but others may be familiar with it and perhaps guide me in the right direction?
RE: Changing color filaments with different temps is a challenge 3.8.1 & 1.06
I temp strategy is the main point since just after the filament switch you need to purge the old filament that still remains in the nozzle.
In this way it should be better to remain ina temp between the old filament temp and the new filament temp so that the noozle do not get stuck by a filament at a too low temp but it can avoid to burn the new filament (even if it is better to burn some new filament on the cleaning tower that having the nozzle stuck).
Given this I would propose the following tem strategy:
1- Start the movements (and set the dribbling temp without waiting)
2- Dribbling to shape the filament (it should be at the specific dribbling temp)
3- Issue the UNLOAD COMMAND.
4- LOAD the new filament and start cleaning
5- start to PURGE THE COLOR
6- after few seconds Raise or lower the temp based on the next filament temperature. (it could be also a temp in the middle of the two temps )
7-At the near end of purge wait for the new temp (to be with the perfect temp before start printing again)
8-End the purge and start to print
9- PURGE THE COLOR (we should be sure the temp is correct when start here)
What do you think about this logic?
Bests
RE: Changing color filaments with different temps is a challenge 3.8.1 & 1.06
@michele-b3
Hard to say what is needed until we actually try these. In my scenario, most temp difference are about 10 to 15 degrees. If the temp shift began to happen at the point of unload, I'm guessing it would be fine to not even wait.
The current script does not wait, does it? Not sure. Hard for me to tell because of what I'm doing. Perhaps your logic is required if someone is doing an ABS to low-temp PLA, which I cannot imagine. In a typical PLA to PLA with temp variation (which I have a lot of....red filament very low, clear is higher end of the range), I'm just guessing that is would work fine to not stop. If there is a variation that is really large (>20 degrees), then test for the variation and perhaps stop and wait? If <20, just keep moving and the temp will be ready while still wiping.
Just need to test some options. Me personally? Just give me the shift point starting right at the unload so the unloading filament gets the correct eject temp and not a ball or string at the end. Let the temp adjust to the correct temp as the new filament is being loaded and while dribbling. Just using the thumb held up to one-eye rule here and feel it would be enough for those making a 20 degree or less shift. Perhaps more? Perhaps less? This doesn't require new logic added other than the moment the temp change begins. Can we try some options between us all and see what happens in our scenarios?
RE: Changing color filaments with different temps is a challenge 3.8.1 & 1.06
Hi guys,
Just found this thread. For clarification: The mmuGcodeParser script is doing more then just waiting for the temperature. Actually it's one of the parameters which can be even deactivated. It also trying to save some time for heating/cooling.
The strategy being used is different for Cold->Hot and Hot-> cold transition. You can read the details in the python file. Everything is commented. In general it's trying to maintain the temperature which is being set for the material. If the difference is big, it's getting more important. For example PVA to PLA+ you can easily have 40C difference. In the original PS you have situation where you purge too cold and sometimes too hot with all the negative consequences. I'm using this script every time now.
@antimix
I would really like to see this implemented in the PS but I don't have time right now to do the development. If you have any questions in regards to the strategy, please feel free to PM me. I'm pretty sure dribbling and correct temperature is going hand in hand.
Often linked posts:
Going small with MMU2
Real Multi Material
My prints on Instagram
RE: Changing color filaments with different temps is a challenge 3.8.1 & 1.06
@michele not yet perfect. I see some issue. Look to this specific case:
we are switching from PLA at 198° to ABS 240° With pla dribbling temp 195
Given this I would propose the following tem strategy:
1- Start the movements (and set the dribbling temp without waiting) - go to 195
2- Dribbling to shape the filament (it should be at the specific dribbling temp) - now 195
3- Issue the UNLOAD COMMAND. - now 195
4- LOAD the new filament and start cleaning - (still 195)
5- start to PURGE THE COLOR - trying to purge ABS at 195 cause a JAM
set the temp to the LOW-RANGE (230°) of the specific product, NO WAIT
6- after few seconds Raise or lower the temp based on the next filament temperature. (it could be also a temp in the middle of the two temps )
7-At the near end of purge wait for the new temp (to be with the perfect temp before start printing again)
8-End the purge and start to print)5
9- PURGE THE COLOR (we should be sure the temp is correct when start here)
Probably we must change to:
1- Start the movements (and set the dribbling temp without waiting) - go to 195
2- Dribbling to shape the filament (it should be at the specific dribbling temp) - now 195
3- set the temp to the new filament LOW-RANGE (230°) specific product, NO WAIT
4- Issue the UNLOAD COMMAND. - temp is now around 196-199
5- LOAD the new filament and set the temp to the LOW-RANGE (230°) of the specific product, WAITING
this ensure we are really at least at 230 before trying to extrude ABS
7 - start cleaning and PURGING THE OLD COLOR - we will purge residual PLA reasonably at 230...
but it will be cleaned by ABS extrusion.
6-At the end of purge, set the temperature to the real print temperature of the new filament (240) NO WAIT
We could wait for the new temp but we could save time not waiting.
7- start to print)
This shold work well.
THIS MEANS:
Add two new parameters to the FILAMENT section of DRIBBLING/PrusaSlicer:
1) MANUFACTURER TEMPERATURE Low range
2) MANUFACTURER TEMPERATURE High range
We will use them also on the opposite, moving from ABS top PLA in order to purge.
- Do you see any other improvement ?
Regards
RE: Changing color filaments with different temps is a challenge 3.8.1 & 1.06
@antimix
I would like to evaluate with you step by step:
1- Start the movements (and set the dribbling temp without waiting) - go to 195
2- Dribbling to shape the filament (it should be at the specific dribbling temp) - now 195
3- set the temp to the new filament LOW-RANGE (230°) specific product, NO WAIT
-> First point: the weakest point in the filament switching procedure is unloading. If you get a wrong tip here, you will get stuck sooner or later.
I see two option:
either we have an unloading temp for each filament (I often have to print with a lower than wanted temp for unloading sake (e.g. PVA+))
or we postpone this step after the unloading.
Please consider that setting a specific unloading temp would not affect time in any way since if it is equal to printing temp you would hav no wait.
4- Issue the UNLOAD COMMAND. - temp is now around 196-199
->With option 1, you would unload in a best condition.
5- LOAD the new filament and set the temp to the LOW-RANGE (230°) of the specific product, WAITING
this ensure we are really at least at 230 before trying to extrude ABS
->Here we have a two status in one:
-First you will purge the old filament from the nozzle (so we should be careful to be too high to avoid to burn this out), then you will definitely clean and stabilize the new filament before printing (so we should modify the temp to operational temp).
As a solution I would suggest a maxTemp in filament profile so that while switching the system would select something not higher the max operating temp the old filament and minTemp that is the lowest temp where you can load a filament. The temp used for loading would be min(maxTemp(oldFilament), minTemp(newFilament)) if ther is overlap the compilation of gcode should halt.
So I would definitely propose:
-an unloadingTemp to get perfect tip.
-maxTemp to avoid nozzle clogging with filament burn
-minTemp to avoid new filament cannot be extruded during the purging procedure.
7 - start cleaning and PURGING THE OLD COLOR - we will purge residual PLA reasonably at 230...
but it will be cleaned by ABS extrusion.
6-At the end of purge, set the temperature to the real print temperature of the new filament (240) NO WAIT
We could wait for the new temp but we could save time not waiting.
7- start to print)
What do you think about this?
Bests
RE: Changing color filaments with different temps is a challenge 3.8.1 & 1.06
@michele-b3
I think you've addressed all my concerns and expressed where I also thought the proposed steps could cause a problem. Since all filament should be coming with a min/max temp. Those are easy values to enter and store. Then, the only thing we need to address is unload temp, if that is different from print, and YES!!!! if we can print at the temp we want but then set a proper unload temp, I feel that everything is addressed.
This sounds like a better while not adding complexity. To be able to set and forget the unload temp for a filament and play around with different print temps seems to almost be a requirement.....must have. To enter the high and low for a filament would help avoid more problems and could have checks also built in to make sure you don't try to set a temp higher than that (even from the TUNE with live print?).
I like it. Seems like this could really be key for making MMU work smoother and prints could out better every time.
RE: Changing color filaments with different temps is a challenge 3.8.1 & 1.06
@ggriffin-mbi
great to see we are on the same point.
@antimix
what would you think to give to this a try on Dribbling version of prusa slicer?
if that works it would even great to convince Prusa to implement it on the main branch.
What do you think about it?
RE: Changing color filaments with different temps is a challenge 3.8.1 & 1.06
@michele-b3
Hi Michele, I am still in vacation. 😀
When I will be back, I will to put the hands on the Dribbling code.
I will keep you in touch, since this will be a major change on Dribbling, adding several new features.
Probably I will have also to migrate it to PrusaSlicer 2.2.0 that is almost ready now (at -alpha2 at the moment) so, if it will be ready, I will first migrate Dribbling to 2.2.0 (as it is now, no new features) , and then I will add the new features in a subsequent release to simplify the coding. Otherwise I will implement the new features on Dribbling 2.1.1
Regards
RE: Changing color filaments with different temps is a challenge 3.8.1 & 1.06
@antimix
You are my hero. Mega envy to you. 🤣