EDDY TAP モードデバッグ
このページでは、EDDY の TAP モードにおけるデバッグ手順、確認手順、および一般的な問題のトラブルシューティングについて説明します。TAP モードは、ノズルがベッドに軽く触れてトリガーしきい値を判断するため、デバッグ時にはノズル、ヒートベッド、Z 軸の動作状態に注意する必要があります。
開始する前に、プリンターの電源を完全にオフにし、電源プラグを抜いてください。通電状態でケーブルを抜き差ししたり、インターフェースの配線を整理したり、端子に触れたりしないでください。
- このページはデバッグ方法の説明であり、そのままコピーして使用できる完全な
printer.cfgではありません。 canbus_uuid、serial、プローブピン、ホーミング方向、Z 軸ストローク、オフセット量は、実際のハードウェアに応じて修正する必要があります。- 初めて有効にする前に、EDDY、ツールボード、メインボード、および Z 軸の機械的構造が正常であることを確認してください。
適用範囲
- EDDY / LDC1612 渦電流センサーを使用し、
METHOD=tapまたは TAP しきい値トリガー方式を使用する必要がある場合。 - FLY SHT36 V3、SB2040 V3 など、EDDY をサポートするツールボードに適用されます。
- 基本的な EDDY 配線と通常の高さ校正が完了しており、さらに TAP モードを有効化またはトラブルシューティングする必要がある場合。
バージョン要件
- FLY FAST システムを使用する場合:システムバージョン
V1.3.9以上 である必要があります。 - その他のシステムを使用する場合:Klipper が最新バージョンに更新されていることを確認してください。
- ツールボードまたは関連する下位機のファームウェアも最新バージョンに更新する必要があります。そうしないと、ホストが TAP コマンドをサポートしていても、MCU ファームウェアが応答しない可能性があります。
必要な設定
SHT36 V3 または SB2040 V3 を例にとると、[probe_eddy_current fly_eddy_probe] で frequency: 40000000 を 必ず 設定する必要があります。設定しないと、EDDY が正常に使用できない可能性があります。
[probe_eddy_current fly_eddy_probe]
sensor_type: ldc1612
# 以下の i2c_mcu、i2c_bus、オフセットは、実際のツールボードと取り付け位置に応じて修正してください
i2c_mcu: SHT36
i2c_bus: i2c1e
i2c_speed: 400000
frequency: 40000000
x_offset: 0
y_offset: 21.42
descend_z: 2.5
tap_z_offset: 0
# TAP しきい値を自動校正する前にコメントアウトしてください。校正が成功すると、SAVE_CONFIG によって書き込まれます
# tap_threshold: 40000
設定が完了したら、対応する製品ドキュメントに従って、駆動電流校正 と 高さ校正 を再実行する必要があります。
関連ドキュメント:SHT36 V3 EDDY 使用法
設定前の確認
EDDY ケーブル、ツールボードインターフェース、プローブ固定ネジ、ノズル、ヒートベッド周辺の構造を確認する前に、プリンターの電源を完全にオフにし、電源プラグを抜いてください。通電状態でケーブルを抜き差ししたり、端子を調整したりしないでください。
- ノズルとベッド面は清潔で、フィラメントの残留物、接着剤の盛り上がり、異物がないこと。
- EDDY はしっかりと固定されており、コイルの取り付け位置に緩みがないこと。
- Z 軸が正常に上下に移動でき、詰まり、突き当たり、フレームとの干渉がないこと。
- マルチ Z 軸マシンの場合は、先に基本的な機械的な水平出しを完了させること。
- EDDY の基本設定が完了しており、センサーデータを正常に読み取れること。
参考設定スニペット
以下の設定は、EDDY TAP でよく使われる部分のみを保持しています。mcu 名、I2C バス、オフセット、水平出し方式、開始マクロのパラメーターは、実際のマシンに合わせて修正する必要があります。独立した設定ファイルに配置し、printer.cfg で include することをお勧めします。
[respond]
[force_move]
enable_force_move: true
[probe_eddy_current fly_eddy_probe]
sensor_type: ldc1612
i2c_address: 42
i2c_mcu: SHT36
i2c_bus: i2c1e
i2c_speed: 400000
frequency: 40000000
x_offset: 0
y_offset: 21.42
descend_z: 2.5
speed: 5
samples: 3
sample_retract_dist: 5.0
samples_tolerance: 0.05
samples_tolerance_retries: 3
tap_z_offset: 0
# TAP しきい値を自動的に見つける前にコメントアウトしてください。校正が成功すると、SAVE_CONFIG によって書き込まれます
# tap_threshold: 40000
TAP による Z オフセット設定マクロ
SET_Z_FROM_PROBE METHOD=tap は、TAP トリガー後に現在の Z 座標を更新するために使用されます。数回連続して実行し、結果が近い値を示すかどうかを観察することをお勧めします。差異が大きい場合は、保存せずに、ノズル、ベッド面、Z 軸のバックラッシュ、TAP しきい値を再確認してください。
[gcode_macro _RELOAD_Z_OFFSET_FROM_PROBE]
description: 前回の PROBE 結果に基づいて現在の Z 座標を更新します
gcode:
{% set Z = printer.toolhead.position.z %}
{% set position_endstop = 0 %}
{% set raw_config = printer.configfile.config %}
{% if 'stepper_z' in raw_config and 'position_endstop' in raw_config.stepper_z %}
{% set position_endstop = raw_config.stepper_z.position_endstop|trim|float %}
{% endif %}
{% set setZ = Z - printer.probe.last_probe_position.z + position_endstop %}
SET_KINEMATIC_POSITION Z={setZ}
RESPOND MSG="position_Z={'%0.3f' | format(Z)} probe_Z={'%0.3f' | format(printer.probe.last_probe_position.z)} position_endstop={'%0.3f' | format(position_endstop)} set_Z={'%0.3f' | format(setZ)}"
[gcode_macro SET_Z_FROM_PROBE]
description: TAP モードで Z オフセットを設定します。使用法:SET_Z_FROM_PROBE METHOD=tap
gcode:
{% set METHOD = params.METHOD | default("automatic") %}
G0 Z5 F300
PROBE METHOD={METHOD} SAMPLES=3
_RELOAD_Z_OFFSET_FROM_PROBE
G0 Z5 F300
このマクロを使用して position_endstop を保存および再利用する場合は、設定に保存可能な stepper_z position_endstop 値が存在することを確認してください。初回デバッグ時は、まず 0 に設定し、手動の Z オフセットと初層の結果から実際の値を確認することをお勧めします。
印刷開始マクロの呼び出し
開始マクロでは、マシンの加熱、ホーミング、必要な水平出しが完了した後に、TAP を呼び出して Z オフセットを設定するだけで十分です。ノズルが印刷温度に達する前に、TAP への影響を避けるために低めの温度を維持できます。
[gcode_macro PRINT_START]
gcode:
{% set BED = params.BED|default(60)|int %}
{% set EXTRUDER = params.EXTRUDER|default(200)|int %}
{% set X_CENTER = printer.toolhead.axis_maximum.x|float / 2 %}
{% set Y_CENTER = printer.toolhead.axis_maximum.y|float / 2 %}
SET_GCODE_OFFSET Z=0
G21
G90
G28
G1 X{X_CENTER} Y{Y_CENTER} Z15 F9000
M190 S{BED}
M109 S150
# ここに元の印刷前準備手順を残します
# ...
# ノズルワイパーマクロがある場合は、TAP の前にノズルを清掃することをお勧めします
# CLEAN_NOZZLE
SET_Z_FROM_PROBE METHOD=tap
# TAP 完了後、元の印刷準備手順を続行します
M109 S{EXTRUDER}
G92 E0
ノズルにフィラメントが付着しやすい場合は、SET_Z_FROM_PROBE METHOD=tap の前後でノズルワイプを実行し、SET_Z_FROM_PROBE METHOD=tap を繰り返して安定性を高めることができます。
TAP しきい値の自動校正
Klipper は 2026-05-02 以降、TAP しきい値の自動測定をサポートしています。使用する前に、手動で記入した tap_threshold を 一旦コメントアウト し、以下のコマンドでしきい値を再検出します。
TAP しきい値校正コマンド:PROBE_EDDY_CURRENT_TAP_CALIBRATE TAP=xxx、一般的な値は guess、refine、verify です。
以下の手順では、ノズルがベッド面に向かって移動し、軽く接触します。開始する前に、いつでも緊急停止(M112)を実行できるようにしてください。ノズルがベッド面に接触した後も下降を続ける場合は、すぐに緊急停止してください。
① guess:初期のおおよそのしきい値
ノズルとベッド面が清潔であることを確認し、ホーミング後、ツールヘッドをベッド面の中央付近に移動させ、ノズルをベッド面から 3~10mm 離します。
PROBE_EDDY_CURRENT_TAP_CALIBRATE TAP=guess
このコマンドは、メインプローブの校正データを分析して初期の tap_threshold の概算値を取得し、その後、軽いタッチプローブを 1 回実行します。理想的には、プローブが下降してノズルがベッド面に接触した後、上昇し、有効なプローブ結果を報告します。
② refine:しきい値の精密化
TAP=guess が成功したら、ノズルをベッド面の中央付近 3~10mm に維持したまま、次を実行します。
PROBE_EDDY_CURRENT_TAP_CALIBRATE TAP=refine
このコマンドは、前回の成功したプローブデータを使用して、より正確なしきい値を決定します。
③ verify:安定性の検証
TAP=refine が成功したら、次を実行します。
PROBE_EDDY_CURRENT_TAP_CALIBRATE TAP=verify
このコマンドは、ベッド面を 5 回連続でプローブします。5 回すべてが正常に完了し、結果が安定している場合、合格となります。
④ 設定の保存
上記の手順がすべて成功したら、次を実行します。
SAVE_CONFIG
保存後、Klipper を再起動します。この時点では TAP しきい値のみが保存されます。Z オフセットの確認は引き続き行う必要があります。
手動によるしきい値の検索
自動校正中にしきい値が適切でないというエラーが発生した場合、または早期トリガーやベッド面接触後も停止しないなどの問題が発生した場合は、自動コマンドを繰り返し実行しないでください。代わりに PROBE_ACCURACY を使用して手動で検索します。
PROBE_ACCURACY METHOD=tap tap_threshold=40000
手動調整の際は、40000 付近からテストを開始できます。
- ベッド面に接触する前にトリガーする場合 → しきい値が低すぎます。適切に増やしてください。
- ベッド面に接触しても停止しない場合 → しきい値が高すぎます。すぐに緊急停止し、しきい値を下げてください。
- テストのたびに、ノズルとベッド面が清潔であること、ノズルがベッド面から
3~10mm離れていることを確認してください。
手動でのしきい値が安定したら、自動校正の TAP=refine と TAP=verify に戻って検証できます。
Z オフセットの設定
TAP しきい値が合格したら、Klipper の TAP メソッドを使用して Z オフセットを設定します。
SET_Z_FROM_PROBE METHOD=tap
数回連続して実行し、結果が近い値を示すかどうかを観察することをお勧めします。差異が大きい場合は、保存せずに、ノズルの清掃、ヒートベッドの剛性、Z 軸のバックラッシュ、TAP しきい値を確認してください。
新しいバージョンの Klipper では、tap_z_offset を使用して TAP ギャップを微調整できます。実際の初層は、プローブ値のみに頼らず、印刷結果と組み合わせて確認することをお勧めします。
手動による Z オフセットの確認
TAP しきい値と SET_Z_FROM_PROBE METHOD=tap の両方が合格したら、ノズルとベッド面の実際の隙間を手動で確認する必要があります。
- ノズルとベッド面を清掃し、ノズルをヒートベッドの中央付近に移動します。
SET_Z_FROM_PROBE METHOD=tapを実行し、異常がないことを確認します。- 用紙または初層テストを使用して実際のノズル隙間を確認し、Web インターフェースで Z オフセットを微調整します。
- 初層が適切になったら、設定を保存します。
- 後でノズル、ホットエンド、EDDY の取り付け位置、またはベッド面の構造を変更した場合は、オフセットを再確認する必要があります。
よくある問題
設定完了後も正常に使用できない
- FAST システムバージョンが
V1.3.9以上 であることを確認します(または Klipper が最新バージョンに更新されていること)。 - 下位機のファームウェアが最新バージョンに更新されていることを確認します。
[probe_eddy_current fly_eddy_probe]でfrequency: 40000000が設定されていることを確認します。i2c_speedが高すぎないことを確認します。SHT36 V3 / SB2040 V3 の場合は、まず400000でテストできます。- 駆動電流校正と高さ校正を再実行します。
klippy.logで最初の EDDY または TAP 関連のエラーを確認し、エラーの内容に従ってトラブルシューティングを行います。
TAP プローブ結果が不安定
- ノズルとベッド面を清掃します。
- EDDY の固定が緩んでいないか確認します。
- Z 軸に引っ掛かりやバックラッシュがないか確認します。
TAP=refineとTAP=verifyを再実行します。
MCU 'xxx' I2C request to addr 42 reports error BUS_TIMEOUT
EDDY が存在する MCU と LDC1612 の通信が失敗するか、不安定です。
EDDY ケーブル、I2C インターフェース、端子の圧着、またはケーブルの交換を確認する前に、プリンターの電源を完全にオフにし、電源プラグを抜いてください。通電状態でケーブルを抜き差ししたり、端子を調整したりしないでください。
i2c_mcu、i2c_bus、またはソフトウェア I2C ピンが実際のツールボードと一致しているか確認します。i2c_speedをまず400000に下げてテストします。- EDDY ケーブル、端子、ツールボードインターフェースが緩んでいないか確認します。
- EDDY とツールボードのファームウェアが両方とも、現在の Klipper をサポートするバージョンに更新されていることを確認します。
Unable to detect tap: insufficient slope delta
典型的なエラー:
!! Unable to detect tap: insufficient slope delta (-36983.054918 vs 30633.703000)
現在の tap_threshold が適切でないか、プローブデータが TAP 変曲点として十分に明確な傾きを形成していません。
- ノズルとベッド面を清掃します。
- 自動校正を繰り返し実行せず、
PROBE_ACCURACY METHOD=tap tap_threshold=40000を使用して手動でしきい値を検索します。 - 手動のしきい値が安定したら、
TAP=refineとTAP=verifyに戻って検証します。
Unable to detect tap: invalid depress distance
典型的なエラー:
!! Unable to detect tap: invalid depress distance (0.020411 vs 0.030000:0.250000)
Klipper が判断した押し込み距離が予期される範囲(0.03~0.25mm)内にありません。一般的な原因:ヒートベッドの剛性不足、ノズル接触プロセスの不安定性、Z 軸のバックラッシュ、または不適切な TAP しきい値。
- ノズル、ヒートベッド表面、および磁気シートが清潔で平らであることを確認します。
- ヒートベッドのサポート、Z 軸構造、プローブの取り付けに明らかな緩みがないか確認します。
- Z ホーミングとプローブ速度を下げて再検証します。
- 同じエラーが繰り返し発生する場合は、TAP パラメーターを保存せず、まず機械的な剛性としきい値を優先して調査します。
- 一般ユーザーが
klippy/extras/probe_eddy_current.pyを直接修正してエラー範囲を緩和することはお勧めしません。ハードウェアとしきい値が両方とも正常であることを確認した上で、Klipper ソースコードに精通した担当者のみが調整の要否を評価してください。
Eddy: CLKIN frequency too low
典型的なエラー:
!! Eddy: CLKIN frequency too low: 0.001 < 0.002
I2C 通信が不安定で、データポイント取得の時間間隔に異常があります。
i2c_mcu、i2c_bus、またはソフトウェア I2C ピンが正しく入力されていることを確認します。i2c_speedをまず400000でテストし、最初から高く設定しないでください。- EDDY ケーブル、端子、ツールボードインターフェースが緩んでいないか確認します。
- ソフトウェア I2C を使用している場合、対応する GPIO が他の機能によって占有されておらず、周辺回路が信号に影響を与えていないことを確認します。