Welcome! Log In Create A New Profile

Advanced

Delta: Determine delta-radius, bed tilt, and bed imperfections all with one test?

Posted by jemenake 
Delta: Determine delta-radius, bed tilt, and bed imperfections all with one test?
March 07, 2018 02:36PM
While experimenting with the Universal Bed Leveling with a Z probe and wrestling with getting the delta radius set right, it dawned on me that it should be possible to deduce these from any of the mesh-style z-probing systems. The current Marlin delta auto-calibration may actually do the following, but I don't suspect so. I'll describe it here, and maybe someone can tell me how the current auto-calibration and bed-leveling differs.

Let's assume that, when the firmware wants to place the extruder at some (X,Y, Z), there are a variety of factors which can cause the actual Z to be different from the desired Z:
  • Errors in delta radius (which cause the bed to appear "cupped" up/down (i.e. increasing Z error with increasing radius)
  • Tilt of the bed
  • Slight undulations in the bed
Certainly, there are other factors (like smooth-rod length, the towers not being parallel, or not being 120-degrees apart), but I just want to focus on these three because they're hard to measure accurately manually.

Each of these can be resolved through a single round of mesh probing because they each are a type of aberration which can be checked independently of the others.

After the mesh probing, all the firmware really has is a set of [A, B, C] values (for the number of steps of the A, B, and C tower steppers) where the z-probe triggered. It uses those values along with good starting values for rod-length, delta-radius, etc, to get a set of (X, Y, Z) values.
To correct delta radius, we take those X and Y values to calculate the radius from (0,0), so we could use linear-regression to find how Z changes with radius. If it's not zero, then the print-bed is "cupped" (relative to our X,Y,Z calculations), which means that our delta-radius values are not quite correct. So, we adjust our assumed delta radius and run the numbers again, until we have a slope of zero for Z vs radius.
To correct for bed-tilt, we just don't convert to radius: we do a 3D linear-regression to find the best normal vector of the print-bed (which is then used for the entirety of the print... so, if your bed is tilted at 1 degree, the whole model is tilted that way)
Once we have best delta radius and bed-tilts, any remaining Z error is assumed to be fluctuations in the print bed (which, unlike tilt, are "faded" as Z increases).

There may be ways of deducing other values, too. I just know that delta-radius aberration can be figured out from the current mesh probing.
Oh, wow... now that I've played with it, it looks like the auto-calibration adjusts for a lot more than just those values. Looks like it figures out differences in the end-stops, too.
Sorry, only registered users may post in this forum.

Click here to login