From c07b7ad582ccea7a58b2f1b8fcd3473820b4beed Mon Sep 17 00:00:00 2001 From: Timofey Titovets Date: Tue, 9 Dec 2025 00:35:45 +0100 Subject: [PATCH] docs: describe tap calibration routine Signed-off-by: Timofey Titovets --- docs/Eddy_Probe.md | 61 ++++++++++++++++++++++++++++++++++++++++++++++ docs/G-Codes.md | 14 +++++++---- 2 files changed, 70 insertions(+), 5 deletions(-) diff --git a/docs/Eddy_Probe.md b/docs/Eddy_Probe.md index 8d81bd88b..fb99a832f 100644 --- a/docs/Eddy_Probe.md +++ b/docs/Eddy_Probe.md @@ -55,6 +55,67 @@ surface temperature or sensor hardware temperature can skew the results. It is important that calibration and probing is only done when the printer is at a stable temperature. +## Tap calibration + +The Eddy probe measures the resonance frequency of the coil. +By the absolute value of the frequency and the calibration curve from +`PROBE_EDDY_CURRENT_CALIBRATE`, it is therefore possible to detect +where the bed is without physical contact. + +By use of the same knowledge, we know that frequency changes with +the distance. It is possible to track that change in real time and +detect the time/position where contact happens - a change of frequency +starts to change in a different way. +For example, stopped to change because of the collision. + +Because eddy output is not perfect: there is sensor noise, +mechanical oscillation, thermal expansion and other discrepancies, +it is required to calibrate the stop threshold for your machine. +Practically, it ensures that the Eddy's output data absolute value +change per second (velocity) is high enough - higher than the noise level, +and that upon collision it always decreases by at least this value. + +``` +[probe_eddy_current my_probe] +# eddy probe configuration... +tap_threshold: 0 +``` + +Suggested calibration routine works as follows: +1. Home Z +2. Place toolhead at the center of the bed. +3. Move Z far away, 30mm for example. +4. Run `PROBE METHOD=tap` +5. If it stops before collision, adjust the `tap_threshold`. + +Repeat until nozzle would softly touch the bed. +It easier to do so with clean nozzle and by visual inspection of the process. + +Example calibration values: +`1 -> 100 -> 200 -> 400 -> 800 -> 1200 -> 1600 -> 2000` + +Your value will normally be between those. +Too high value leaves less safe space, +if something is between the nozzle and the bed or if the nozzle +is too close to the bed before tap. +Too low, on the other hand, can make the toolhead stop in mid-air +because of the noise. + +You can validate the tap precision by measuring the paper thickness +from the initial calibration guide. It is expected to be ~0.1mm. + +Tap precision is limited by the sampling frequency and +the speed of the descent. +If you take 24 photos per second of the moving train, you can only estimate +where the train was between photos. + +It is possible to reduce the descending speed. It may require decrease of +absolute `tap_threshold` value. + +It is possible to tap over non-conductive surfaces as long as there is metal +behind it within the sensor's sensitivity range. +Max distance can be approximated to be about 1.5x of the coil's narrowest part. + ## Thermal Drift Calibration As with all inductive probes, eddy current probes are subject to diff --git a/docs/G-Codes.md b/docs/G-Codes.md index 893993e85..dc26ad446 100644 --- a/docs/G-Codes.md +++ b/docs/G-Codes.md @@ -1160,23 +1160,25 @@ The following commands are available when a see the [probe calibrate guide](Probe_Calibrate.md)). #### PROBE -`PROBE [PROBE_SPEED=] [LIFT_SPEED=] [SAMPLES=] -[SAMPLE_RETRACT_DIST=] [SAMPLES_TOLERANCE=] +`PROBE [METHOD=] [PROBE_SPEED=] [LIFT_SPEED=] +[SAMPLES=] [SAMPLE_RETRACT_DIST=] [SAMPLES_TOLERANCE=] [SAMPLES_TOLERANCE_RETRIES=] [SAMPLES_RESULT=median|average]`: Move the nozzle downwards until the probe triggers. If any of the optional parameters are provided they override their equivalent setting in the [probe config section](Config_Reference.md#probe). +The optional option `METHOD` is probe-specific. #### QUERY_PROBE `QUERY_PROBE`: Report the current status of the probe ("triggered" or "open"). #### PROBE_ACCURACY -`PROBE_ACCURACY [PROBE_SPEED=] [SAMPLES=] +`PROBE_ACCURACY [METHOD=] [PROBE_SPEED=] [SAMPLES=] [SAMPLE_RETRACT_DIST=]`: Calculate the maximum, minimum, average, median, and standard deviation of multiple probe samples. By default, 10 SAMPLES are taken. Otherwise the optional parameters default to their equivalent setting in the probe config section. +The optional option `METHOD` is probe-specific. #### PROBE_CALIBRATE `PROBE_CALIBRATE [SPEED=] [=]`: Run a @@ -1237,13 +1239,14 @@ The following commands are available when the is enabled. #### QUAD_GANTRY_LEVEL -`QUAD_GANTRY_LEVEL [RETRIES=] [RETRY_TOLERANCE=] +`QUAD_GANTRY_LEVEL [METHOD=] [RETRIES=] [RETRY_TOLERANCE=] [HORIZONTAL_MOVE_Z=] [=]`: This command will probe the points specified in the config and then make independent adjustments to each Z stepper to compensate for tilt. See the PROBE command for details on the optional probe parameters. The optional `RETRIES`, `RETRY_TOLERANCE`, and `HORIZONTAL_MOVE_Z` values override those options specified in the config file. +The optional option `METHOD` is probe-specific. ### [query_adc] @@ -1672,10 +1675,11 @@ The following commands are available when the [z_tilt config section](Config_Reference.md#z_tilt) is enabled. #### Z_TILT_ADJUST -`Z_TILT_ADJUST [RETRIES=] [RETRY_TOLERANCE=] +`Z_TILT_ADJUST [METHOD=] [RETRIES=] [RETRY_TOLERANCE=] [HORIZONTAL_MOVE_Z=] [=]`: This command will probe the points specified in the config and then make independent adjustments to each Z stepper to compensate for tilt. See the PROBE command for details on the optional probe parameters. The optional `RETRIES`, `RETRY_TOLERANCE`, and `HORIZONTAL_MOVE_Z` values override those options specified in the config file. +The optional option `METHOD` is probe-specific.