PROBE_CALIBRATE is not sufficient to let the nozzle touch the bed while printing

Basic Information:

Printer Model: Ender Pro 3 with BL Touch
MCU / Printerboard: 4.2.2
Host / SBC : Octoprint
Klipper version : v0.12.0-261-g248d3dbf-dirty
klippy.log.zip (381.2 KB)

Describe your issue:

I’m facing an issue with klipper since my begining (3 months), but I assume it could have a better solution.

I’m doing the PROBE_CALIBRATE procedure, with the paper test, at the end, it returns something around 0.6 to 0.9. As recommended, with bed and extruder at room temperature.

Then I’m doing the bed mesh after save and restart.
When I start a print after, the nozzle is really far from the bed, it’s printing in the air.

Then, I’m setting 2.3/2.4 as the z_offset (around the offset I used in Marlin), I rerun the bed mesh calibrate, and it’s way better.

I have the following macro defined:

[delayed_gcode bed_mesh_init]
initial_duration: .01
gcode:
    BED_MESH_PROFILE LOAD=default

[gcode_macro G29]
gcode:
    G28
    BED_MESH_CALIBRATE
    G0 X0 Y0 Z10 F6000
    BED_MESH_PROFILE save=default
    SAVE_CONFIG

And to be safer, I’ve also added BED_MESH_PROFILE LOAD=default in the gcode start section of my slicer.

Is there a trick, I’m missing to have the PROBE_CALIBRATE returning the good value?
Thanks

Hello @Rapha !

The results are as good as the hardware is.
If the surface of the bed is wavy and/or warped by nature, it is the way it is.

Are you using a genuine BLtouch?
Also, a good aligned bed is mandatory.

A screenshot of the bed surface in the frontend of your choice can help too.

@EddyMI3D , thanks for your reply.

I use a Genuine BLtouch, having very stable probing.
The bed is a genuine Creality Glass bed.
Here the bed mesh matrix:

#*# [bed_mesh default]
#*# version = 1
#*# points =
#*# 	  -0.141250, -0.128750, -0.108750, -0.100000, -0.057500, -0.022500, -0.147500
#*# 	  -0.118750, -0.121250, -0.100000, -0.086250, -0.046250, -0.013750, -0.130000
#*# 	  -0.098750, -0.093750, -0.057500, -0.045000, -0.017500, 0.023750, -0.096250
#*# 	  -0.105000, -0.078750, -0.048750, -0.027500, 0.016250, 0.058750, -0.055000
#*# 	  -0.086250, -0.057500, -0.011250, 0.016250, 0.057500, 0.115000, -0.002500
#*# 	  -0.057500, -0.023750, 0.012500, 0.040000, 0.103750, 0.155000, 0.036250
#*# 	  -0.050000, -0.015000, 0.056250, 0.083750, 0.137500, 0.215000, 0.108750
#*# x_count = 7
#*# y_count = 7
#*# mesh_x_pps = 2
#*# mesh_y_pps = 2
#*# algo = bicubic
#*# tension = 0.2
#*# min_x = 18.0
#*# max_x = 174.96
#*# min_y = 18.0
#*# max_y = 201.95999999999998

do you think the bed itself could be the fault?

Actually the measured points of the bed are quite uneven.

There is a difference of -0.1475 to 0.215. That is 0.3625 mm, almost two layers.

Thanks again @EddyMI3D , I’ve just discovered SCREWS_TILT_CALCULATE to help of the bed leveling.
Then, after a BED_MESH_PROFILE, I have now:

#*# 	  0.003750, -0.026250, -0.016250, 0.010000, 0.068750, -0.035000
#*# 	  -0.032500, -0.045000, -0.060000, -0.037500, 0.031250, 0.007500
#*# 	  -0.020000, -0.038750, -0.015000, -0.005000, 0.035000, -0.023750
#*# 	  -0.023750, -0.023750, -0.043750, -0.005000, 0.051250, 0.007500
#*# 	  -0.015000, -0.023750, 0.008750, 0.021250, 0.070000, -0.053750
#*# 	  -0.027500, -0.012500, -0.017500, 0.013750, 0.086250, 0.048750

which seems better.

I now find a value with PROBE_CALIBRATE, that is closer to what I used to, but there is still a gap between the bed and nozzle while printing, and I need to increase the z_offset manually…

May be the entire BL Touch should be renewed? (4 yo)

Looks waaaay better :+1: :
When you can fix it by correcting the z_offset, all should be fine.

But I fix it manually, without any logic, because the PROBE_CALIBRATE returns something very far from the necessary offset.
Does the probe calibrate take the bed mesh into account? should I load it before doing the probe calibrate?
Thanks

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.