Preventing an “unhealthy” amount of extrusion on short moves is a safety feature of Klipper. The default value is set to
Maximum Extrusion = 4.0 x Nozzle_Diameter^2 = 4.0 x 0.4^2 = 0.640 mm²
The error typically is caused by:
- Extreme settings for the prime line in the start gcode
- Extreme settings for a purge, e.g. on filament change
- Crappy gcode created by the slicer (especially S3D)
- Weird Slicer settings affecting the extrusion or flow rate
- Misplaced M83 commands (e.g. in start gcode) causing the extrusion to add up
Basically you have two options:
- Find the root cause, most likely from the list above
- Relax (read deactivate) the safety setting in the
[extruder]
section by settingmax_extrude_cross_section: 5
→ Not recommend, this check is there for a reason
Edit, as this topic seems to be still read and gets attention:
Some Extrusion Math
Input
- Nozzle Diameter: 0.4 mm
- Filament Diameter: 1.75 mm
- Extrusion Width: 0.48 mm
- Layer Height: 0.2 mm
- Print Speed: 80 mm/s
- Extruded Length: 15 mm
- Movement Length: 30 mm
Volumetric Speed
Volumetric_Speed [mm^3/s] = Extrusion_Width [mm] * Layer_Height [mm] * Print Speed [mm/s] = 7,68 mm³/s
- This is the amount of polymer that the extruder needs to physically melt and squeeze through the nozzle to uphold a certain printing speed
- The maximum depends on filament, quality (torque) of the extruder and melting capacity of the heated area
- Standard extruder are somewhere between a maximum of 8 mm³/s and 20 mm³/s
- High quality / high flow extruders can reach up to 50 mm³/s
- Exceeding the physical capabilities will lead to skipped extruder steps (grinding) and under extrusion
Klipper Safety mechanism
max_extrude_cross_section [mm²] = 4.0 x Nozzle_Diameter^2 = 4.0 x 0.4^2 = 0.640 mm²
Extruded_Volume [mm³] = Extruded_Length [mm] x (Filament_Diameter [mm] / 2)^2 x Pi = 15 mm x (1.75 mm / 2)^2 x 3.14 = 36.1 mm³
Actual_Extruded_Cross_Section [mm²] = Extruded_Volume [mm³) / Movement_Length [mm] = 36.1 mm³ / 30 mm = 1.2 mm²
- If one single gcode command would request a movement of 30 mm while trying to extrude 15 mm filament (gcode: E15) it would result in a
Actual_Extruded_Cross_Section
of 1.2 mm² - Klipper would react with an error message saying
Move exceeds maximum extrusion (1.2mm^2 vs 0.640mm^2)
- To solve the issue, either the
Movement_Length
needs to be increased by a factor of 1.875 to minimum 56,25 mm or theExtruded_Length
decreased by the same factor to E8