probe: Add range to probe accuracy results (#2015)
Signed-off-by: Julien Lirochon <julien@lirochon.net>
This commit is contained in:
parent
9fcd3e75cd
commit
0c247e55e6
|
@ -93,22 +93,23 @@ Recv: // probe at -0.003,0.005 is z=2.506948
|
||||||
Recv: // probe at -0.003,0.005 is z=2.506948
|
Recv: // probe at -0.003,0.005 is z=2.506948
|
||||||
Recv: // probe at -0.003,0.005 is z=2.519448
|
Recv: // probe at -0.003,0.005 is z=2.519448
|
||||||
Recv: // probe at -0.003,0.005 is z=2.506948
|
Recv: // probe at -0.003,0.005 is z=2.506948
|
||||||
Recv: // probe accuracy results: maximum 2.506948, minimum 2.519448, average 2.513198, median 2.513198, standard deviation 0.006250
|
Recv: // probe accuracy results: maximum 2.519448, minimum 2.506948, range 0.012500, average 2.513198, median 2.513198, standard deviation 0.006250
|
||||||
```
|
```
|
||||||
|
|
||||||
Ideally the tool will report an identical maximum and minimum value.
|
Ideally the tool will report an identical maximum and minimum value.
|
||||||
(That is, ideally the probe obtains an identical result on all ten
|
(That is, ideally the probe obtains an identical result on all ten
|
||||||
probes.) However, it's normal for the minimum/maximum distance to
|
probes.) However, it's normal for the minimum and maximum values
|
||||||
differ by one Z step_distance or up to 5 microns (.005mm). So, in the
|
to differ by one Z step_distance or up to 5 microns (.005mm).
|
||||||
above example, since the printer uses a Z step_distance of .0125, the
|
The distance between the minimum and the maximum value is called the
|
||||||
results would be considered normal.
|
range. So, in the above example, since the printer uses a
|
||||||
|
Z step_distance of .0125, a range of 0.012500 would be considered normal.
|
||||||
|
|
||||||
If the results of the test show a minimum and maximum distance that
|
If the results of the test show a range value that is greater than
|
||||||
differs by more than 25 microns (.025mm) then the probe does not have
|
25 microns (.025mm) then the probe does not have sufficient accuracy
|
||||||
sufficient accuracy for typical bed leveling procedures. It may be
|
for typical bed leveling procedures. It may be possible to tune the
|
||||||
possible to tune the probe speed and/or probe start height to improve
|
probe speed and/or probe start height to improve the repeatability
|
||||||
the repeatability of the probe. The `PROBE_ACCURACY` command allows
|
of the probe. The `PROBE_ACCURACY` command allows one to run tests
|
||||||
one to run tests with different parameters to see their impact - see
|
with different parameters to see their impact - see
|
||||||
the [G-Codes document](G-Codes.md) for further details. If the probe
|
the [G-Codes document](G-Codes.md) for further details. If the probe
|
||||||
generally obtains repeatable results but has an occasional outlier,
|
generally obtains repeatable results but has an occasional outlier,
|
||||||
then it may be possible to account for that by using multiple samples
|
then it may be possible to account for that by using multiple samples
|
||||||
|
|
|
@ -173,6 +173,7 @@ class PrinterProbe:
|
||||||
# Calculate maximum, minimum and average values
|
# Calculate maximum, minimum and average values
|
||||||
max_value = max([p[2] for p in positions])
|
max_value = max([p[2] for p in positions])
|
||||||
min_value = min([p[2] for p in positions])
|
min_value = min([p[2] for p in positions])
|
||||||
|
range_value = max_value - min_value
|
||||||
avg_value = self._calc_mean(positions)[2]
|
avg_value = self._calc_mean(positions)[2]
|
||||||
median = self._calc_median(positions)[2]
|
median = self._calc_median(positions)[2]
|
||||||
# calculate the standard deviation
|
# calculate the standard deviation
|
||||||
|
@ -182,9 +183,9 @@ class PrinterProbe:
|
||||||
sigma = (deviation_sum / len(positions)) ** 0.5
|
sigma = (deviation_sum / len(positions)) ** 0.5
|
||||||
# Show information
|
# Show information
|
||||||
self.gcode.respond_info(
|
self.gcode.respond_info(
|
||||||
"probe accuracy results: maximum %.6f, minimum %.6f, "
|
"probe accuracy results: maximum %.6f, minimum %.6f, range %.6f, "
|
||||||
"average %.6f, median %.6f, standard deviation %.6f" % (
|
"average %.6f, median %.6f, standard deviation %.6f" % (
|
||||||
max_value, min_value, avg_value, median, sigma))
|
max_value, min_value, range_value, avg_value, median, sigma))
|
||||||
def probe_calibrate_finalize(self, kin_pos):
|
def probe_calibrate_finalize(self, kin_pos):
|
||||||
if kin_pos is None:
|
if kin_pos is None:
|
||||||
return
|
return
|
||||||
|
|
Loading…
Reference in New Issue