Klipper: How to Calibrate Steps ?

Created on 26 Nov 2018  路  17Comments  路  Source: KevinOConnor/klipper

How do i calibrate my steps with klipper - in marlin it was easy and many tutorials are around - but how it goes with klipper `?

Most helpful comment

@xsasx I would calc it like this:

1) Mark you filament 120mm above 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) Lift up your nozzle by 50mm (to make room for the filament!)
5) Execute the following commands (one by one)
5a) G92 E0
This resets the "extruded material" value to 0.
5b) G1 E100 F100
This extrudes 100mm filament with 100mm/min.
6) Now measure the distance between your extruder entry and the mark on your filament.

I.e 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.

Now calc:

c := current value in configuration.cfg
m := measured left over filament
d := desired mm
n := new value for configuration.cfg

((120 - m) / d) * c = n
((120 - 28) / 100) * 0.010500 = 0,009660
(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.

All 17 comments

Do the same calibration as with ANY printer and then divide the result by 1 to get mm/step rather steps/mm.

ok - and where i put my result in ?

Err, look at the example configuration files. They will show you all the options and are well commented. You need to set the step_distance parameter, e.g.

https://github.com/KevinOConnor/klipper/blob/master/config/example.cfg#L33

mhhhh i mean extrusion steps - so i messure my filament- extrude 10*10 got 21mm left and than ? sorry im not sooooo familiar with all these things

There are lots of "howtos" online about how to do this:

https://mattshub.com/2017/04/19/extruder-calibration/

I am not sure what else you really need to know... The extruder configuration is also in the same example file:

https://github.com/KevinOConnor/klipper/blob/master/config/example.cfg#L94

I don't know whether this is important or not. But you have to round the calculated value to 6 digest.
So, if you are getting a value like this: 0.00952380952380952380952380952381 you should round it to 0,009524 (or ..23). But maybe this is done automatically by the python script that reads the configuration.

If i want to sen M503 it says command does not exist - thats my problem - if i follow one of these how tos it wont work with klipper that way :/ so i want to know how i can calibrate my esteps under klipper

Why do you need to send M503? There is no "EEPROM" in klipper. Current settings are in your printer.cfg file.

M503 is not needed to calibrate the steps. You will find your current values (step_distance:) in the printer.cfg file.

now its clear ! thank you very much ! got it !

actually i have step_distance: .0105 with my ant a8

i have meassured after extrude 100mm for example 10mm left than i got 90 extruded

so 100 - 10= 90

105 * 100 =10500

10500 / 90 = 116

so my new steps in cfg should be 0.0116 ? is that correct math ?

Most online tutorials are assuming step/mm (used by Marlin and others) instead of mm/step used by Klipper. You need to invert the measured/expected ratio, in this case it's (90/100)*0.0105=0.00945 .

@xsasx I would calc it like this:

1) Mark you filament 120mm above 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) Lift up your nozzle by 50mm (to make room for the filament!)
5) Execute the following commands (one by one)
5a) G92 E0
This resets the "extruded material" value to 0.
5b) G1 E100 F100
This extrudes 100mm filament with 100mm/min.
6) Now measure the distance between your extruder entry and the mark on your filament.

I.e 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.

Now calc:

c := current value in configuration.cfg
m := measured left over filament
d := desired mm
n := new value for configuration.cfg

((120 - m) / d) * c = n
((120 - 28) / 100) * 0.010500 = 0,009660
(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.

It looks like the original question was answered, so I'm going to close this issue.

-Kevin

I still don't get it why Klipper switches the whole quasi standard of steps/mm into step distance. But then again I am free to use Klipper or let it be. Am I right ;)

FYI, it's done that way to use consistent measurement units in the config file - mm for distance, amps for current, volts for voltage, seconds for time, ohms for resistance, etc. I know it's different from other firmware, but it's just weird to configure this one parameter in units of inverse millimeters.

-Kevin

i agree with the consistency, I put a note in my config file so I don't forget:

# Measure 120mm, then extrude 100mm
# G1 E100 F100
# step_distance = old_e_steps * ((120 - distance_to_mark) / 100)

@xsasx I would calc it like this:

  1. Mark you filament 120mm above 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. Lift up your nozzle by 50mm (to make room for the filament!)
  5. Execute the following commands (one by one)
    5a) G92 E0
    This resets the "extruded material" value to 0.
    5b) G1 E100 F100
    This extrudes 100mm filament with 100mm/min.
  6. Now measure the distance between your extruder entry and the mark on your filament.

I.e 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.

Now calc:

c := current value in configuration.cfg
m := measured left over filament
d := desired mm
n := new value for configuration.cfg

((120 - m) / d) * c = n
((120 - 28) / 100) * 0.010500 = 0,009660
(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.

It would be absolutely awesome for people new to Klipper if this appeared in the "getting started" document. It is quite a culture shock coming from Marlin and this would be a great help, in my opinion.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

leungtech picture leungtech  路  4Comments

jannoke picture jannoke  路  3Comments

Michael-Bell picture Michael-Bell  路  5Comments

ChiliApple picture ChiliApple  路  4Comments

LazaroFilm picture LazaroFilm  路  6Comments