[FR] Add a feature to reduce mesh bed leveling probing points to only the necessary ones

I always let my printer meshbed level before each print (I got a removable bed, which slightly changes the surface if not aligned properly), so I meshbed level before each print to get the best results.

An idea to speedup the process of bed mesh leveling would be to first measure the bed when the printer starts to get a rough idea (or skip this by using old data. or just using the homing points distance as blank reference for all points) and then only measure the points that are really necessary.

Here is an example print:

The idea is “simple”:

  1. here is an example print
  2. you go through the gcode and dtermine the min/max coordinates (obviousy this only allows for coarse detection of necessary probing points).
  3. you overlay your normal probing points onto the print
  4. you “skip” the points that aren’t in the blue box’s area (thought here two options can be actually used one would be a circle that grows until non touching points (non touching of the blue box) are hit, this would give us bigger saves).
  5. or this is marked as 4a) one that checks if it’s int he same quadrant so to speak, though this gives us lower gains, but probably higher accuracy.

In this example this would mean that probing only requires 33% of the time compared to before, this would come incredible handy for small parts.

Another method of probing that doesn’t give any speed advantages would be:

???: instead of skipping steps you probe the same amount but over the area that is necessary, this should improve accuracy. Though this probably would require more work to get implemented.

Would it be possible to implement something like this? If no one is interested I will look into it, though no guarantees how long this will take to implement because I first have to get familiar with klippers code.

I think I’m not the only one that would appreciate a feature like this!

See Probe only object area on each print / Klipper mesh on print area only

1 Like

Wow thanks!

Is this written in the documentation somewhere? if not maybe adding it would be awesome.

Well, kind of unofficial documentation is here. You cannot put every cool user macro in the documentation. It is already pretty extensive