Ideas on boosting speed for multi-color printing with AMS

Awesome, thank you! Going to give it a try now and will report back my results.

So far so good, saving me tons of filament and time on each multicolor print.

1 Like

hi and thank you for all the hard work that you did, it’s amazing, but I’ve copied the change filament g-code in the section in orcaslicer in printer setting but the printer doesn’t change the filament, it purge to near to the door and restart the print in very small amount of time and restart the print with the same filament, how I’ve made wrong ?

----------SOLVED-------

I solved the problem coping the g-code directly in the filament g-code section in the printer settings (before I’ve downloaded the fdm_bbl_3dp_001_common.json and pasted in the Bambu (and Orca) directory, but they don’t work) . it works great ! thanks!

may be a stupid question, have read most of the posts on the filament change gcode, do we add your code or paste over the original code.
also where is the gcode itself? struggling to find it.

Dont worry, question are never stupid :wink:

You have to replace the whole g-code in the ā€œChange Filament G-codeā€ section of the printer profile you want to use.

You can get the latest g-code from this link :

From now and to make thing a bit easier, I will maintain the g-code on the GitHub pull request (the link above).

Once modified I would suggest you save this printer profile with a new name, so you can keep the original Bambulab/Orca profile unchanged.

you sir/maam are a legend, just input this gcode in bambu slicer and it saves 9 hours on a 2 day 15 hour print. awesome stuff

Please make a try on a smaller object, I would not like to be responsible of a two days print failure ^^

Also, normally you dont have to use purge tower with this g-code, at least I dont use purge tower anymore for a while now, and have not got any issue until now.

ye lol got a 2 hour print on standby for testing

Two follow up questions:

  1. You say you don’t need to use a purge tower, so you just disable that option? I know using your code mine has still been making one.
  2. How do you prevent bleed thru on colors with your code and no purge tower? Example, printing this ghost 2 color ghost
    in all white except the X stitches in the eyes are black. It came out with a light gray band all around the body in the layers for the eyes.
    Thank you!

The only way to speed things up is to reduce the PTFE lengths and bends in the PTFE tubes. Reduce friction and length of the PTFE tubes.

I think if the AMS was built differently, cut in two parts between no2 and no3 feeders then re-connected with feeder 1 & 2 facing feeders 3 & 4. Fit the AMS Internal Hub Unit directly below the 4 feeders and then place the entire assemble on a frame 200 mm above the printer and have the AMS Internal Hub Unit feed directly into the filament buffer then into the extruder via a shorter PTFE tubes, the speed of filament changes could drop to 20 seconds or less. This will still not resolve the the wasted filament purged to clean the nozzle. This will also shorten, remove many bends and loops in the PTFE tubes and reduce filament getting stuck in the bends inside the AMS and between the AMS and printer. This would only work effectively for one AMS, if more AMS units are required the units would have to be mounted above the printer on a shelf feeding to the multi filament buffer straight to the extruder. This would make the printer and AMS unit profile higher by 150 to 200 mm’s.

1 Like

The times of moving the filament through the PTFE are the least of it. I am printing something and need support for parts. I was considering a different filament for support. Then I calculated the whole thing in Bambu Studio. I would need about 338g of the main material and several grams of the support material. But wait a minute … before I selected other support material it was 4 grams less of the main material! So I changed everything again and I need 4 grams less of the main material; and in addition I saved all the extra support material? - Hey … hex hex, is that magic? - And I save valuable time because I don’t have to change filament. - Wow!

Good evening!

Well actually as explained in the first post of this topic this help to reduce the PTFE length but this is only half of the job, upgraded filament change g-code do the other half

1 Like

Yes I only disable the purge tower as I realized that it was not required even when doing a single black point on a layer.

Purge tower on Bambulab is not intended to purge filament but rather to wipe the nozzle after filament have been purged in purge bucket.

The g-code after purging is slitly different : this is why I think the purge tower is no more necessary, well, actually I did not target to do that intentionaly, I realized that having make the wiping onto the PTFE faster, aswell as doing a slower filament spilling at the end and folowed by a little retraction, and a faster move to the next positon was making the purge tower no more required.

Note that I was already not using purge tower on my old 2 color Geeetech A20M with a purge bucket.

You may try to increase a little the purge volume if your color transition is not looking good :
image

im currently using the stock gcode for fillament change but with the modification from Printables to reduce fillament waste. he does this by adding a retract before the cut and extrude that amount extra after the fillament change:

from what i can find in your code you havent implemented this and i was wondering if was a choice to not add this. and do you see a issue with adding this logic?

I did but maybe I did not publish everywhere or anywhere, cant remember, I think this is definitly a great addition, so yes this is a choice but the choice is to add it :slight_smile:

I realy need t clean this mess, and have to maintain the github pull’s request and erase all code from this thread, it make too much confusion.

I will post latest code after few tests this WE (01/12/2023), maybe I will end to put it on Printable too, dont know what’s the best place, now I think that it is Github but not sure because it require to read the whole thread, Printable looks probably more straighforward for end users.

3 Likes

yust update the code in the pull request? i think thats the most importend so it might end up in the program. i think the retraction before fillament change should be in the default program if it doesnt cause reliability issues.
thx for all your effort!

I put a new version that is including many advice from this thread and some other new improvment I made, I will be very happy and it will be very useful to have a maximum feedback :

Once again, with this version purge tower seems unnecessary, you should disable it

1 Like

@DzzD, many thanks for your work on this. I’ve used your former version for some multicolor prints and it saved me arround 10 - 15% print time, depending on the model and the color setup. But one thing I had to change:

E{new_filament_e_feedrate * 1.5} or E{old_filament_e_feedrate * 1.5}

If the factor is set to more than 1.0 the extruder doesn’t feed the filament smoothly. It makes tick sounds as it skipping steps while feeding. This sounded not healthy. So I reduced it, but I think this speed is a important part to speed up the filament change. Anyway, thanks for this. :slight_smile:

1 Like

Thanks for giving feedbacks, I would never be able to make industrial scale test, yes this factor is fully dependent upon filament and printing temperature,initially I was even using 3 for this factor^^ , but after some tests I found that 1.5 was looking ok in many cases.

I am planning to release a special calibration version of this code with specific 3D models, so it wouls help chossing purge factor ā€œon flushing volumeā€ popup, aswell as this factor (1.5)

EDIT: There was a typos on the Github code, just changed it

Yet another version :

I was a bit in hurry when I posted last version last WE and their was a cupple of issue

Once again all feedback are welcome !

One thing that could be helpfull from Bambulab Studio would be a new parameter in filament setting just next to Maximum flow rate, wich could be named ā€œVoluetric purge rateā€ as a percentage or an absolute value, maybe if I find some enought free time I ll try to add this.

EDIT: done some other correction and go to a single pulse purge block rather than 4

EDIT2 : added a video on Github of latest version wiping

3 Likes