Ender 3 Klipper Conversion – Stage 3 – Extruder Rate & Stepper Motor Calibration
E-Step / Flow Rate calibration
Ender 3 Klipper Conversion – Stage 1 – Klipper & Mainsail
Ender 3 Klipper Conversion – Stage 2 – Configure Bed Level Probe
Ender 3 Klipper Conversion – Stage 3 – Extruder Rate & Stepper Motor Calibration
Ender 3 Klipper Conversion – Stage 4 – PID calibration
Ender 3 Klipper Conversion – Stage 5 – Camera Setup & Remote Access
Ender 3 Klipper Conversion – Stage 6 – Macros
Ender 3 Klipper Conversion – Stage 7 – Filament Runout Sensor
Ender 3 Klipper Conversion – Troubleshooting
- Make sure the extruder has filament in it, the hotend is heated to an appropriate temperature, and the printer is ready to extrude.
- Use a marker to place a mark on the filament around 70mm from the intake of the extruder body. Then use a digital calipers to measure the actual distance of that mark as precisely as one can. Note this as
<initial_mark_distance>. - Extrude 50mm of filament with the following command sequence:
G91
G1 E50 F60
Note 50mm as<requested_extrude_distance>. Wait for the extruder to finish the move (it will take about 50 seconds). It is important to use the slow extrusion rate for this test as a faster rate can cause high pressure in the extruder which will skew the results. (Do not use the “extrude button” on graphical front-ends for this test as they extrude at a fast rate.) - Use the digital calipers to measure the new distance between the extruder body and the mark on the filament.
Note this as<subsequent_mark_distance>
Then calculate:actual_extrude_distance = <initial_mark_distance> - <subsequent_mark_distance> - Calculate rotation_distance as:
rotation_distance = <previous_rotation_distance> * <actual_extrude_distance> / <requested_extrude_distance>
Round the new rotation_distance to three decimal places.
If the actual_extrude_distance differs from requested_extrude_distance by more than about 2mm then it is a good idea to perform the steps above a second time
https://ellis3dp.com/Print-Tuning-Guide/articles/extruder_calibration.html
Stepper run_current change
In case the stepper motor skips and there are no clogs or physical barriers to the filament (the filament slides in and out by hand) then increasing the power of the stepper motor may be necessary.
Make sure the stepper motor is rated to the current we are going to set!
Check the allowed max current the stepper motor can handle then change the run_current settings of the [tmc2209extruder] section in the printer.cfg file:
run_current: 1.4X & Y Axis Stepper Motor Calibration
The default 0.58 run_current set in the default printer.cfg file for the stepper motors may be insufficient. Check the stepper motors rated current that could be vary across models. Newer models rated 1.5A while older models less such as 0.8A
To calculate the run_current take the rated current of the motor:
Formula: RMS Current = Max Current/1.414
Calculation: 0.8A/1.414 = 0.565If the model numbers and datasheets unavailable then try solving the problem with analogue methods:
- When the printer skips steps – producing a grinding noise (such as given when the plate / stepper motor physically stuck)- increase the run_current value.
- If the motors are too hot to the touch and whine loud then decrease the run_current value.
Find the sweet spot when the motors don’t skip steps but not too hot either.
Always make sure that are no physical barriers of movement for the motors!
[tmc2209 stepper_x]
uart_pin: PC11
tx_pin: PC10
uart_address: 0
run_current: 0.8
stealthchop_threshold: 999999[tmc2209 stepper_y]
uart_pin: PC11
tx_pin: PC10
uart_address: 2
run_current: 0.8
stealthchop_threshold: 999999
stealthchop_threshold is there to make the stepper motors silent. Comment it out for not silent (and possibly more precise) operation.
