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).

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

@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…

1 Like

@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

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.

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.