Flow Calibration

Okay, so after trying to get answer to these question on every possible platform (Discord, Facebook, Github), I was told to ask them here.

So here we are:
Flow Calibration · Issue #348 · bambulab/BambuStudio (github.com)

Questions:
What does the flow calibration do exactly?
Does it actually adjust the flow ratio or is it just a linear/pressure advance calibration?
Where is the calibration data stored and how long does the printer retain it?

2 Likes

so far i am aware and that i noticed it does adjust the flowrate in a certain marge
when i print with new loaded filament and i do not use it then i get a messy print , as soon i used it one time ( and use same filament) the print looks great
so my guess is that it does adjust the flowrate with a certain marge, as i use differend brands all the time is it really easy to notice ( switching between makerfill , winkle , fiberology, my own recycled filament, some special colors, glitter filament , petg of differend brands … a big mix of everything )

but i only need to do it one time for each time i switch filament so i guess it store the settings

i can not say anyhting about linair/pressure advance , i never tweaked those so i got no idea where to look to confirm if it is working or not

This is something I’d like to know myself! The documentation says that the printer calibrates “extrusion uniformity” which is what linear advance is all about. The next part in particular says manual flow rate tuning “will also improve the overall surface quality.” (Source: Manual Flow Rate Tuning for better looking prints | Bambu Lab Wiki) This sounds a lot like the flow rate itself may be something we have to manually tune. @BrotherC, @SirWill?

I seem to remember reading somewhere, either in Bambu’s documentation or from a Bambu engineer, that the AMS stores the flowrate calibration for each individual spool slot. I also can’t remember - or it may not have been specified in whatever I read - how long the AMS was supposed to remember it for (i.e. whether you need to recalibrate for every spool or only when changing filament type in each particular spool slot). If it isn’t already, it would definitely be nice to have this documented somewhere for easy reference.

1 Like

So, what do I need to do to get answer to these questions?

2 Likes

@Tanklet, you requested the discussion came here.

Can we get some kind of response on this please?

1 Like

You could just print a few single wall calibration cubes with different materials without flow calibration, measure the wall thickness and print again with flow calibration. If the wall thickness keeps the same, I would assume that only pressure advance is calibrated.

Alternatively, someone from Bambu Lab could tell us what happens and we could stop wasting our time trying to guess.

We’ve already had a situation where we were trying to set PA, and it wasn’t doing what was expected as the command required additional arguments to act linearly as it does with other printer firmware.

The longer we’re without this kind of information the more time is wasted and the longer the true potential of the machine is being limited. Sure don’t reveal any of the secret firmware sauce, but don’t artificially slow down the improvements to the quality and printing ability of this printer that the community can definitely assist with.

1 Like

Hi everyone:

In our road map, “flow calibration” has two parts:

  • dynamic flow compensation calibration
  • absolute flow compensation calibration

Dynamic flow compensation is used to compensate for the lag in the flow response of the extruder to make the flow synchronized with tool head movement.

If you want to make the compensation linear like in Marlin, you can modify the start-gcode:
Before “M900 Kx.x” cmd, insert a line of “M900 L1000 M10”.
After this line is executed, the compensator will work in linear mode when the new “M900 Kx.x” cmd is executed.

Absolute flow compensation calibration is used to calibrate the absolute flow ratio: “how far should the extruder motor rotates for 1 mm^3 of filament”.

This parameter is much harder to calibrate than the dynamic one. For example, 1% of calibration accuracy needs about 2um absolute accuracy. While this can be achievable, we need a lot of testing and debugging to make it reliable and to make it work with most filaments on the market.

We plan to provide it in the near future.

I hope this clarifies any questions you might have about this.

Thanks
Ciprian

11 Likes

Hey @BrotherC, thanks for the reply, confirming the assumptions around absolute flow calibration not currently talking place.

Can you give any more information on this one?

What do the L and M variables do?

The M term is used without the L term when default values are being set, with a calculation that seems to involve the movement speed of the filament through the extruder
M900 K0.02 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.02}

Hi mowcius,

The L and M variables are related to the way the printer does the auto-compensation.
In this case, if you are looking to use a simple value for the compensation, we recommend using M900 K M command
For example: M900 K0.02 L1000 M10 will make sure that the compensation will work in linear mode and the compensation value will not be limited unwillingly, by also applying a 0.02 value for the compensation.

2 Likes

Hi @BrotherC, thanks for the reply.
Can you tell us how the calibration values are retained in the printer memory please?
Does the printer retain the last calibration value indefinitely until a new calibration is run?

2 Likes

Any chance you can expand on this?

1 Like

@BrotherC I would also like to know if the calibration values are retained in the printer memory and used for every print until the calibration is run again, or if the values are only used if the calibration is enabled for that specific print. Thanks.

3 Likes

I did read somewhere, that the values are kept until shut down of printer. But this is, again; guesswork and needs verification from BL @BrotherC please

4 Likes

Thx Ciprian,

this works like a charm! Just calibrated it by my self und added it to the “Filament start G-code”.

So i can skip the flow calibration and i have the full bed for use. Ah need to say that i use mostly the textured pei sheet. :wink:

Kind regards
Richard

And the SoftFever fork just gave us pressure advance and flow calibration print generators.

I don’t usually bother with first layer inspection, quicker to just look at it if I am there. It isn’t clear to me what the LIDAR does for bed levelling. It only recognises some of the build plates I have. Only remembering the dynamic flow calibration for the last calibrated filament is very limiting and wastes time and bed space.

Wondering if it would not be better to chop the LIDAR off the hot end to save weight and let it accelerate a bit faster…

2 Likes

I’m totally with you!

why does fine cal only go 91%–100%? that’s incredibly frustrating. shouldn’t it be centered about your test point, e.g. 95%–105%?

also, why is this behavior not explained in the BS UI?