Why is K Value stored on the Printer and Flow Rate on the Filament?


Coming from Orca Slicer, it make sense: Pressure Advance (K Value) and Flow rate are both stored on the filament profile.
On Bambu studio the K Value is stored on the printer, and Flow rate is on the filament. Why not include all value into the printer OR the filament?


As I am not a Babmu Employee, I can just speculate. But here is my take on this:

The flow rate is depending on the diameter of the filament. This can vary between batches, thus requiring you to recalibrate it, while starting a new spool.

The pressure advance is depending on the fluid dynamic properties of the molten filament, and thus depending on the additives and composition of your filament. This should stay the same, even over multiple batches, and also not change via nozzle size.

I personally recalibrate it for every spool, but I have to also confess, that I have not seen drastically different values for both properties, given the same manufacturer.

I am not sure, but my speculation is related to the new maker world print profiles, as if you print directly from the website (outsource slicing), you can use your k value. I already questioned (without an answer) if the flow ratio is also considered when I select my filament preset.

Other justifications from an official source (BL collaborator in BambuStudio GitHub webpage) are:

  • The K value may differ for different machines
  • third-party filaments’ k values are not consistent
  • improve the print quality when printing other users’ sliced files with different filaments (they mention the SD card, but I think it was already thought for the new website print profiles).
1 Like

simple, bad design decision , from people who does not have 1000s of hours print time with 20-30 different type of filaments. The idea is not bad if you use hand full filaments as the K does not change between baches ( same brand/color/type) to affect the print only flow

that is one of the main reasons i use mainly Orca slicer , and added a G code into the filament advanced setting for the BS
K , Flow - is filament, nozzle size, extruder type and tiny little bit temp and a little from melted nozzle volume, for the same filament diameter. Assuming that E step is calibrated separately for each machine in theory different machines can have the same K and flow. And lately started to think about it how to share the K/F between the Prusa and X1C , but E calibration which will make it identical is not an easy task

@JayZay in the g-code file actually it resets the K and sets a new values( orca slicer and the old Bambu studio 1.6, have not checked the new version) , there is an option for stored values from the Nozzle slots(AMS slots) , so effectively may work if every one is using it but still will cause too many issues. In general you are correct probably that is what they are trying to achieve g-Code which is user filament independent. (ha ha)Impossible as we get such a variations you have seen minor variations what causing in the prints.

That is why i would suggest to Bambu instead of over complicated it what they have done already. to stick the way Orca has done it to the filament , and simplify the procedures and add grouping sorting filaments. Or for start they can build a real huge database from all the users and analyze the data , based on brand, filament type and nozzle size, and better share it or share the averages. Then fine tunning of K/F/Temp instead of 1-3 hours will be 20 to 40minutes

1 Like

@vladimir.minkov, many thanks for the info. I am sort of crazy with these silent changes, and I will try to keep software versions when I find a workaround.
@Yendi, I am sorry for the misinformation. I tested with ORca Slicer v1.7.0-beta and Bambu Studio v1.7.6.92, and Vladimir is correct, as the PA value from Orca Slicer is discarded in Bambu Studio.

I was informed of this option in a thread by another user, so I tested it (change and save PA value using ORCA, slice file in Bambu Studio and download g-code to see if the override command was there), and it worked. Unfortunately, I don’t recall the Bambu Studio and Orca Slicer versions, but for sure in the last 30 days. It isn’t so relevant for me as I stored it in the filament G-code and in the printer and kept a backup in an Excel sheet. But at the time, it seemed a great option as it was easier than others.

I am unsure if I am correct, but it comes from the impression I got from their communication and releases and to try imagining a 3D printer as a household product (e.g. kitchen robot) that anyone can use, which may seem their ultimate goal.
For that, you need to remove the user input from the process, i.e. the user selects a model, sends it to print and when the finish is altered to pick up the printed model.
An overview of the process we can try to make a simple division into three steps: modelling, slicing and printing. The modelling is an advanced stage that has been overcome by makers sharing/selling their models so that we can discard them.

  • With their new website, anyone can search for a model and send print from a mobile phone in a few minutes. I tried to see how it works, and it went perfectly even when I used a print profile for PLA (most are) with another material. They just made it possible to outsource the slicing process, which can be overwhelming for newcomers. It is impressive, but not for me (I bet not for you), but I can imagine my daughter and mother doing this whilst watching TV.
  • It is still far from perfect, but BL has made significant steps to make the printing process as simple as possible, and we can expect even more reliable automation in upcoming models. For me, the main issue with printing relies on troubleshooting and maintenance. I am unsure how to overcome this, which may be their main challenge. Nowadays, these issues imply physical and technical support nearby. Is this the future? Additionally, they still miss optimum customer service.

Then comes the external problem, the filament. As you mentioned, this is critical and currently uncontrollable. But let’s imagine using only conventional materials (PLA and PETG) from Bambu Labs in a simple printer (A1, assuming to be as described) and automated slicing using reliable tested print profiles (MakerWorld).
In this closed environment, they know and control better than anyone how difficult it would be to use an automated calibration process(already implemented), with a swift checkup at startup (Lidar and Cali lines) to find if the filament is conditioned correctly (wet) and to compensate expected variations? Possibly not today, but this reality may not be far away…


@JayZay in the latest Bambu Studio the PA value still can be shared with Orca,
there was a change in the BS M900 generated commands and the original command provided does not work correctly any more as it did not have all the modifiers , but checking with the latest firmware as there is something strange around flow

  • dose not work any more ; M900 k[pressure_advance] ; BS transfer

Also Orca merged the bambu method now so it support their methods as well

This should work, but probably worth waiting a bit or just try , i am going through the pain of changes my self
M900 K[pressure_advance] L1000 M10; BS transfer test based on Orca slicer ouput
or what ever is the actual value
M900 K0.02 L1000 M10; BS transfer test based on Orca slicer output
EDIT: The above commands works with bambu studio
but M900 K[pressure_advance] also works, the problem as ‘k’ instead of ‘K’
M900 K0.02 ; what ever value

Sorry either was typing it in some filaments have it with small k and some with K , but i think was working with the old firmware but cant be sure as may have tested the one with K my BAD
SO Sorry but have not had a sleep for a few night and getting old :slight_smile:

@vladimir.minkov I have mentioned an older thread and didn’t remember that you came up with that info. Sorry for that. But there are too many threads, and I am already used to seeing your name.

So I just tried again, using M900 k[pressure advance], and now the k value appears in my g code. I didn’t print it, but I didn’t get any errors.
Why do I need the second k value? And what does the M value do? Multiplier?

Edit: I am using small caps k

1 Like

Actually some one else came with hardcoded values different nozzle sizes and if statements , but as i send a simple version i may have confused a few people :slight_smile:

M900 k[pressure advance] - does not work with the latest firmware it might or might not work with old firmware - It wil not generate error but the print completely ignored it and used something

M900 K[pressure advance] - works
But to be on the safe side probably will put the full version of the command

So this this is the actual PA what ever (eaxmple0.02) set in the Orca,
but you can use ‘[pressure advance]’ only if already in the filament jason file , it will show there if the filament settings were edited with ORCA at least once. it will automatically be shared with Bambu Studio, but Bambu has to be closed and then opened also not sure when uploads it in the cloud , but if orca is closed is already in the cloud , i am sure that can be added manually as i well

Getting a bit tired and not sure if explained , well

The M value i searched all around could not find the exact meaning , Orca proves it as 10 , BS old version as 10 and some places as 0.xxx so not sure . But that was not the problem , it was a PEBKAC issue, now is all good for me with the latest FW and latest BS and Latest Orca

Always learning how ignorant I am.

As a university student, I learned that standards set g-code interpreters as case-insensitive. But somehow, 3D printers’ firmware may not follow the standards.

By chance, my startup g-code is written with capital letters so that it would be interpreted correctly. Additionally, if there was an issue, I suppose the stored values would be used, and I would never notice it.
I am happy that Orca is on the pace of Bambu Studio.

I am glad it is an error from tired users and happy that everything works. It didn’t work the first time as my AV was blocking Orca data upload.

@Yendi, I am sorry about all the confusion. A conclusion is you can set the PA for a filament in Orca Slicer, which can be interpreted in Bambu Studio if you add the following command to filament startup g-code:

Valid for Orca Slicer v1.7.0-beta and Bambu Studio v1.7.6.92.

1 Like

For me it more that I have the PA profile from a Dynamic flow test, but everytime the printer and AMS has been turned off and then on, it dosnt remember the PA profile and therefor dosnt set the K value and its annoying. I have to do i manually everytime.

I think the storage of filament settings on the printer is part of Bambu’s efforts to promote the Makerworld concept - tap the model in Handy and print without a computer or slicer.

But those calibration settings can be lost with a firmware reset (or powering down?).

I’ve never had a need for the spur of the moment prints that Makerworld promotes.

The computer time to prepare and slice a model is usually small compared to actual print time, so I don’t consider that a disadvantage. Sorting through all the available profiles for a Makerworld print can take nearly as long. Personally, I like the full control I have using a slicer, so I use OrcaSlicer for filament calibration and nearly all my prints. So all my filament calibrations are backed up locally (on two computers which are backed up daily) and in the Bambu cloud.

The only reason the flow rate is not saved within the printer relates to the slicing process, which cannot be done within the printer.

@vladimir.minkov You you set the K factor of the filament within the filaments start g-code?

Can you give an example - and does it work in combination with the AMS(lite)?

I don’t have any Bambu Lab Filament - mostly because they are often sold out. So I only have the “Generic PLA” on the printers setting because adding custom filament isn’t an option for the A1 firmware…

The following works with my AMS as actually nothing to do with the AMS it self
I am using Orca slicer profile and bambu slicer so the following code actually gets it from the filament setting and works for both . But you can replace teh pressure_advance with actual value like 0.025 or what ever , but from bambu Studio you will not see what is the value only from orca slicer if you dop not hard code it
Hope that helps
M900 K[pressure_advance] ; BS transfer test

I am confused.

I see that you have activated the ‘pressure advance’.

Hoovertext says the activation overwrites the auto-calibration results.

But where are the results? I looked in the .jason and there is nothing there. Only when I activate pressure advance and enter the value in the filament settings does it appear there.

What does that mean?
It is always printed with K=0.02?
Even if I have carried out an automatic calibration but have not activated pressure advance ?
Do I have to enter the measured value for each coil manually in the settings so that this value is used?
Is it saved in the AMS? In which one, I have 2.

To be honest, I have never had any problems with printing.

X1C, 2x AMS, Orca Slicer 2.0.0

@elwe Once you activate it it adds a parameter in the Json file for the filament .
Orca slicer adds a command M900 in the generated g-code( can be checked with text editor) , which overwrites any other K values , unless you have added manual command in the advanced which is to be used with Bambu studio and duplicates the command form Orca Slicer

Auto-calibration results for K are in two places depending how you use it
From the print setting enable Auto dynamic flow - this result can not be extracted and is for each print - not needed if you use the new Auto calibration procedures Orca Slicer or Bambu Slicer
And the new one is in the AMS filament settings where can be seen, once you go through the auto calibration procedure you will understand

The K factor in the filament settings has highest priority
0 . In the filament setting ( what ever value is specified )
For the other two K factors not sure but my guess is
1 Auto dynamic flow before start printing
2. AMS Filament settings

Auto calibrations has been improved lately so not surprised you do not have issues, or just not enough printing yet :slight_smile: and K factor fine tunning usually is important but you probably need to get to the point where you see that you need it

If what ever you are doing is working for you stick to it until you need any more advanced tunings

To see the difference print a small hexagon with K factor 0.1 and 0.2 and 0.4 for example , also 0 - should turn off the Pressure advance , inspect the corners, side walls and the seams . Some times may affect the top surface finish , especially if you have lets say through hole the cube or hexagon

I see. Don’t change a running system. Agreed.

So Orca slicer has two K values (pressure advance)?
Kvalue 1

OrcaSlicer shows the printer-stored value because that is part of the Device status, along with temperatures, fan speeds, etc.

The PA value in the filament preset has priority. The value shown on the device page is only used for locally sliced files when there is no value set in the filament preset. This would be the case for Studio (only) users, or OrcaSlicer users who have have not enabled PA in their filament presets.

I think that the printer-stored value is also used for cloud-sliced printing direct from Makerworld, when Studio/Orca are not used.