Klipper and Mainsail lack built-in extruder calibration. These macros automate it.
- Mark the filament at 120mm before running the macro.
- Run:
EXTRUDER_CALIBRATION- Heats nozzle, moves to center, extrudes 100mm, then cools down.
- Measure remaining filament.
- Enter measured value:
(ReplaceSET_EXTRUDER_CALIBRATION MEASURED_LENGTH=<your_value><your_value>with the actual measurement.) - Update
printer.cfgmanually with the newrotation_distanceshown.
Starting calibration...
Extruding 100mm...
Measure remaining filament and enter:
SET_EXTRUDER_CALIBRATION MEASURED_LENGTH=<your_value>
Old rotation_distance: 7.50
New rotation_distance: 8.62
Update printer.cfg manually!
- Macros can’t pause for input, so it’s split into two steps.
- No auto-saving to
printer.cfg, manual update required.
Great Macro! I made one small tweak to my setup to ensure smooth operation. In between line 23 and 24 I added an M400. This ensures Klipper waits for the extrusion command to finish prior to moving onto other comments within the macro. I had issues towards the end of the extrusion the extruder would start clicking rather than extrude. I believe this was due to the hotend already starting the cool down commands prior to the extrusion command finishing. This was also indicated by the console outputs which indicated extrusion complete way before it was done pushing filament. This minor change seems to have stopped the extruder from slipping during the last portion of the extrusion command.
See below for modification.