メインコンテンツにスキップ

EDDY TAP モードデバッグ

このページでは、EDDY を TAP モードで使用する際のデバッグ手順、確認順序、および一般的な問題のトラブルシューティングについて説明します。TAP モードは、ノズルがベッドに軽く接触することでトリガーしきい値を判断します。デバッグ時には、ノズル、ヒートベッド、Z 軸の動作状態に注意してください。

電源オフでの作業

開始する前に、プリンターの電源を完全にオフにし、電源プラグを抜いてください。通電状態でケーブルを抜き差ししたり、インターフェースの配線を整理したり、端子に触れたりしないでください。

使用上の注意
  • このページはデバッグ方法の説明であり、そのままコピーして使用できる完全な printer.cfg ではありません。
  • canbus_uuidserial、プローブピン、ホーム方向、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

# 自動キャリブレーションの前にコメントアウトし、キャリブレーション成功後に SAVE_CONFIG によって書き込まれます
# tap_threshold: 40000

設定後、対応する製品ドキュメントに従って、ドライバ電流キャリブレーション高さキャリブレーション を再実行する必要があります。

関連ドキュメント: SHT36 V3 EDDY 使用方法

設定前の確認

電源オフでの作業

EDDY ケーブル、ツールボードインターフェース、プローブ固定ネジ、ノズル、ヒートベッド周辺の構造を確認する前に、プリンターの電源を完全にオフにし、電源プラグを抜いてください。通電状態でケーブルを抜き差ししたり、端子を調整したりしないでください。

  1. ノズルとベッド面は清潔で、フィラメントの残留物、接着剤の盛り上がり、異物がないこと。
  2. EDDY はしっかりと固定されており、コイルの取り付け位置に緩みがないこと。
  3. Z 軸が正常に上下移動し、動きの引っ掛かり、突き当たり、フレームとの干渉がないこと。
  4. マルチ Z 軸マシンは、最初に基本的な機械的な水平出しを完了しておくこと。
  5. 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

# 自動しきい値探索の前にコメントアウトし、キャリブレーション成功後に 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。一般的な値は guessrefineverify です。

緊急停止の準備

以下の手順では、ノズルがベッド面に向かって移動し、軽く接触します。開始する前に、いつでも緊急停止(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=refineTAP=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 の両方が合格した後も、ノズルとベッド面の実際のギャップを手動で確認する必要があります。

  1. ノズルとベッド面を清掃し、ノズルをヒートベッドの中央付近に移動します。
  2. SET_Z_FROM_PROBE METHOD=tap を実行し、異常がないことを確認します。
  3. 紙またはファーストレイヤーテストを使用して実際のノズルギャップを確認し、Web インターフェースで Z オフセットを微調整します。
  4. ファーストレイヤーが適切になったら、設定を保存します。
  5. 後でノズル、ホットエンド、EDDY の取り付け位置、またはベッド面の構造を変更した場合は、オフセットを再確認する必要があります。

よくある問題

設定完了後も正常に使用できない

  1. FAST システムのバージョンが >= V1.3.9 であること(または Klipper が最新バージョンに更新されていること)を確認します。
  2. 下位機のファームウェアが最新バージョンに更新されていることを確認します。
  3. [probe_eddy_current fly_eddy_probe]frequency: 40000000 が設定されていることを確認します。
  4. i2c_speed が高すぎないことを確認します。SHT36 V3 / SB2040 V3 の場合は、まず 400000 でテストできます。
  5. ドライバ電流キャリブレーションと高さキャリブレーションを再実行します。
  6. klippy.log で最初の EDDY または TAP 関連のエラーを確認し、エラー内容に従ってトラブルシューティングを行います。

TAP プローブ結果が不安定

  1. ノズルとベッド面を清掃します。
  2. EDDY の固定が緩んでいないか確認します。
  3. Z 軸に引っ掛かりやバックラッシュがないか確認します。
  4. TAP=refineTAP=verify を再実行します。

EDDY TAP / Z_TILT が Timer too close をトリガーする

典型的なエラーメッセージ:

!! MCU 'xxx' shutdown: Timer too close

このエラーが EDDY TAP、Z ホーミング、Z_TILT_ADJUSTQUAD_GANTRY_LEVEL、またはベッドスキャン中にのみ発生する場合、通常は EDDY サンプリング、CAN 通信、およびホストのスケジューリングマージンを同時に確認する必要があります。

  1. klippy.log でエラー前後の Stats 行を確認し、bytes_retransmitbytes_invalidcanstat_* の異常、I2C エラー、またはホストの負荷上昇が同時に存在するかどうかを確認します。
  2. Klipper、ツールボード MCU、EDDY MCU のファームウェアバージョンが一致していることを確認します。更新後は、関連するすべての MCU を再書き込みする必要があります。
  3. カメラストリーム、KlipperScreen、リモートコントロールプラグイン、その他リソースを多く消費するサービスを一時的に無効にして再テストします。
  4. エラーが Z_TILT_ADJUST 中に発生し、マシンの構造が許せば、一時的に Z_TILT_ADJUST METHOD=scan を使用してテストし、TAP トリガーパスにおけるタイミング同期のプレッシャーを軽減します。
  5. 開始マクロ内の不必要な繰り返しホーミング、繰り返し TAP、連続ベッドスキャンを削減します。既にホーミング済みでマシンの状態が信頼できる場合は、マクロが G28 を繰り返さないようにします。
  6. EDDY I2C エラーも同時に発生している場合は、まず I2C BUS_TIMEOUT に従って、ケーブル、I2C 速度、ツールボードインターフェースを確認します。

システム関連のトラブルシューティング: Timer too close

MCU 'xxx' I2C request to addr 42 reports error BUS_TIMEOUT

EDDY が存在する MCU と LDC1612 の通信が失敗するか、不安定です。

電源オフでの作業

EDDY ケーブル、I2C インターフェース、端子の圧着確認またはケーブル交換の前に、プリンターの電源を完全にオフにし、電源プラグを抜いてください。通電状態でケーブルを抜き差ししたり、端子を調整したりしないでください。

  1. i2c_mcui2c_bus、またはソフトウェア I2C ピンが実際のツールボードと一致していることを確認します。
  2. i2c_speed をまず 400000 に下げてテストします。
  3. EDDY ケーブル、端子、ツールボードインターフェースが緩んでいないか確認します。
  4. EDDY とツールボードのファームウェアが両方とも、現在の Klipper をサポートするバージョンに更新されていることを確認します。

Unable to detect tap: insufficient slope delta

典型的なエラーメッセージ:

!! Unable to detect tap: insufficient slope delta (-36983.054918 vs 30633.703000)

現在の tap_threshold が適切でないか、プローブデータが TAP の変曲点を明確に形成していません。

  1. ノズルとベッド面を清掃します。
  2. 自動キャリブレーションを繰り返し実行せず、代わりに PROBE_ACCURACY METHOD=tap tap_threshold=40000 を使用して手動でしきい値を探索します。
  3. 手動でしきい値が安定したら、TAP=refineTAP=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 しきい値の不適切さ。

  1. ノズル、ヒートベッド表面、マグネットシートが清潔で平らであることを確認します。
  2. ヒートベッドのサポート、Z 軸構造、プローブの取り付けに明らかな緩みがないか確認します。
  3. Z ホーミングおよびプローブ速度を下げて再検証します。
  4. 同じエラーが複数回発生する場合は、TAP パラメーターを保存せず、まず機械的剛性としきい値の問題を優先的に調査します。
  5. 一般ユーザーが klippy/extras/probe_eddy_current.py を直接修正してエラー範囲を緩和することはお勧めしません。ハードウェアとしきい値が正常であることを確認した上で、Klipper ソースコードに精通した担当者のみが調整の必要性を評価してください。

Eddy: CLKIN frequency too low

典型的なエラーメッセージ:

!! Eddy: CLKIN frequency too low: 0.001 < 0.002

I2C 通信が不安定で、データポイントの取得時間間隔が異常です。

  1. i2c_mcui2c_bus、またはソフトウェア I2C ピンが正しく入力されていることを確認します。
  2. i2c_speed をまず 400000 でテストし、最初から高く設定しすぎないようにします。
  3. EDDY ケーブル、端子、ツールボードインターフェースが緩んでいないか確認します。
  4. ソフトウェア I2C を使用している場合、対応する GPIO が他の機能によって使用されておらず、周辺回路が信号に影響を与えていないことを確認します。
Loading...