Ellis' Pressure Advance / Linear Advance Calibration Tool

Original Marlin calibration tool by Sineos. Heavily modified/rewritten by Andrew Ellis.
The old "lines" version of this tool has been deprecated. It's still available here if you prefer it.

For issues/bugs, contributions, and feature requests, please open a GitHub issue.

G-code

3D Preview

  Source
Line widths are approximations only.



See my
Print Tuning Guide
and
Pressure / Linear Advance article
for demonstrations and examples!
.gcode    (Go through ALL the settings first!)


Settings

Advanced Mode

   

Printer

mm mm
mm mm
x
🛈 A rough guess is fine if you haven't tuned this yet.

Overextruding the test is a bit better than underextruding it.

This tool uses Prusa Slicer / SuperSlicer / OrcaSlicer flow math. Values from Cura may differ slightly.
mm/s
🛈 CASE SENSITIVE.

For printers with multiple toolheads.

Enter the config section name of the desired extruder (e.g. "extruder2").

Emits ACTIVATE_EXTRUDER EXTRUDER=[EXTRUDER_NAME] to g-code.

Also appends EXTRUDER_NAME=[EXTRUDER_NAME] to pressure advance g-codes.
🛈 Usually 0 if only one extruder. Allows choosing extruder if more than one.

Emits T[TOOL_INDEX] if not set to 0.
🛈 Uncommon on rectangular beds.

Sets X0, Y0 to the center instead of the corner.

Retraction / Z Hop

mm
mm/s mm
mm/s
🛈 Must be set up in your printer's firmware.

Uses G10 / G11 for retracts instead of directly commanding E moves.

First Layer Settings

mm
    
mm/s %
🛈 Percentage is based on nozzle diameter.
%

Print Settings

%
🛈 Percentage is based on nozzle diameter.

Match your thickest perimeter from your slicer settings (internal/external).
🛈 Includes first layer.
mm/s
🛈 Use your external perimeter speed from your slicer settings - if it's reasonably fast (>60mm/s).

If the results are hard to read, try a faster speed.
mm
mm/s2
🛈 Your MAX accel will be used if you don't set this.

Set this if you use acceleration control in your slicer!!

(Use your external perimeter acceleration)
(!!!)
%

Pattern Settings  

(Unchecked will use defaults. Defaults are usually fine.)
🛈 Wall/perimeter count for each test pattern. This will slightly impact print size.
°
mm
🛈 Rotates the print.
mm
🛈 Horizontal spacing between the patterns.

Pressure Advance Stepping

🛈 Increment for each pattern.
Needs to cleanly divide into range (End - Start).
🛈 Klipper only.

Increment PA smooth time INSTEAD of PA value.

This should only be ran after tuning pressure advance.

Don't forget to activate your new PA value first.

Experimental.
🛈 Creates a tab with PA/LA values printed on it.
🛈 Removes leading zeroes on the number tab.
🛈 Echo current value to the LCD using M117.

Start / End G-code

°C
🛈 Use this if you are using a start macro and don't want G28 added.
°C
🛈 Use this if don't want M190 / M109 heating g-codes added automatically.

Useful if you are passing temps to a start macro instead.

Instructions

  • With Cura / Prusa Slicer / SuperSlicer / OrcaSlicer, you should generally be able to copy your start g-code from your slicer directly.
  • With other slicers, you should also just be able to copy/paste, UNLESS you use slicer variables in your start g-code.
    • If you do, you will have to change them to the tool's variables, listed under "Tool Variables" below.
  • If you use slicer variables in your start g-code APART from bed / hotend temps, replace them with REAL VALUES instead.
  • Tool Variables (Optional)
    • These can be used in your start g-code and will be replaced with real values from the form automatically:
      • [BED_TEMP], [HOTEND_TEMP], [EXTRUDER_NAME] (Klipper), [TOOL_INDEX] (Marlin/RRF)

Check over the start g-code preview below before printing!

Copy your normal end G-code from your slicer (and replace any dynamic variables with real values).