aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJulien Lirochon <julien@lirochon.net>2019-09-29 22:56:46 +0200
committerKevinOConnor <kevin@koconnor.net>2019-09-29 16:56:46 -0400
commit0c247e55e6ec62664d28f1274c553919ce870983 (patch)
treed84ac231b7c86304a2faf3a8655c11f15d73b40c
parent9fcd3e75cd69ba265cce41f436dc1d1187f433e6 (diff)
downloadkutter-0c247e55e6ec62664d28f1274c553919ce870983.tar.gz
kutter-0c247e55e6ec62664d28f1274c553919ce870983.tar.xz
kutter-0c247e55e6ec62664d28f1274c553919ce870983.zip
probe: Add range to probe accuracy results (#2015)
Signed-off-by: Julien Lirochon <julien@lirochon.net>
-rw-r--r--docs/Probe_Calibrate.md23
-rw-r--r--klippy/extras/probe.py5
2 files changed, 15 insertions, 13 deletions
diff --git a/docs/Probe_Calibrate.md b/docs/Probe_Calibrate.md
index 3cb7513a..bd1fc8a1 100644
--- a/docs/Probe_Calibrate.md
+++ b/docs/Probe_Calibrate.md
@@ -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.519448
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.
(That is, ideally the probe obtains an identical result on all ten
-probes.) However, it's normal for the minimum/maximum distance to
-differ by one Z step_distance or up to 5 microns (.005mm). So, in the
-above example, since the printer uses a Z step_distance of .0125, the
-results would be considered normal.
+probes.) However, it's normal for the minimum and maximum values
+to differ by one Z step_distance or up to 5 microns (.005mm).
+The distance between the minimum and the maximum value is called the
+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
-differs by more than 25 microns (.025mm) then the probe does not have
-sufficient accuracy for typical bed leveling procedures. It may be
-possible to tune the probe speed and/or probe start height to improve
-the repeatability of the probe. The `PROBE_ACCURACY` command allows
-one to run tests with different parameters to see their impact - see
+If the results of the test show a range value that is greater than
+25 microns (.025mm) then the probe does not have sufficient accuracy
+for typical bed leveling procedures. It may be possible to tune the
+probe speed and/or probe start height to improve the repeatability
+of the probe. The `PROBE_ACCURACY` command allows one to run tests
+with different parameters to see their impact - see
the [G-Codes document](G-Codes.md) for further details. If the probe
generally obtains repeatable results but has an occasional outlier,
then it may be possible to account for that by using multiple samples
diff --git a/klippy/extras/probe.py b/klippy/extras/probe.py
index a13d4098..69437f23 100644
--- a/klippy/extras/probe.py
+++ b/klippy/extras/probe.py
@@ -173,6 +173,7 @@ class PrinterProbe:
# Calculate maximum, minimum and average values
max_value = max([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]
median = self._calc_median(positions)[2]
# calculate the standard deviation
@@ -182,9 +183,9 @@ class PrinterProbe:
sigma = (deviation_sum / len(positions)) ** 0.5
# Show information
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" % (
- 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):
if kin_pos is None:
return