---
tag: m0592
title: Nonlinear Extrusion Control
brief: Get or set Nonlinear Extrusion parameters
author: abortz, thinkyhead

group: motion
since: 2.1.3
requires: NONLINEAR_EXTRUSION
eeprom: true

codes: [ M592 ]

parameters:

- tag: A
  optional: true
  description: Set the Quadratic coefficient (Default 0.0)
  values:
  - type: float
    tag: coeff

- tag: B
  optional: true
  description: Set the Linear coefficient (Default 0.0)
  values:
  - type: float
    tag: coeff

- tag: C
  optional: true
  description: Set the Constant coefficient (Default 1.0)
  values:
  - type: float
    tag: coeff

- tag: S
  optional: true
  since: 2.1.3
  description: Enable or disable Nonlinear Extrusion
  values:
  - type: flag

example:
- pre: Set Linear, Quadratic coefficients to 0.2, 0.3
  code: M592 A0.2 B0.3

---
Get or set Nonlinear Extrusion parameters.

When Nonlinear Extrusion is enabled the extrusion volume is adjusted (as a multiplier) based on the instantaneous extrusion velocity. The extrusion length is multiplied by `max(C, A * v^2 + B * v + C)` where `v` is extruder velocity in mm/s.

The adjustment only applies when…
- …performing a forward extrusion, since those are the ones affected by back-pressure.
- …another axis is also moving (i.e., it's not a simple unretract). This is to prevent blobs at the line start.
