• Models
  • Contests
  • Slicer
  • Login
  • Start Here
    thingiverse-iconprintables-iconcults3d-iconmakerworld-iconmyminifactory-icon

    3D GO

    3D ModelsContestsCollectionsSaved ModelsOn a mobile device?

3D GO

Privacy Policy
Flushing Volumes Calibration - V2 and new Gcode 3D Printer File Image 1
Flushing Volumes Calibration - V2 and new Gcode 3D Printer File Image 2
Flushing Volumes Calibration - V2 and new Gcode 3D Printer File Image 3
Flushing Volumes Calibration - V2 and new Gcode 3D Printer File Image 4
Flushing Volumes Calibration - V2 and new Gcode 3D Printer File Image 5
Flushing Volumes Calibration - V2 and new Gcode 3D Printer File Thumbnail 1
Flushing Volumes Calibration - V2 and new Gcode 3D Printer File Thumbnail 2
Flushing Volumes Calibration - V2 and new Gcode 3D Printer File Thumbnail 3
Flushing Volumes Calibration - V2 and new Gcode 3D Printer File Thumbnail 4
Flushing Volumes Calibration - V2 and new Gcode 3D Printer File Thumbnail 5

Flushing Volumes Calibration - V2 and new Gcode

AMTprojects avatarAMTprojects

November 12, 2023

makerworld-icon
DescriptionCommentsTags

Description

What it is

V2 of my endeavour to improve multi color printing and depending on how far you choose to optimize:

  1. Basic information & why you may waste filament
  2. 3mf files to dial in flushing volumes for up to 16 filaments
    • this here is v2 with towers → version 1 uses flat rectangles
  3. optionally an alternative filament change G-code that provides optimized changes and saves on filament

V1 and V2 calibration prints - advantages & disadvantages

V1

  • independent from nozzle size & filament
  • more precise measurements (2mm³ per mm)
  • requires good first layer adhesion throughout

V2

  • print profile needs to fit nozzle & filament
  • less precise measurement (50mm³ per mm)

 

G-code is tested or reported to work with:

  • BambuStudio 1.7.7.89+ (do not activate the stock long retraction feature in parallel)
  • OrcaSlicer 1.7.0+
  • Bambu Lab X1C (P1P, P1S, X1E should work as well)
  • any nozzle size (independent from it)

1. Basics information

The value “Flushing Volumes” set by the user in Bambu Studio is the amount of filament in mm³ that is to be pooped or be flushed into an object. → Attention, it does not go into the optional prime tower, despite that one is printing before any optional object that is bound to be flushed into!

The filament that goes into the prime tower finally is presented separately. It is an additional expense to prime the nozzle after the filament change. With a following retract and pressure advance active by default, a huge prime volume may not be needed anymore.

 

The printing sequence itself makes sense but has some consequences based on the attached calculations.

Once the filament is cut, there are around 107mm³ present between the nozzle and the cutting position and it can't be retracted by the extruder. If a secondary object to flush into “eats” more filament within the present layer than what is specified in the Flushing Volume for that change, no poop may be created. → Great to save filament via printing only a small prime tower (which is required for flush into object), but potentially not so great when it comes to reliability with losing oozed out material from the nozzle or when any retractions would have been required during the 107mm³ that followed.

In the Matrix

Until proper calibration prints are included in slicers, it may be useful to know what to look out for when choosing a flushing volumes calibration print.

  • Filling in all related entries in the flushing volumes matrix, according to the number of involved filaments is a must, but that is where some uploads already leave you stranded half way in - by not including all necessary combinations. Print profiles that only allow for diagonal testing with more than two filaments are of limited use.
  • Calibrating with as little filament as possible is nice. Prints that require guesswork, printing and re-printing until the outcome looks good enough are usually not very efficient nor precise. A measurable outcome ensures reliable results at little work.

2. Dialing in flushing volumes

  • Download & open one of the provided print profiles. → The calibration prints are independent of the used filament change G-code, Bambu Lab's stock code is the preset within the files.

    The files contain various towers. Every 5mm in height a small ridge indicates where a filament change occurs. These 5mm high sections consist of 25 layers, each layer consumes 10mm³ of filament while the single layer base of a tower takes around 400mm³. Modifiers govern the color changes. → 100mm³ roughly equals to 42mm of filament (diameter 1.75mm) in length.
  • In the Filament Tab, make the necessary changes to have it print your individual filaments.
  • In order to get repeatable and measureable results, make sure the concerned flushing volumes are set to an easy value like 100 mm³ (and for good measure the multiplier is 1.00). → A value of 50mm³ allows to observe the resulting color break / mixing of filaments from the very start but may also lead to problems.
  • It is strongly suggested to NOT alter any other settings from the provided .3mf
  • Print it.
  • Via measuring from the start of a section to where the printed section becomes visually flawless in color, the necessary amount of flushing volume for a specific change can be calculated. Formula:
  • The flushing volume tested for in each section is 250mm³. If you find that not to be enough, simply set an initial flushing volume appropriately higher and add it accordingly.
    • Despite setting 0 mm³ of flushing volume there still may be filament dangling from the nozzle after the new filament was pushed into the hotend. Apart from potential oozing, this seems to be a consequence of the AMS's internal code to deliver the filament to the nozzle. → There is nothing I can do about that lost approximately 5mm³ for now.
       
  • The newly calculated flushing volume in mm³ for the specific material change can now be set in the slicer dialogue.

3. Optimized filament change & save filament

Under “Printer settings” → “Machine G-code” → “Change filament G-code”

  • delete (maybe save it somewhere else) the old change filament G-code in the slicer
  • copy & paste the content from the AMS_filament_change_code_vX.X.X_by_AMT.txt file provided in the source files
  • hit save (as a new user preset) and restart the slicer

From now on the printer will:

  • perform faster filament changes by
    • moving directly from printing to cutting the filament
    • just heating the nozzle to the hotter printing temp of both filaments (either it already has that temp or needs it for the next filament anyway)
  • switch on the printhead light while changing, so you can see what happens back there
  • produce consecutive poops (200mm³ to 275mm³ each) if a flushing volume is greater than 400mm³
  • save a bit of filament on each filament change → please read further down in the “To snuffle a nozzle” section

If you want to know exactly what is going on in the code, what each command is supposed to do or even tweak it a bit yourself, I made lots of annotations.

 

Side note:

If you're using a small nozzle like 0.2mm, double check the set “Max. volumetric speed” (Bambu Lab's variable name, otherwise known as “max. volumetric flow rate”) of your filaments. It regularly becomes a bottleneck that adds several hours to a print.

To snuffle a nozzle

Bambu Lab understandably leaned more towards a stable process under a wide variety of circumstances rather than optimizing for filament efficiency.

Besides the filament specific flushing volumes there also is the option to reduce the constantly lost few mm³ during the filament cutting operation by retracting filament before it is cut. The maximum amount of additionally saved filament by pulling filament back from the melting zone is limited by the length of the filament that already became gooie due to the heat influx.

With a length of approximately 25mm (heated part of the stock Bambu Lab hotend + transition zone) the safe length to retain at each and every filament change could well be 20mm => 48mm³.

Because this maximum length might lead to trouble along the way, the values in the given G-code are set relatively low to:

  • 6.24mm → 15mm³ for PLA & PLA-CF,
  • 8.32mm → 20mm³ for PETG, ABS & ASA,
  • 12.47mm → 30mm³ for PA, PA-CF, PC and PET-CF
  • none for unknown types of filament

If you want to play around with these values, please go for it and report back, more feedback may result in greater savings for all.

A fair warning though: Risking molten filament becoming a problem up in the cold end is a realistic mishap and one would have to save a lot of purging material to offset even one failed print.

 

Yes, this additional modification is not interpreted by the slicer. The retracted amount seems to go unnoticed within the slicers estimation.

Trivia

The lower recommended flush volume of 107mm³ is based on the hotend volume from the nozzle to the filament cutting blade.

  • Formula: (PI * (1.75mm / 2) ^2) * 44.5mm = 107mm³

A good reason to not set the flushing volumes too low is the wiping process. If there is not enough mass dangling from the nozzle below the wiper, the chances of flinging that material back into the area of operation is greatly increased.

During my trials I found no noticeable difference between purging material at a constant extrusion vs. in a pulsating manner or with little pulses, so constant without slow downs it is.

Troubleshooting

If you get an error, reading something like “machine_start_gcode Parsing error at line…”, you very likely inserted the code at the wrong place. Try again by restoring the start gcode and only replace the code in the “Change filament G-code” section with the one given here.

 

The here suggested calibration print does the job just good enough, I would prefer a proper & more precise calibration pattern generated by the slicer as well. → If you find yourself here, that probably means still nothing better exist…

The alternative G-code does not do wonders as well, it only is an improvement in details. If your printers poop was an absolute mess before, it very likely will be that way with my code too.

 

If you have found a bug in my code or would want to have a certain feature, simply tell me about it. I will see what I can do.

Disclaimer

Remember, using my code happens at your own risk. There is a lot to cover when it comes to creating a reliable process over a wide range of (even seemingly identical) machines and materials. - I am not Bambu Lab, instead just a next best dork online who thinks he can improve some stuff and spare you the hassle of doing it. A future firmware or slicer update may result in this code not working properly. Keep that in mind and test/use it with care.

License:

Standard Digital File License

Related Models

#3DBenchy - The jolly 3D printing torture-test by CreativeTools.se preview image

#3DBenchy - The jolly 3D printing torture-test by CreativeTools.se

CreativeTools profile image

CreativeTools

90,766

Bambu Lab P1 / X1 / X1C / X1CC Filament Spool Switcher & Winder if you use AMS preview image

Bambu Lab P1 / X1 / X1C / X1CC Filament Spool Switcher & Winder if you use AMS

Miklos Kiszely profile image

Miklos Kiszely

18,600

Filament spool storage box + silica & filament tag preview image

Filament spool storage box + silica & filament tag

Kahany profile image

Kahany

1,812

Modular Mounting System preview image

Modular Mounting System

HeyVye profile image

HeyVye

69,051

Filament Clip | Grandma's Favorite Filament Clip preview image

Filament Clip | Grandma's Favorite Filament Clip

Extrutim profile image

Extrutim

32,216

Filament swatch preview image

Filament swatch

Mr.Brom profile image

Mr.Brom

889

1.75mm Filament Clip preview image

1.75mm Filament Clip

walter profile image

walter

64,802

Pastamatic - Filament Spool Winder for Bambu Lab X1C/P1P AMS (level winder with self reversing leadscrew) preview image

Pastamatic - Filament Spool Winder for Bambu Lab X1C/P1P AMS (level winder with self reversing leadscrew)

GekoPrime profile image

GekoPrime

10,820