1 / 7
Calibration Tower - Pressure Advance (M572) or Linear Advance (M900) — zdjęcie 1
1 / 7

Calibration Tower - Pressure Advance (M572) or Linear Advance (M900)

Zamów wydruk tego modelu

Obliczymy ostateczną cenę na podstawie wybranego pliku. Sprawdzisz ją i zaakceptujesz przed płatnością.

Zapisane na tym urządzeniu.

A recreation of the favorite Pressure/linear Advance calibration from Orca Slicer using PrusaSlicer

Ocena
5 / 5
Polubienia
88
Pobrania
896
Wydruki
8
Wyświetlenia
6026
Oceny
6

Aktualizacja u źródła:

Informacje o modelu

Źródło
Printables
Kategoria
Test Models
Licencja
Creative Commons — Attribution — Noncommercial — NoDerivatives

;tldr - Quick Start:

  1. Select the model (! Use Prusa Slicer 2.6.0 or newer ! ) - “Direct Drive” for the MK4 or “Bowden” for the Mini+.,  Additionally, you can select a layer height to test.
  2. Simply load the file in Prusa Slicer and slice the model
  3. Check that the desired M572 or M900 code is actually present in the G-code viewer between layer changes using the following 3 steps:  Not seeing the custom command? Go down to “Debug Mode” at the end of this article.
  4. Start the print, and then jump down to “Interpreting the Results” below.

 

Introduction:

This model recreates the Linear Advance (M900) calibration from Orca Slicer, but using Prusa Slicer and a custom G-Code macro to calibrate the pressure advance value M572. 

The linear / pressure advance value will be increased after each layer, starting at zero and ending at 1.0.  So every possible combination is tested.

This model is printed using 2 perimeters,  zero top and bottom layers, and zero percent infill.

Requirements:

Prusa Slicer 2.6.0 or newer (support for Macro Language)

https://github.com/prusa3d/PrusaSlicer/wiki/PrusaSlicer-Macro-Language

At the time of writing, the customer G-code does not work on on Bambu or Orca Slicers.

Do I need to calibrate Pressure or Linear Advance?

This depends on the firmware your printer is running.  The newest Prusa Input Shaper firmware 5.0.0-alpha1 (May 2023), Prusa changed over to using Pressure Advance (M572) for their Mini+ and MK4 machines 

https://forum.prusa3d.com/forum/input-shaping/firmware-5-0-0-alpha1/

For all other firmware, have a look at the RepRap list:

Source: https://reprap.org/wiki/G-code

 

Interpreting the Results:

The layer lines are part of the model, so you do not need your calipers any more to measure the position of that perfect line.

There are a couple artifacts you need to evaluate: The layer ticks and the seams.

Layer Ticks:

The layer ticks stick out 0.2 mm from the model, so they should be just barely visible. 

Seams:

You will notice that a too small value will result in over-extruded seams and too large of a value will produce under-extrusions.  Here the task is to select the best seam, even if it is not perfect.

Why are my seams so bad?

Normally the pressure / linear advance is set once during the initial start of printing.  In this model it is set between each layer.  

From what I can see, every time the value is changed the printer makes a small pause to save the value.  This results in seams that are worse than expected.  This model us a purely subjective evaluation - you look for the best seam.

 

Calculating your new pressure / linear advance value:

Bowden Model: 

The model sweeps from a value of 0.0 to 1.0.  Given 200 layers, this gives your a layer step size of 0.005

So lets say your best layer is layer #61 → 61 x 0.005 = 0.305

Direct drive Model

The model sweeps from a value of 0.0 to 0.3.  Given 200 layers, this gives your a layer step size of 0.0015

So lets say your best layer is layer #61 → 61 x 0.0015 = 0.0915

 

Modifying the custom G-code:

Lets say you want to optimize this even more, and conduct a smaller sweep between 0.5 and 0.8 to fine-tune your values.  There are just two variables you need to change:

Settings → Printers → Custom G-code → Before layer change:

{local SJB_calibration_start_value = 0.5} 
{local SJB_calibration_end_value = 0.8} 

SJB_calibration_start_value = the value to start the sweep at (layer 2)

SJB_calibration_end_value = the value to end the sweep at (layer 200)

 

Want to test at a specific printing speed?

Usually, the perimeters are printed quite slow.  In the newest versions of PrusaSlicer, you can see the actual printing speeds:

 

In order to achieve faster speed, you need to tune the following parameters:

Settings → Print Settings → Speed for Print moves → Perimiters, Small perimieters, and External perimeters

→ Set these three values to the speed you want to test (e.g. 100 mm/s)

The following settings may prevent you from reaching the desired perimeter speed:

Settings → Filaments → Cooling → Slow down if layer print time is below:

→ Set this value to zero to prevent the speed from being limited

Settings → Filaments → Advanced → May volumetric speed:

→ Increase this value if your speed is being throttled.

 

Debug Mode:

Not seeing the custom commands in your final G-code?  Try these steps:

  1. Confirm you are using PrusaSlicer 2.6.0 or newer.
  2. under Print Settings → Output options → G-code substitutions → uncheck the “Regula expressions” box in the first substitution:  
  3. Slice the model again.  Now all the calculations involved in creating the custom command are visible and can be debugged.  
Possible errors:

; Calculated step size: 0 if the step size is zero, then there was most likely an error withe the input values. Make sure they are a decimal value, otherwise the slicer treats them like text values and not numbers:

Wrong: use of integer values

{local SJB_calibration_start_value = 0}  
{local SJB_calibration_end_value = 1}

Right: use of floating values “0.0” and “1.0”

{local SJB_calibration_start_value = 0.0}  
{local SJB_calibration_end_value = 1.0}

 

Still not successful?  Post a screenshot similar to the one above in the comments with the following info:

  1. Which version of Prusa Slicer are you using, and Operating System (e.g. Version 2.8.0+MacOS-x64)
  2. Which model did you use? (e.g. 0.3mm_LayerHeight_Bowden_PressureAdvanceTower_v5)
  3. The screenshot of the variables above.

Happy Printing!

Tagi