How are the end stop corrections computed
-
Hi,
How are the end stop corrections computed?
Before I started using a Duet I used the "stick" method to determine the corrections. This involved turn off the motors, lowering them down to a known height above the frame of the printer and issuing a command which moved them up until the end stop switches were triggered.
This made sense to me as the frame of the printer was a fixed reference point.
However with the Duet, automatic calibration involves using a z-probe for which the reference is the bed, which may or may not be fixed and flat.
So how does this process determine the needed end stop corrections? I have not been able to figure out how it can do it.
Thanks much.
Frederick
-
On a delta printer it's not difficult to have a bed which is fixed and flat, so it's reasonable for the automatic calibration algorithm to assume that it is. After probing the points listed in the G30 commands in bed.g, the firmware uses a least squares minimisation algorithm to adjust a number of parameters of your build so as to minimise the sum of the squares of the height errors at the probe points.
You can choose which parameters it adjusts, they are controlled by the S parameter on the final G30 command in bed.g. If you use S4 and use 4 probe points in front of the towers and at the centre, then it is equivalent to traditional manual delta calibration but it converges faster. High values of that S parameter adjust additional parameters.
-
You can choose which parameters it adjusts, they are controlled by the S parameter on the final G30 command in bed.g. If you use S4 and use 4 probe points in front of the towers and at the centre, then it is equivalent to traditional manual delta calibration but it converges faster. High values of that S parameter adjust additional parameters.
Thanks very much - knowing that it is assumed the bed is flat explains how it can work.
However that leads me to another question…
We start by assuming the bed is flat but then proceed to determine, by probing, that it may indeed not be flat after all.
Are we talking about potential height errors too small to make a real difference in the end stop computations?
Frederick
-
I have a macro to probe the bed height at each tower base, after disabling any bed transform. My bed can be 0.2mm different at one tower to another but this doesn't stop me achieving 0.008 deviation after calibration so it can cope with slight tilt . I can print a 300mm spiral with perfect height all over the bed. You can use this macro once it's calibrated or after grid levelling, but without the gcode to disable transform, and it should read level.