Impossible Bed mesh leveling - Cr10sPro V2

Hi guys. sorry for my english.

I’m try and try many time to level the bed, but really i don’t know why the mesh appear always wrong and distort.

I have follow the complete guide for bed leveling, z probe, paper, screw etc etc, but nothing… the bltouch do not compensate the bed errors.

I show my level bed after calibrate:

Whit marlin and octoprint was good, and so i do not think it’s a bltouch problem.

The klippy here.

Here my gcode start in cura:

Profile for Creality CR10S PRO V2
M201 X500.00 Y500.00 Z100.00 E5000.00 ;Setup machine max acceleration
M203 X500.00 Y500.00 Z10.00 E50.00 ;Setup machine max feedrate
M204 P500.00 R1000.00 T500.00 ;Setup Print/Retract/Travel acceleration
M205 X8.00 Y8.00 Z0.40 E5.00 ;Setup Jerk
M220 S100 ;Reset Feedrate
M221 S100 ;Reset Flowrate


G92 E0 ;Reset Extruder
G1 Z2.0 F3000 ;Move Z Axis up
G1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position
G1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line
G1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little
G1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line
G92 E0 ;Reset Extruder
G1 Z2.0 F3000 ;Move Z Axis up

If some one can help me please. thtanks


I´m not expirienced with bltouch, but if you mean you can´t see a z-correction while printing from you stepper?
This helped me maybe, hope its also useful for you?
You can try to disable fade and lower your split_delta in your [bed_mesh] section for more z-correction effect:

move_check_distance: 5
split_delta_z: 0.010 or 0.015
#fade_start: 1
#fade_end: 10
#fade_target: 0

What you also could try is in [bed_mesh] :

algorithm: bicubic
bicubic_tension: 0.2 => lowering this to 0.1 or 0.05 for more resolution, but depend on how precise your printer is…

But maybe your bltouch is not accurate in sight of following measurements that is for example the problem of kapazitve probes… first of all you have to know the real height with paper_test methode at all and if then your bed mesh is against it, your bltouch would be the problem…

thanks for your reply. I have try with paper test, and i see the friction is about the same for every point on the bed.
I have reduce from 0.5 the move_check_distance, but it not better, the same for split_delta and deactive the fade.

I dont know why with marlin was perfect and with klipper not…!! really
I have to use the Bltoucvh because it my z limit, i do not have any other z limit switch.

any example to set correctly the z_tilt?

My personal experience with cloned BLTouch devices is that they are not accurate. However others seem to use them with success, so your mileage may vary.

Looking at your config, are you sure the x_offset and y_offset values in [bltouch] are correct? I don’t think I have ever seen a BLTouch offset less than 40mm on one axis, and it defintiely looks farther than 27mm in the pictures of this device. I would also make sure that the y_offset is indeed “in front” of the nozzle.

Once you have confirmed your offsets, I would recommend doing the repeatability and probe location bias checks, as outlined here.

My Bltouch is original, it’s a default forniture with the CR10SPro v2.
the offset was the same in original firmware and tiny machine fork, but i have measured again with the klipper method guide (blue tape). I show you the image of the measure that i have take (sorry for my bad english).

On reddit I have read similar problems and they talk about the bed area is set too large and that it should be reduced, but honestly, with a bit of shame, I don’t know how to calculate the bed measurements to narrow the probe area of ​​bltouch.

The bltouch seems Not accurate enough, If paper Test is good.
Then you must Check bias and accuracy of your Probe… maybe its not possible with it!
If it is also your z-endstop you must try to find a reliable accurate Position for your z-homing.
You could also try to measure without x and y offsets, so haven’t a math correcting behavior from These offsets.
To Go down to 0.5 in check_distance i think to Low, its the horizontal distance of the z correcting.
Be Sure your Probe is accurate, instead you cant do bed mesh with it.

You can narrow area in bed_mesh…

I am surprised that creality would ship an original BLTouch with their printers, that is good.

As mentioned, you definitely want to do the repeatability and probe location bias check.

With regard to the mesh size, simply modify mesh_min and mesh_max. For example, you could start by moving the the mesh 10mm along each boundary:

speed = 100
horizontal_move_z = 5
mesh_min = 15, 15
mesh_max = 253, 295
probe_count = 5,5

Hi mates and thank again for you time…

I did a test by switching back to Marlin with fork tiny machine and on octoprint the bed seems to be much better, much better.
Here is a picture:

Then I re-installed klipper from scratch, and redid all procedures and settings. But nothing seems to have changed.

I show you the results of the measurements but it seems not to change nothing although everything seems perfect.


// LF (Base): X 55.0, Y 34.9, Z 1.76983
// RF : X 300.0, Y 34.9, Z 1.78067 : Adjust -> CCW 00:01
// RB: X 300.0, Y 278.0, Z 1.77400 : Adjust -> CCW 00:01
// LB : X 54.0, Y 278.0, Z 1.77150 : Adjust -> CCW 00:00

apparently it looks almost perfect


$ probe_accuracy
// PROBE_ACCURACY at X:177.000 Y:155.000 Z:10.000 (samples=10 retract=3.000 speed=4.0 lift_speed=4.0)
// probe at 177.000,155.000 is z=1.714000
// probe at 177.000,155.000 is z=1.714000
// probe at 177.000,155.000 is z=1.716500
// probe at 177.000,155.000 is z=1.714000
// probe at 177.000,155.000 is z=1.716500
// probe at 177.000,155.000 is z=1.714000
// probe at 177.000,155.000 is z=1.714000
// probe at 177.000,155.000 is z=1.714000
// probe at 177.000,155.000 is z=1.716500
// probe at 177.000,155.000 is z=1.714000
// probe accuracy results: maximum 1.716500, minimum 1.714000, range 0.002500, average 1.714750, median 1.714000, standard deviation 0.001146

I’m not sure but it would seem ok

I tried again the level of the bed at room temperature, still wrong and I don’t understand how this is possible

#*# <---------------------- SAVE_CONFIG ---------------------->
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
#*# [bltouch]
#*# z_offset = 1.719
#*# [bed_mesh default]
#*# version = 1
#*# points =
#*# 0.070000, -0.008333, -0.062500, -0.055000, -0.030833, 0.063333
#*# 0.087500, 0.040000, -0.021667, -0.030000, 0.010833, 0.048333
#*# 0.037500, 0.030000, 0.010833, 0.016667, 0.021667, 0.043333
#*# 0.015000, -0.020000, -0.040833, -0.017500, -0.015000, 0.010000
#*# -0.013333, -0.039167, -0.065833, -0.070833, -0.033333, 0.010833
#*# -0.127500, -0.175833, -0.217500, -0.194167, -0.150000, -0.093333
#*# tension = 0.2
#*# min_x = 5.0
#*# algo = bicubic
#*# y_count = 6
#*# mesh_y_pps = 2
#*# min_y = 5.0
#*# x_count = 6
#*# max_y = 305.0
#*# mesh_x_pps = 2
#*# max_x = 268.0

Bad Mesh Screenshot - printer.cfg - Google Drive

I don’t really know what I can do at this point.
Maybe I should try setting the z_tilt and z_tilt_adjust, but I have no idea how to do this and haven’t found a comprehensive beginner’s guide.

I’ll try to reduce the probe air and see what happens

Attach my new printer.cfg and klippy.log

Nothing to do, I have tried everything and I can’t find a solution. Note that the same problem occurs when changing BLtouch (I removed the one present on my cr10 v2 and mounted on cr10s pro) but the problem persists.
I have greatly reduced the probing plane and reduced the points to 3.3, the plane on the diagram is straight, but then in print it does not compensate for the variations of the plate in z. i don’t really know where to look for the problem yet.

could it be a g-code start problem?
I use this:

[gcode_macro PRE_START]
default_parameter_Z: 0.0
default_parameter_WZ: 0.25
default_parameter_WN: 0.4
  M106 S0
  M220 S100
  M221 S100
  M900 K0

The picture below the quoted sentences is from the Marlin mesh, right?

In general, I also have seen differences between Klipper mesh and Marlin mesh but not in the form that one is better / more correct than the other.

I have not seen anything in your configuration that would temper with the z-values leading to the observed behavior.

What might be interesting is a direct comparison between the Klipper and Marlin mesh:

  • Same starting point / mesh size
  • Same number of points
  • The Marlin mesh can be exported via G29 S0 command

i’ve exactly the same issue, where right in the middle of writing my post, as i got 2 other similar posts suggest… so i just put my findings there too… (as in the other post no one responded…)

i’ve tried get some help in the Facebook Group and also on Discord (but there its just gooing under in the sheer flood of chat messages… and in Facebook there aren’t to many active users looks like)

as i’ve got many pictures on facebook and just for reference, allready here’s the link: Facebook Groups

Basically my Bed is pretty warped (i guess)

changed to klipper a few weeks back and did ah lot of calibration prints, that where all small and in the center, where i never had an issue… but ah few days ago i tried printing something bigger that needs more bed size and somehow i started to see that the Z doesn’t get compensated to the warped bed correctly…

no matter what i tried now, the print on the right side was almost without any layer squish, and on the left side it is too much squish (too close) …

you even see the inconsitency starting pretty much to the left… also the center of the bed (where the bed is warped up at most) is to far away

i double checked the leveling, even tried to put ah piece of paper under ah few probe points to see if the bed mesh thats generated is correctly rotated, but that looks fine…

when dooing the bed screw calibration (with the bltouch) its just fine and within ah few minutes only… did ah reprobe right now,also tried something different what i come to in ah minute… also with that screw-minute values in the picture i get the bed mesh in the first picture above!

what i tried now is to just turn the screws up, so that the right 2 screws on the bed are 15min up… this is also meassured again correctly with the screw calibration!

my bed looks like this now after the mesh:

so clearly the left side is higher then before, now… so after trying to print again my test (its basically only superslicer support base with a single line and some space in between) i do see still its to high on the right and geting to low on the left… like the bed or the compansation is tilted (applied) somehow

i did tested to create ah new bed mesh before each print, doesn’t helped, just started to think it could be that in the first place… as i made the mesh, and saved it (as suggested in some macros) also got rid of that in the start code again now… just start print without anything special, i also tried to load specifically the (default) mesh before print also didn’t changed anything

probe accuracy should not be the issue either:
probe accuracy results: maximum 2.290000, minimum 2.285000, range 0.005000, average 2.287750, median 2.287500, standard deviation 0.002077

and i also had the printer running fine with marlin and ABL and later UBL (probed once, 50x50 and then only tilt probed each print with a 3-point probe), so mechanicaly it should also be fine!

sorry for dooing this, but i could only post one picture in ah post :man_facepalming:

so basically after unleveling the bed, the mesh also reprensts this… but still print went off on the first layer…

my assumption is its must be ah bug in klipper, when some sort of “too much” deviation needs to be made it’s not accomodating this correctly… but i did read allready ah couple of times thats it not really liked to open github issues without real confirmation, what does really suck ah little because this is something that just has to work and would drive me of klipper again… as never had these issues on marlin :frowning:

Exactly DaStivi, i have about the same issue, and i think it’s a bug on Klipper, because other people that i have contact on reddit, if have a deformed bed, klipper do not compensate this. I think will be good to see how to work the faulty region, but i do not have found a video or illustrated tutorial for making it.

I have try about 1kg of pla in the last 10 days. (i think i have sleep for max 10 hours in 10 days :smiley: )

i have try with the manual bed mesh (nothing…)
try to adjust every single screw of the structure (nothing)
I have see if the mesh are inverted… (nothing…)
change 2 bltouch (nothing)
chenge the position of the bltouch from lateral to front and change the axis (nothing)
The problem is always the same…

I have try to open a issue on the github, but close it costantly (for the admins are not a issue of klipper)

The fact is that klipper working good only with a perfect bed, or i think, it’s need have experience for correct the bed with the Faulty regione (but i dont have see any tutorial for that and the main text on the doc, is not clear for me… and i know that i’m noob, and my english is poor)

at moment i can print only at the center of the bed… but really i don want go back to marlin… really i dont like it. I hope that some admin can investigate this issue, but i dont have many hopes.

Some one can help me to understand to use bltouch only for “z limit switch” and print with a bad manual level?
I have create the manual mesh, and i have level the bed screw manual. So in the config file i need to delete some line for using the bltouch only for z limit?

Its very good documented in klipper you find it here:

And if there would be a bug, Kevin had fixed it already, because he`s very accurate!

I have really tried everything again. I went back to MArlin again and again with Stock Creality Firmware and the latest T3D version.
The first layer is perfect. On T3D with deformed bed it is recommended to use UBL, and I must say that without major corrections, the first layer was consistent across the entire bed space.

So, in summary, after trying 2 different BLtouch, after seeing if the screws were ok on all axes, etc etc etc, the problem still occurs only with klipper (in the last test I tried to adjust the offset z with baby step when printing, but it seems that it does not save the changes as it returns to 0 at the end of the print)

I believe there is a bug in klipper, as there are many posts referring to the same problem and all with original and non-original bltouch. The solutions often proposed are related to the prints in the center. I contacted some authors of these posts (even some of those who posted between September and December 2020) practically all are back on Marlin because they have not solved this problem, or with post closed as solved in reality the problem was not solved, but it was only apparently resolved

Does this happen with creality boards?
Does it happen more with 300x300 printing plates?

I believe we need to reproduce the problem and try to fix it.

Attach zip with last killpy log and printer.cfg

Well, all I can further contribute is to say:

  1. Mesh leveling works for me (BLTouch v2, SKR 1.4T, TMC2209)
  2. If it would be a systematic thing, a lot more people would have complained

I appreciate your effort to tackle the problem. I’d recommend a more systematic approach:

  1. Use a bare minimum klipper.cfg to rule out any interference with other settings (just steppers, bltouch, mcu etc)
  2. Verify probe repeatability under Marlin as well as under Klipper → both should show the same accuracy
  3. Compare Klipper’s mesh with Marlin’s mesh under the same settings (mesh size, starting point, probe count etc.) → Both should graphically give the same “bed shape” (use the same tools for visualizing, not Marlin Octoprint and Klipper Mainsail)
  4. Try to verify the real Z-Distance at some selected point, e.g. with a feeler gauge

I’m working on setting up a local printer to attempt to reproduce this issue, however in the meantime I have spoken to a few people and we have a potential theory about what may be happening. @DaStivi If you haven’t already, try disabling interpolation on your z_stepper, ie:

[tmc2208 stepper_z]
uart_pin: P1.8
run_current: 0.800
hold_current: 0.500
interpolate: False
#stealthchop_threshold: 10

This will make the z_stepper louder, but it would be worthwhile to see if the you get some realworld adjustment when driver interpolation is disabled. I would suggest re-probing the with interpolation disabled before attempting to print as well.