New feature discussion: bed_mesh + measured bed tilt correction

The important part first – I might be willing to take a swing at implementing this, but I think some feedback first to see if there are any issues is wise, before putting in a bunch of work to discover that what I’m thinking isn’t of interest to people, or won’t work at all for some reason… There has been some question about what I’m about to suggest here and here, but the resulting threads misunderstood what the posters were asking.

Short version: I want to be able to combine a measured bed_mesh with a measured bed_tilt, with the result being an adjustment that should be able to print a properly square cube, regardless of the state of the bed. In theory, (I think, anyway) this should eliminate the need to run BED_SCREWS_ADJUST, except for gross adjustments. And yes, I am aware that currently, bed_mesh and bed_tilt cannot be used at the same time.

Why is this important? The two corrections are intended for different defects in the print surface. bed_mesh corrects imperfections in the surface height of the build plate, but assumes that the plate is exactly aligned with the [x,y,z=0] plane in the print volume. bed_tilt on the other hand corrects for a bed that is not aligned with [x,y,z=0], but assumes that the plate itself is perfectly smooth. In practice, a build plate usually has both problems – it has minor surface imperfections, as well as having a slight 2 dimensional tilt with respect to the bottom of the print volume.

My assumption is that the flatness of the build plate is fairly constant, and is expensive to measure in terms of time, and that the bed tilt varies more easily with temperature and vibration, and can be measured with a much smaller number of points. The process I am suggesting would be that bed_mesh and bed_tilt are created with much the same process that is currently in place. The difference would be that for printing, a best-fit plane would be calculated for the bed mesh, and and a transformation created using this plane and the tilt correction that that would align this plane with [x,y,z=0] plane of the print volume, while maintaining the corrections for the bed surface.

While good practice would be to have the bed as level as possible before measuring the bed mesh and before printing, this correction makes this far less important. You should be able to probe and create a bed mesh with the right side of the build plate several millimetres low, and then use that bed mesh to print on a build plate where right side is several millimetres high. (Assuming that the bed tilt is correctly measured before the print.)

So… Would this be useful? Am I missing something obvious? :slight_smile:



I think this would make the print process faster and simpler, so in general I am very much in favor of this idea.

There might be a complication here since in my experience (which is limited since I’ve only been playing around with printers for about a year) the actual bed is probably the largest part of the equation, but not the only part: most, if not al of us will have a magnetic sticker on top. That stays with the bed, so will be part of the mesh/tilt measurements, no issues there yet. But on top of that sits a plate which may or may not be warped, have bumps, ridges and other deformations. These will move around in quite a few cases since not all printers have little guides to get the plate placed in exactly the same place on the bed. Or we’ll flip them over to use the other side, or… even swap plates completely.

I have no hard data on if this actually makes a significant difference. Little damages to the plates are often just localised to a few square mm or cm, and may not even get measured at all by a mesh right now, the delta caused by those imperfections may not be significant enough anyway. But it might be something to keep in mind?

Another thing I just thought of: if the bed is tilted things are not actually squared properly: the angle of x to z and y to z will not be perfectly 90 degress. Right now, probably very few of us will have perfectly square frames, so this will probably not have any significant impact either. But in theory, if you want a print that is properly square (x to z and y to z), while not adjusting a tilted bed, the print would have to be tilted in full by an equal amount and thus come out ‘tower of pisa like’ if that makes any sense.