AMS filament K factor setting?


It seems that with Orca I can calibrate a filament and set K-factor etc in the filament profile.
In BS, there is no such option.
So how do I save the K-factor for a filament in BS?

Secondly, in the AMS, the wiki shows selecting a filament and having a “Cali” buitton, which doesn’t exist in the version I am running (
Nor can I edit anything if I click on the edit button for a slot. Can’t change the colour (for non-RFId spools), cannot change the K-factor or anything else.
I guess the K may be filled in if I run the Calibration from Device panel rather than the AMS panel itself but then it will ioverwrite the value I want with one Bambu decides is appropriate - I want to put my own value in, either in the filament profile of the AMS profile.

Can it be done? What am I missing?

Thanks for any pointers.

Orca Slicer refers to “K-factor” as “Pressure advance”.

If you want to do it in Bambu Studio without upgrading the firmware, add the following line to your filament start g-code (replace the number written in bold italics with your k-value):

M900 k0.03

In case of multiple nozzles, you must add the following script (replace the k value and delete the not-relevant nozzle diameters).

; Filament gcode
{if (nozzle_diameter[current_extruder]==0.2)}
M900 k0.02
{elsif (nozzle_diameter[current_extruder]==0.4)}
M900 k0.04
{elsif (nozzle_diameter[current_extruder]==0.6)}
M900 k0.06
{elsif (nozzle_diameter[current_extruder]==0.8)}
M900 k0.08

I am not aware of a more straightforward method.


I know. It’s not showing in BS.

Yes I can do it in start gcode but that means a mm ending filament profiles in BS and in Orca separately (they don’t sync) and that I can’t see in the Device interface that the right “Generic [filament]” is in AMS.

Sorry, I mis-read the question.

I have both BS and Orca installed, but Orca is the only one I actually use to print. Lack of a PA setting in BS is one reason why.

BS is adding features, but I still prefer Orca.

The current OrcaSlicer (1.7.0-beta) includes “Merged BambuStudio 1.7.4 changes to have better support for BambuLab printers.” I don’t see any reason to use BS.

I always used both slicers, even when the Orca had massive improvements regarding the Bambu Studio, just by precaution. There is no clue about BL plans, and despite Bambu Studio being open source, they can release addons, which aren’t. An example was the network plugin, which limited the Orca installation process until recent versions. Now, pressure advance values are stored in the AMS and not shared. I am not arguing about their policy, as they were and are pretty clear about it. Yet, the lesson learned from reading and listening to a few of their communications was that there are no guarantees regarding anything outside their closed environment.

For me, the script was the only solution that didn’t hinder any of the slicers, survive a printer factory reset, and ?maybe? future proof. Even so, having filament settings outside the slicer and closed can easily hinder its use.


PS: You can use both the script and orca slice PA value without any problem. In case values are different, Orca PA overrides the script.
Regarding the AMS, I still need to find the time to create and carry out a test to verify which one has priority. But I guess the AMS.

1 Like

@JayZay it worked to sync between orca slicer and BS and use the visual value from Orca slicer and is applied to the Bambu g-code file , as still have only 0.4mm extruders for X1C, but from Prusa multiple extruders has different flow changes and sometimes temperature varies so for Prusa i created Filament profile per Extruder PLA 0.4 and PLA 0.6… Any way here is what i added and got sync automatically in the BS , the second command is actually what Orca slicer generates in the g-code, but i used the simplified version it seems to be enough not quite sure that L and M are correct but when sent with it also works and that is the default output from Orca slicer

M900 k[pressure_advance] ; BS transfer test
;M900 k[pressure_advance] L1000 M10; BS transfer test based on Orca slicer output

EDIT: requires first from Orca slicer to be ticket enable pressure advance

Once saved the filament from orca slicer then open BS and check if in the advance section the change is already there and yes

That sounds great - I shall check that changed made in Orca filament profile are reflected in BS gcode, but there’s no way I can see them in the BS filament profile.

It’s still annoying that you can’t change what the AMS shows - the Calib button shown in parts of the wiki doesn’t exist and Calibration will overwrite the manual calibrations.

There’s work yet to be done to get AMS properly integrated into BS I think.
Sometimes switching to P1P makes BS not show the X1C AMS filaments, sometimes I still see them even though I can’t use them.
If they do go away (as they should) they often don’t show up again if I switch back to the X1C.
I could use Orca for one printer and BB ambu for the other but then I would lose all Orca’s features for one printer - in particular the comprehensive calibration facilities.

All this should be seamless really.
Pity, as the printers are a country mile ahead of any of my others (though that may change when they go wrong and need Bambu support!)

I tested it , that BS gcode file generated with the above code gets into effect with the correct value from Orca slicer , just cant see one parameter the pressure advance, unless you open the Json file manually or just use the actual value instead of the variable ,

Not sure about the AMS but try Orca Slicer, it works perfect between Prusa , X1C and Ender
But i have seen a few times not updated the AMS information and had to close it and open the application again both on Bambu studio and Orca Slicer , i keep one Orca slicer opened per printer usually instead of switching between

i gave up long time ago on Bambu calibrations manual or auto really annoying well since i learned for Orca

Yes it is great printer for the price, but i like my Prusa mk3s+ with Revo six high flow extruder it is better for some tasks , and not cheaper with the mods and fitting(down) time :frowning:

@vladimir.minkov, many thanks for sharing. I made intensive tests, and it works flawlessly.
It’s an interesting finding, at least for me. So, calling cloud-stored Orca parameters from BambuStudio is possible. I am always learning. TY

1 Like

First of all thanks for sharing this useful info. I just calibrated my filament pressure advance and flow in orca. Saved the settings per filament as suggested. My questions are;

  1. Shall i set the AMS K factor Value to 0 when using orca, or does orca just use the value stored in the filament and ignore the K Value for the AMS ?

  2. Since orca and Bambu sync the profiles, settings etc. If i have a filament tuned with pressure advance in orca, if i use bambu studio, will the pressure advance setting still be stored somewhere (Since in bambu the setting isnt visible). Also will bambu still take note of the K Value in AMS ?


  1. A million-dollar question at the time of the post-discussion.
    There has been an official answer since three weeks ago: I hope it helps.
    Note: if you don’t use the AMS k values, do not set the k to zero. Select a generic filament (e.g., generic PLA) that does not include the pressure advance value.

  2. There have been many changes since this topic.
    By default, filament presets are shared within the slicers. You may check it by accessing the configuration folder %UserProfile%\AppData\Roaming\BambuStudio and verifying the user filament .json settings.
    BS will not use it unless you instruct, which is done by adding the following line to your filament start code (see @vladimir.minkov explanation above):
    M900 k[pressure_pressureadvance]
    Regarding the AMS value use or not, I cannot confirm if it is similar to Orca Slicer (and were 1.). If I have time, I will test it again.

Hi JayZay,

Thank you for taking time to reply. This helped me a lot.

With regards to adding the M900 k[pressure_pressureadvance] in the Filament start G-code. Im a bit of a massive noob lol so my apologies for the dumb question… Below is my Gcode, Can you explain where i should add it exactly? Also in the M900 k[pressure_pressureadvance] Bold part, should i leave it as is or should i input the actual pressure Advance Value? Thank you very much

; filament start gcode
{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200
{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150
{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50

{if activate_air_filtration[current_extruder] && support_air_filtration}
M106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]}

Put in the actual value.
You can put it anywhere in that gcode. If it already occurs somewhere then replace the existing or put it after the existing entry (so it will override what is there).
If it doesn’t already exist add it somewhere near the beginning - for example:

; filament start gcode
{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200
{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150
{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50

M900 k[pressure_pressureadvance ]

{if activate_air_filtration[current_extruder] && support_air_filtration}
M106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]}

I almost hate to ask this question, because I’m certain the answer will annoy me:

there are three places one can set PA in Orca:

  1. In the gcode filament start script
  2. in the filament settings
  3. in the AMS settings, per filament
    What are the priorities?

I’m assuming it is probably: 1, 2, 3. That is, it sets the PA based on the AMS first, then overwrites it with the filament settings PA value, then when it actually executes your gcode, it overwrites it yet again with your custom PA value.

That question was asked on Github and as I understand the answer from
Softfever, the value set in the filament profile overrides the printer setting.

“Pressure advance set in the filament setting will overwrite the K value in slot.”

I don’t have an AMS, don’t put a K value in the printer, and don’t see any reason to add it to the filament start gcode if the setting in the filament preset does the same thing.

@Distracto, sorry for the late reply. Somehow, skip this thread.

I hope that your problem is solved by now.
If not, follow @nickramsey57 answer.

As others mentioned, it is possible to do the same by editing the g-code elsewhere. Except for using the Orca Slicer embedded option (also possible to call in BambuStudio), the most logical is within the filament start g-code, as it results from its calibration.

Hi everyone just a reminder i see that accidental typo a few months ago propagates everywhere for the pressure advance
Small k vs capital K , small k was not working and will ignore the command in old firmware !!! not sure for the latest one :frowning: Please correct me if wrong as i use the same command for Prusa and may have been an issue in Prusa only
@JayZay , @Distracto , @nickramsey57
I fixed my profiles , but not using a lot Bambu Studio very often and in Orca will not affect it as it will create the same command properly
@JayZay you have done more recent testing was it with ‘k’ or ‘K’ ?

M900 K[pressure_advance] ; BS transfer test
;M900 K[pressure_advance] L1000 M10; BS transfer test based on Orca slicer output

I am using an A1 and AMS light. It looks like Bambu Studio stores the K factor in the AMS, not in the filament profile. It also looks like the AMS light does not see my personalized filaments, only the factory ones.

Bambu Studio now has two built-in filament calibration tools. The Flow Rate fixed many of my printing issues with the Inland PLA I have. The Flow Dynamics is more subtle??

Here are the X side of two CHEP cubes. The left one is before “k” and the right one is after:

I have to look at Orca