mirror of
https://github.com/Klipper3d/klipper.git
synced 2026-02-08 01:01:06 -07:00
Deploying to gh-pages from @ Klipper3d/klipper@1fe9fb3ad4 🚀
This commit is contained in:
parent
eb09030469
commit
a3e0589404
4 changed files with 119 additions and 12 deletions
|
|
@ -6097,6 +6097,9 @@ sensor_type: ldc1612
|
|||
#samples_tolerance:
|
||||
#samples_tolerance_retries:
|
||||
# See the "probe" section for information on these parameters.
|
||||
#tap_threshold: 0
|
||||
# Noise cutoff/stop trigger threshold delta Hz per sample
|
||||
# See the Eddy_Probe.md for explanation
|
||||
</code></pre></div>
|
||||
|
||||
<h3 id="axis_twist_compensation">[axis_twist_compensation]<a class="headerlink" href="#axis_twist_compensation" title="Permanent link">¶</a></h3>
|
||||
|
|
|
|||
104
Eddy_Probe.html
104
Eddy_Probe.html
|
|
@ -1307,6 +1307,13 @@
|
|||
</label>
|
||||
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#tap-calibration" class="md-nav__link">
|
||||
Tap calibration
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#thermal-drift-calibration" class="md-nav__link">
|
||||
Thermal Drift Calibration
|
||||
|
|
@ -1391,6 +1398,13 @@
|
|||
</label>
|
||||
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#tap-calibration" class="md-nav__link">
|
||||
Tap calibration
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#thermal-drift-calibration" class="md-nav__link">
|
||||
Thermal Drift Calibration
|
||||
|
|
@ -1443,7 +1457,8 @@ named <code>[probe_eddy_current my_eddy_probe]</code> then one would run
|
|||
<code>LDC_CALIBRATE_DRIVE_CURRENT CHIP=my_eddy_probe</code>. This command should
|
||||
complete in a few seconds. After it completes, issue a <code>SAVE_CONFIG</code>
|
||||
command to save the results to the printer.cfg and restart.</p>
|
||||
<p>The second step in calibration is to correlate the sensor readings to
|
||||
<p>Eddy current is used as a proximity/distance sensor (similar to a laser ruler).
|
||||
The second step in calibration is to correlate the sensor readings to
|
||||
the corresponding Z heights. Home the printer and navigate the
|
||||
toolhead so that the nozzle is near the center of the bed. Then run a
|
||||
<code>PROBE_EDDY_CURRENT_CALIBRATE CHIP=my_eddy_probe</code> command. Once the
|
||||
|
|
@ -1454,7 +1469,17 @@ those steps are complete one can <code>ACCEPT</code> the position. The tool will
|
|||
then move the toolhead so that the sensor is above the point where the
|
||||
nozzle used to be and run a series of movements to correlate the
|
||||
sensor to Z positions. This will take a couple of minutes. After the
|
||||
tool completes, issue a <code>SAVE_CONFIG</code> command to save the results to
|
||||
tool completes it will output the sensor performance data:</p>
|
||||
<div class="highlight"><pre><span></span><code>probe_eddy_current: noise 0.000642mm, MAD_Hz=11.314 in 2525 queries
|
||||
Total frequency range: 45000.012 Hz
|
||||
z_offset: 0.250 # noise 0.000200mm, MAD_Hz=11.000
|
||||
z_offset: 0.530 # noise 0.000300mm, MAD_Hz=12.000
|
||||
z_offset: 1.010 # noise 0.000400mm, MAD_Hz=14.000
|
||||
z_offset: 2.010 # noise 0.000600mm, MAD_Hz=12.000
|
||||
z_offset: 3.010 # noise 0.000700mm, MAD_Hz=9.000
|
||||
</code></pre></div>
|
||||
|
||||
<p>issue a <code>SAVE_CONFIG</code> command to save the results to
|
||||
the printer.cfg and restart.</p>
|
||||
<p>After initial calibration it is a good idea to verify that the
|
||||
<code>x_offset</code> and <code>y_offset</code> are accurate. Follow the steps to
|
||||
|
|
@ -1470,6 +1495,81 @@ result in changes in reported Z height. Changes in either the bed
|
|||
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.</p>
|
||||
<h2 id="tap-calibration">Tap calibration<a class="headerlink" href="#tap-calibration" title="Permanent link">¶</a></h2>
|
||||
<p>The Eddy probe measures the resonance frequency of the coil.
|
||||
By the absolute value of the frequency and the calibration curve from
|
||||
<code>PROBE_EDDY_CURRENT_CALIBRATE</code>, it is therefore possible to detect
|
||||
where the bed is without physical contact.</p>
|
||||
<p>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.</p>
|
||||
<p>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.</p>
|
||||
<div class="highlight"><pre><span></span><code>[probe_eddy_current my_probe]
|
||||
# eddy probe configuration...
|
||||
tap_threshold: 0
|
||||
</code></pre></div>
|
||||
|
||||
<p>The suggested calibration routine works as follows:</p>
|
||||
<ol>
|
||||
<li>Home Z</li>
|
||||
<li>Place the toolhead at the center of the bed.</li>
|
||||
<li>Move the Z axis far away (30 mm, for example).</li>
|
||||
<li>Run <code>PROBE METHOD=tap</code></li>
|
||||
<li>If it stops before colliding, increase the <code>tap_threshold</code>.</li>
|
||||
</ol>
|
||||
<p>Repeat until the nozzle softly touches the bed.
|
||||
This is easier to do with a clean nozzle and
|
||||
by visually inspecting the process.</p>
|
||||
<p>You can streamline the process by placing the toolhead in the center once.
|
||||
Then, upon config restart, trick the machine into thinking that Z is homed.</p>
|
||||
<div class="highlight"><pre><span></span><code>SET_KINEMATIC_POSITION X=<middle> Y=<middle> Z=0
|
||||
G0 Z5 # Optional retract
|
||||
PROBE METHOD=tap
|
||||
</code></pre></div>
|
||||
|
||||
<p>Here is an example sequence of threshold values to test:</p>
|
||||
<div class="highlight"><pre><span></span><code>1 -> 5 -> 10 -> 20 -> 40 -> 80 -> 160
|
||||
160 -> 120 -> 100
|
||||
</code></pre></div>
|
||||
|
||||
<p>Your value will normally be between those.</p>
|
||||
<ul>
|
||||
<li>Too high a value leaves a less safe margin for early collision -
|
||||
if something is between the nozzle and the bed, or if the nozzle
|
||||
is too close to the bed before the tap.</li>
|
||||
<li>Too low - can make the toolhead stop in mid-air
|
||||
because of the noise.</li>
|
||||
</ul>
|
||||
<p>You can estimate the initial threshold value by analyzing your own
|
||||
calibration routine output:</p>
|
||||
<div class="highlight"><pre><span></span><code>probe_eddy_current: noise 0.000642mm, MAD_Hz=11.314
|
||||
...
|
||||
z_offset: 1.010 # noise 0.000400mm, MAD_Hz=14.000
|
||||
</code></pre></div>
|
||||
|
||||
<p>The estimation will be:</p>
|
||||
<div class="highlight"><pre><span></span><code>MAD_Hz * 2
|
||||
11.314 * 2 = 22.628
|
||||
</code></pre></div>
|
||||
|
||||
<p>You can validate the tap precision by measuring the paper thickness
|
||||
from the initial calibration guide. It is expected to be ~0.1mm.</p>
|
||||
<p>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.</p>
|
||||
<p>It is possible to reduce the descending speed. It may require decrease of
|
||||
absolute <code>tap_threshold</code> value.</p>
|
||||
<p>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.</p>
|
||||
<h2 id="thermal-drift-calibration">Thermal Drift Calibration<a class="headerlink" href="#thermal-drift-calibration" title="Permanent link">¶</a></h2>
|
||||
<p>As with all inductive probes, eddy current probes are subject to
|
||||
significant thermal drift. If the eddy probe has a temperature
|
||||
|
|
|
|||
22
G-Codes.html
22
G-Codes.html
|
|
@ -5900,21 +5900,23 @@ information from your slicer to Klipper.</p>
|
|||
<a href="Config_Reference.html#bltouch">bltouch config section</a> is enabled (also
|
||||
see the <a href="Probe_Calibrate.html">probe calibrate guide</a>).</p>
|
||||
<h4 id="probe_1">PROBE<a class="headerlink" href="#probe_1" title="Permanent link">¶</a></h4>
|
||||
<p><code>PROBE [PROBE_SPEED=<mm/s>] [LIFT_SPEED=<mm/s>] [SAMPLES=<count>]
|
||||
[SAMPLE_RETRACT_DIST=<mm>] [SAMPLES_TOLERANCE=<mm>]
|
||||
<p><code>PROBE [METHOD=<value>] [PROBE_SPEED=<mm/s>] [LIFT_SPEED=<mm/s>]
|
||||
[SAMPLES=<count>] [SAMPLE_RETRACT_DIST=<mm>] [SAMPLES_TOLERANCE=<mm>]
|
||||
[SAMPLES_TOLERANCE_RETRIES=<count>] [SAMPLES_RESULT=median|average]</code>:
|
||||
Move the nozzle downwards until the probe triggers. If any of the
|
||||
optional parameters are provided they override their equivalent
|
||||
setting in the <a href="Config_Reference.html#probe">probe config section</a>.</p>
|
||||
setting in the <a href="Config_Reference.html#probe">probe config section</a>.
|
||||
The optional parameter <code>METHOD</code> is probe-specific.</p>
|
||||
<h4 id="query_probe">QUERY_PROBE<a class="headerlink" href="#query_probe" title="Permanent link">¶</a></h4>
|
||||
<p><code>QUERY_PROBE</code>: Report the current status of the probe ("triggered" or
|
||||
"open").</p>
|
||||
<h4 id="probe_accuracy">PROBE_ACCURACY<a class="headerlink" href="#probe_accuracy" title="Permanent link">¶</a></h4>
|
||||
<p><code>PROBE_ACCURACY [PROBE_SPEED=<mm/s>] [SAMPLES=<count>]
|
||||
<p><code>PROBE_ACCURACY [METHOD=<value>] [PROBE_SPEED=<mm/s>] [SAMPLES=<count>]
|
||||
[SAMPLE_RETRACT_DIST=<mm>]</code>: 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.</p>
|
||||
their equivalent setting in the probe config section.
|
||||
The optional parameter <code>METHOD</code> is probe-specific.</p>
|
||||
<h4 id="probe_calibrate">PROBE_CALIBRATE<a class="headerlink" href="#probe_calibrate" title="Permanent link">¶</a></h4>
|
||||
<p><code>PROBE_CALIBRATE [SPEED=<speed>] [<probe_parameter>=<value>]</code>: Run a
|
||||
helper script useful for calibrating the probe's z_offset. See the
|
||||
|
|
@ -5963,13 +5965,14 @@ SET_PIN command without an explicit CYCLE_TIME parameter will use the
|
|||
<a href="Config_Reference.html#quad_gantry_level">quad_gantry_level config section</a>
|
||||
is enabled.</p>
|
||||
<h4 id="quad_gantry_level_1">QUAD_GANTRY_LEVEL<a class="headerlink" href="#quad_gantry_level_1" title="Permanent link">¶</a></h4>
|
||||
<p><code>QUAD_GANTRY_LEVEL [RETRIES=<value>] [RETRY_TOLERANCE=<value>]
|
||||
<p><code>QUAD_GANTRY_LEVEL [METHOD=<value>] [RETRIES=<value>] [RETRY_TOLERANCE=<value>]
|
||||
[HORIZONTAL_MOVE_Z=<value>] [<probe_parameter>=<value>]</code>: 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 <code>RETRIES</code>, <code>RETRY_TOLERANCE</code>, and <code>HORIZONTAL_MOVE_Z</code> values
|
||||
override those options specified in the config file.</p>
|
||||
override those options specified in the config file.
|
||||
The optional parameter <code>METHOD</code> is probe-specific.</p>
|
||||
<h3 id="query_adc">[query_adc]<a class="headerlink" href="#query_adc" title="Permanent link">¶</a></h3>
|
||||
<p>The query_adc module is automatically loaded.</p>
|
||||
<h4 id="query_adc_1">QUERY_ADC<a class="headerlink" href="#query_adc_1" title="Permanent link">¶</a></h4>
|
||||
|
|
@ -6333,13 +6336,14 @@ automatically upon homing.</p>
|
|||
<p>The following commands are available when the
|
||||
<a href="Config_Reference.html#z_tilt">z_tilt config section</a> is enabled.</p>
|
||||
<h4 id="z_tilt_adjust">Z_TILT_ADJUST<a class="headerlink" href="#z_tilt_adjust" title="Permanent link">¶</a></h4>
|
||||
<p><code>Z_TILT_ADJUST [RETRIES=<value>] [RETRY_TOLERANCE=<value>]
|
||||
<p><code>Z_TILT_ADJUST [METHOD=<value>] [RETRIES=<value>] [RETRY_TOLERANCE=<value>]
|
||||
[HORIZONTAL_MOVE_Z=<value>] [<probe_parameter>=<value>]</code>: 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 <code>RETRIES</code>, <code>RETRY_TOLERANCE</code>, and <code>HORIZONTAL_MOVE_Z</code> values
|
||||
override those options specified in the config file.</p>
|
||||
override those options specified in the config file.
|
||||
The optional parameter <code>METHOD</code> is probe-specific.</p>
|
||||
|
||||
|
||||
</article>
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
Loading…
Add table
Add a link
Reference in a new issue