Here is a post to gather ideas on speeding up multi-color printing.
03/10/2023 : You can find the last optimized g-code to change filament and vote for it here in the PR made for Bambu Studio :
To make thing easier and centralise everything, I’ll post all further updates as raw text on a message on Github (link above) when/if I update the g-code.
Bambulab + AMS do a great job on printing multi-color, unfortunatly color change is damnly slow.
So I began to study it a bit closer and I will start to share my progress, if you have any ideas & tips please share it
First thing I have done are :
reduce filament path by a half (see picture)
boosting purge speed on filament change GCODE
For now I have reduced the filament change by nearly 25/30 seconds, on a 100 layers print with two colors on each layer, it is a 50 minutes gain, not that bad.
Maybe a bit too much, but it is working well, I never understood why the filament PTFE tube was so long and why the buffer/hub was so far and not directly connected to the input of the printer (with a Y for external spool)
This is a very interesting idea, I thought they looked a bit long but never got around to testing. Now I guess I’ll give this a try, easy enough to reverse if issues, eh?
A couple Q’s -
I see you’re using Capricorn tubing, did you change the tubing for the whole print path?
The angle on those tubes looks pretty severe, won’t that dramatically increase friction or snap filaments that are inherently brittle? Yes, I know they should all feed, but ITRW sometimes even properly dried ones are brittle.
Just had a thought - I know you know about the long discussion on Banding / Ringing type artifacts?. I wonder how Capricorn tubing would affect that as it is a fair bit stiffer than standard PTFE. It would put a different load and “spring” value on the X movement. Thoughts? EDIT:
This is true, and I actually have always used a very high speed (just below the grind point of the extruder) when purging on my Duet/CR-10S with the thought that the extreme pressure would also tend to knock out any stuck bits of the old filament, sort of a “super” purge.
This was just for the proof of concept, I used a very old capricorn tube that I found in a mess and that I am not sure was in a very good condition, I will redo that aswell as designing a new printable Hub/Buffer support.
For now I only used Capricorn for this test, but I think that I will replace the whole tubes with Capricorn, more stiff but also more slippery ( also those inside the AMS as I think that modifing AMS feeder a bit may enable to use TPU without too much trouble, yes I have teste TPU with AMS just to find where was the bottlneck ).
from AMS to hub
In a multi AMS setup, spreading the needed filament across each AMS could speed things up if the machine could pre-prime the filament up to the hub, parallelizing the feeding. This reduces the time spent traveling from AMS to hub
between AMS hub to print head
I have not watched where the print head is at time of material switch but technically retraction could begin the moment the last layer section is printed of the prior color. Parallelizing the retraction with any movement to the chute or prim tower would gain some time.
Adding a filament cutter in the path between feeder at head and feeder at AMS Then no retraction needed. Length of filament can be calculated by volume or approximated. New color could be fed soon after the cut.
Having another extruder would allow more parallel operations. Maybe in the next printer they develop.
Besides these mostly hardware ideas seems like maxxing the feed/retract speed like you already suggested is best.
Do you know how much power can be drained from this cable/printer output ? I have a strip led that use a power plug and I would preferably want to power it directly from the printer
Rather than modifying the max temp, I have removed temperature change g-code, so it use the current temp to purge (because temperature change is very slow)
Removed all M400 too, but not sure of this one
I’ll add your other suggestions and make it available on Printable soon
another idea i had when i was looking at various multi-color prints is that there could be maybe model-specific slicer improvements.
imagine a convex surface, like a smiley face where the back is flat and the face is outwards. if the mouth and the eyes are a different color, would it be possible in some geometries to print the surface color after the main model has been printed? the way the nozzle geometry meets the surface matters of course.
this way you reduce the number of filament changes. i think right now from a slicer point of view, it is still layer by layer so if just a small portion of the model is a different color, again like just the eyes on a face, the “efficiency” of the filament change becomes much worse
@DzzD
Great summary and request! Would love to see improved algorythm to speed up multi color print.
Especially the temp change up+down and the long movements while filament load+unload could be improved. Hopefully Bambulab will take care on this request and provide speed improvement in near future.
I just did my first ‘embedded’ multi-color. It looked like it printed more than one layer (maybe 3?) of one color, then did the switch to the other. But, it was totally subjective. I can see an issue with doing this at all given the tapered nozzle. It widens immediately from the tip, so it would be hard to get sharp edges