Trying to understand this aspect of bed mesh leveling

So I’ve been trying deal with a slightly bowed bed on my CR10S-Pro. I’ve ran all the procedures, but still end up with something slightly as described in this post:

Now, my checks haven’t pointed to the same solution that person found, but I am curious about how the bed mesh in non probed areas of the bed are accounted for?

I’ve got a BLTouch with an E3D Hemera (Hermes) on my printer, with probe offset of (-45, 0), bed mesh min at (15, 15) and max at (254, 299) on a bed of size (300x310). So how’s the rest of the bed points past 254 calculated? It seems there’s a transform to say 254 IS 300, but that’s a variance of 46mm, and I notice my bead squish drops to nothing once it crosses that X-coord.

So wondering how does klipper actually account for the area outside of what’s probed and if it doesn’t or if it’s just better, should I keep my prints inside the probed area only? Appreciate any response or pointing to info.

Locations outside of the mesh are clamped to the nearest point at the edge of the mesh. If your bed is relatively flat you can print outside of the mesh. If not then it would be best to stay within it.

Thanks for the insight, I tried doing my print within the measured area right after I posted this and it definitely went down more so as expected. There’s additional warp I think as I’ve tried to correct the convex bend with some tape, but doesn’t seem to be helping.

In any event I’ll just try to keep most prints in the space, but I have these sequential prints I’d really like to take advantage of the whole bed with. maybe I can find a way to swap the nozzle and bltouch for calibration and swap back afterwards… le sigh.

You can always create a manual mesh that covers more of the bed.

A manual mesh? As in take measurements myself on areas the BLTouch can’t reach?

One of my printers doesn’t have a probe, so I created a manual mesh. You use the “paper test” to get the nozzle to the same distance above the bed at each probe point. Once complete you save the mesh and load it at the beginning of each print. I’ve been using the same mesh for months with great results. The advantage is you can “probe” any point on the bed that the nozzle can reach. The disadvantage is it takes 10 or 15 minutes to create the mesh.


1 Like

Thanks, I’ll give this a try!

Ok, so I’m either lazy or incredibly over estimating my points. I went ahead and adjusted my mesh to be a 10x5 set of probe points. At 50 points I barely made it through 8 points before I gave up on the monotony and cumbersome command line usage in octoprint to adjust z at each point (maybe they should do next point starting at previous height + a specified offset??).

In any event, I have a spare BLTouch and wanna run this idea by others. Since leveling’s done cold, I want to just design an attachment to my volcano hotend that has the BLTouch pin in line with the nozzle point, mount a spare BLTouch to it and then mount that to the heaterblock section and basically run the bed mesh with no x or y offset, but a pretty big negative z offset. Get the bed mesh and revert the bltough offsets to it’s standard mounting position and not run a bed level before every print.

My tired mind says this should give me a more precise calibration and not have me not doing the laborious task of taking each point (and possibly modifying the point resolution a lot easier) and the added benefit of getting the whole bed. Feels like this is something someone else would have tried. Sounds like it should work? My initial thought is reverting to the original mount location means that the standard homing may be off? But unsure about that.

I’ll draft something up and post back. But if it fails I’ll revert to trying it manually.

I’m not sure if this is going to work: You would define a mesh with “BLTouch Offset A” and later (during print) use this mesh with a different “BLTouch Offset B”
This would have to be answered by an expert in this code area.

1 Like

I can’t answer that question, but I will say a 50 point mesh is excessive in my opinion. I never use more than 25 points.

I also speed up the process using macros. I have TESTZ macros that move the nozzle up and down 0.1mm and 0.01mm. I use mainsail so the macros are visible as buttons, and I do the entire process just clicking those buttons. Still a bit tedious, but much faster than typing things into the console.

1 Like

I’ve heard of this Mainsail, is it an alt to OctoPrint? I’ll look it up and the other’s I’ve heard about. Thanks for the insight and I’ll report back on this project.

Yea, that was my pontification. However, what I think will happen is once I define the mesh it’s wholly separate from the bltouch and it’s offset in that I won’t need to redo the mesh. But as long as the offsets are accurate then the mesh that was generated with Offset A will work just fine with Offset B. Will report back.

Yes, more modern and lightweight but less configuration options IMO. Many prefer it, personally I stick to Octoprint as it can be massively tuned to suit my needs

This is how I use what @jakep_82 mentioned in Octoprint. See

and also very useful to build your own UI (especially with large screens)

1 Like

I think I’d like to go this route as well and stay on octo. Will scope out this github page.

In other news, my idea worked swimingly well. Well, to be fair, it was a little janky on the G28 part of running things, because G28 wants to come down to Z=10 while the BLTouch has an offset of 44.5mm, lol. so I had to hold my mounted piece in place for G28 and then screw it down after I ran a G1 Z60 to give me space.

If I can figure out how to override that piece of G28 and not having it try to slam down to Z=10 I’ll write up what I did and post the mount I made (for my E3D Hermes with a volcano nozzle). Either way, I got my 10x5 mesh done and swapped back and the whole bed is sticking true after printing a custom level test. Extremely happy with my results and not having to manually level. Thanks for all the input and insights!