Difference between revisions of "Calibrate KLipper extruder step-distance"

From munkjensen.net/wiki
Jump to navigation Jump to search
Line 1: Line 1:
 
==== Preparation: ====
 
==== Preparation: ====
# Mark the filament 120mm before the entry to your extruder.
+
# Mark the filament 150mm before the entry to your extruder.
 
# Heat up the nozzle to your desired printing temperature.
 
# Heat up the nozzle to your desired printing temperature.
 
# Home all axis to get in "printer ready" state.
 
# Home all axis to get in "printer ready" state.
# Move the nozzle 50mm away from the bed to make room for the filament that will be extruded in a moment.
+
# Move the nozzle away from the bed to make room for the filament that will be extruded in a moment.
 
# Execute the following G-commands one by one.
 
# Execute the following G-commands one by one.
 
#* '''G92 E0''' (resets the "extruded material" value to 0.)
 
#* '''G92 E0''' (resets the "extruded material" value to 0.)
Line 10: Line 10:
  
  
If it is 28mm instead of 20mm (120mm - 100mm) than you are UNDERextruding by 8mm ==> 92mm instead of 100mm. If it shows 15mm than your are OVERextruding by 5mm ==> 105mm.
+
If it is 58mm instead of 50mm (150mm - 100mm) then you are ''UNDER''extruding by 8mm.  This make E = 92 mm in the formula below.<br>
 +
If it shows 45mm than your are OVERextruding by 5mm. This makes E = 105 mm in the formula below.
  
 
==== Now calculate: ====
 
==== Now calculate: ====
 +
E = measured length of extruded filament.<br>
 +
d = desired/expected length of extruded filament.<br>
 +
C = current step_distance.<br>
 +
n = new valu for step_distance.<br>
  
c := current value in configuration.cfg<br>
+
'''n = (E/d)*C'''
m := measured left over filament<br>
 
d := desired mm<br>
 
n := new value for configuration.cfg<br>
 
 
 
  ((120 - m) / d) * c = n<br>
 
  ((120 - 28) / 100) * 0.010500 = 0,009660<br>
 
  (92 / 100) * 0.010500 = 0,009660
 
 
 
As you can see, for underextrusion the new value is lower than the old one.
 
You may play around with the last two numbers to fine tune.
 
  
 +
  (92 / 100) * 0.0105 = 0.00966
 +
  (105 / 100) * 0.0105 = 0.011025
  
 +
For underextrusion the new value is lower (0.00966) than the old one (0.0105), and for overextrusion it is the opposite ;-)
  
 
* https://mattshub.com/blogs/blog/extruder-calibration
 
* https://mattshub.com/blogs/blog/extruder-calibration
 
* https://docs.google.com/spreadsheets/d/1AWBTYIDA7LRxIdVeTuUnIcgW5g1HijDb/edit#gid=627601536
 
* https://docs.google.com/spreadsheets/d/1AWBTYIDA7LRxIdVeTuUnIcgW5g1HijDb/edit#gid=627601536
 
* https://github.com/KevinOConnor/klipper/issues/934#issuecomment-714438327
 
* https://github.com/KevinOConnor/klipper/issues/934#issuecomment-714438327

Revision as of 12:41, 17 January 2021

Preparation:

  1. Mark the filament 150mm before the entry to your extruder.
  2. Heat up the nozzle to your desired printing temperature.
  3. Home all axis to get in "printer ready" state.
  4. Move the nozzle away from the bed to make room for the filament that will be extruded in a moment.
  5. Execute the following G-commands one by one.
    • G92 E0 (resets the "extruded material" value to 0.)
    • G1 E100 F100 (extrudes 100mm filament with 100mm/min.)
  6. Now measure the distance between your extruder entry and the mark on your filament.


If it is 58mm instead of 50mm (150mm - 100mm) then you are UNDERextruding by 8mm. This make E = 92 mm in the formula below.
If it shows 45mm than your are OVERextruding by 5mm. This makes E = 105 mm in the formula below.

Now calculate:

E = measured length of extruded filament.
d = desired/expected length of extruded filament.
C = current step_distance.
n = new valu for step_distance.

n = (E/d)*C

 (92 / 100) * 0.0105 = 0.00966
 (105 / 100) * 0.0105 = 0.011025

For underextrusion the new value is lower (0.00966) than the old one (0.0105), and for overextrusion it is the opposite ;-)