目詰まり検出の最適化
機能説明
FAST 1.3.8 バージョンでは、目詰まり検出機能が最適化され、より高精度な目詰まり検出機能と柔軟な設定オプションが提供されています。この機能により、押出機の排出状況をリアルタイムで監視し、目詰まりやフィラメント切れを検出した際に自動的に印刷を一時停止し、ユーザーに通知します。
システムバージョン要件: この機能を使用するには、FlyOS-Fast システムバージョンが v1.3.8 以上 である必要があります。
設定方法
- 以下の設定を
printer.cfgファイルに追加してください: - これは参考設定であり、具体的なパラメータは実際の状況に応じて調整が必要になる場合があります
[filament_blockage_detection my_sensor]
switch_pin: ^PA10
extruder: extruder
distance_per_edge: 0.232
detection_length: 3
pause_on_runout: True
runout_gcode: M118 打印中堵料
insert_gcode: M118 空闲时恢复
基本パラメータ:
| パラメータ | デフォルト値 | 説明 |
|---|---|---|
switch_pin | 必須 | 詰まり検出センサーのピン、^ はプルアップ抵抗の有効化を示す |
extruder | extruder | 関連付けられたエクストルーダー名 |
distance_per_edge | 必須 | センサーの1パルスあたりのフィラメント移動距離(mm)、キャリブレーション後に自動更新 |
detection_length | 7.0 | 滑り距離がこの閾値(mm)を超え、かつ連続して複数回確認された場合に詰まりと判定 |
recovery_length | detection_length * 0.5 | 滑り距離がこの値(mm)以下に戻った場合に正常状態に復帰 |
pause_on_runout | — | 詰まり検出時に自動で印刷を一時停止するかどうか |
runout_gcode | — | 詰まり検出時に実行される G-code |
insert_gcode | — | フィラメント復帰検出時に実行される G-code |
上級パラメータ(通常はデフォルト値のままで問題ありません):
| パラメータ | デフォルト値 | 説明 |
|---|---|---|
window_length | detection_length * 3 | スライディングウィンドウ長(mm) |
retraction_min_delta | 0.050 | 引き戻し運動と判定する最小押出変位(mm)、これ未満は静止とみなす |
blockage_sample_count | 2 | 連続閾値超過確認回数、到達後に詰まりと判定(1-5) |
distance_per_edge パラメータは CALIBRATE_FILAMENT_BLOCKAGE キャリブレーションコマンド実行後に最適値が自動計算され、SAVE_CONFIG コマンドにより設定ファイルに永続保存されます。初期設定時は任意の値を入力できますが、キャリブレーション後に自動的に上書きされます。
キャリブレーション手順
検出精度を確保するため、使用前にセンサーのキャリブレーションを行うことを推奨します。
ステップ 1:ノズルの加熱
ノズルを通常動作温度(推奨 220℃)まで加熱します:
M104 S220
M109 S220
ステップ 2:キャリブレーションコマンドの実行
ノズルが目標温度に達したら、以下のキャリブレーションコマンドを実行します:
CALIBRATE_FILAMENT_BLOCKAGE SENSOR=my_sensor TEMPERATURE=220
コマンドパラメータ:
| パラメータ | デフォルト値 | 説明 |
|---|---|---|
SENSOR | 必須 | センサー名。設定内の [filament_blockage_detection my_sensor] に対応 |
TEMPERATURE | 必須 | キャリブレーション時のノズル温度(℃) |
DISTANCE | 30.0 | 各ラウンドの押出長さ(mm) |
COUNT | 5 | キャリブレーションのラウンド数(1-20)。複数ラウンドの平均値を取得 |
SPEED | 2.0 | 押出速度(mm/s) |
SETTLE_TIME | 0.375 | 各ラウンドの押出後にセンサーの報告を待つ安定時間(秒) |
MIN_EDGES | 1 | 各ラウンドで最低限キャプチャするパルス数。下回るとエラー |
キャリブレーション中、システムは自動的に複数ラウンドの押出を実行し、各ラウンドのエンコーダパルス数を集計して、最適な distance_per_edge を計算し結果を通知します。
キャリブレーション出力例:
Filament blockage sensor my_sensor calibration round 1/5:
edge_count_delta: 130
implied_distance_per_edge: 0.230769 mm
...
Filament blockage sensor my_sensor calibration result:
samples: 130, 129, 131, 130, 128
average_edge_count: 129.600
calibrated_distance_per_edge: 0.231481 mm
The SAVE_CONFIG command will update the printer config file
with this parameter and restart the printer.
ステップ 3:キャリブレーション結果の保存
キャリブレーション完了後、以下のコマンドを実行して新しい distance_per_edge を設定ファイルに保存し、Klipper を再起動します:
SAVE_CONFIG
センサー状態の照会
QUERY_FILAMENT_BLOCKAGE コマンドを使用すると、センサーの測定データをリアルタイムで確認できます。押出長、エンコーダー測定距離、スリップ量などの重要な情報が含まれます。
QUERY_FILAMENT_BLOCKAGE SENSOR=my_sensor
返却フィールドの説明:
| フィールド | 説明 |
|---|---|
total_extruded_distance | 累計押出機指令移動距離(mm)— つまり Klipper がコマンドした押出機の前進総長 |
total_measured_distance | 累計エンコーダー実測距離(mm)— センサーが実際に検出したフィラメント移動量 |
raw_measured_distance | 生のエンコーダー測定距離(mm)— 方向判定前の累計値 |
expected_distance | 前回の運動方向変化以降の予想押出距離(mm) |
measured_distance | 現在のウィンドウ内での実測距離(mm) |
slip_distance | スリップ距離(mm)— 予想距離と実測の差、detection_length を超えると詰まり判定がトリガーされる |
measured_speed | 現在の測定速度(mm/s) |
edge_count | エンコーダー累計パルス数 |
pending_blockage_count | 現在の連続閾値超過確認回数、blockage_sample_count に達すると詰まりと判定 |
in_retraction | 現在リトラクション状態かどうか(True/False) |
blocked | 詰まりと判定済みかどうか(True/False) |
printing | 現在印刷状態かどうか(True/False) |
使用シーン:
- 詰まり誤報の調査:
total_extruded_distanceとtotal_measured_distanceを比較し、両者の差が継続的に増大する場合、エンコーダーが検出したフィラメント移動が押出指令に追いついておらず、スリップの可能性がある - センサーが正常か確認:印刷中に
measured_speedを照会し、正常な押出時には安定した速度の読み取り値があるはず - スリップ傾向の確認:
slip_distanceがdetection_lengthに近づいたら注意が必要で、継続的に超えると印刷を一時停止する
トラブルシューティング
問題 1:目詰まり検出が動作しない
考えられる原因:
- センサーが正しく接続されていない
switch_pinの設定が誤っている- 下位機ファームウェアが更新されていない
解決方法:
- センサーのハードウェア接続を確認する
- ピン設定が実際のハードウェアと一致していることを確認する
- 下位機ファームウェアを最新バージョンに更新する
問題 2:目詰まりの誤検知
考えられる原因:
distance_per_edgeパラメータが不正確detection_lengthのしきい値が小さすぎる
解決方法:
- キャリブレーションコマンドを再実行する
detection_lengthの値を適切に増やす(推奨 3-5mm)
問題 3:キャリブレーション失敗
考えられる原因:
- ノズル温度が要件を満たしていない
- センサーのハードウェア障害
解決方法:
- ノズルが指定温度まで加熱されていることを確認する
- センサーが正常に動作しているか確認する
- Klipper サービスを再起動してみる
使用上のアドバイス
- フィラメントのブランドや直径を変更するたびに、センサーの再キャリブレーションを推奨します
- 検出精度を確保するため、センサーの状態を定期的に確認してください
- 目詰まり検出機能を長期間使用していない場合は、使用前に再キャリブレーションを推奨します
使用推奨
- 消耗品のブランドや直径を変更するたびに、センサーを再校准することを推奨します
- センサーの状態を定期的に確認し、検出精度を確保してください
- 長時間にわたり詰まり検出機能を使用していない場合は、再校准してから使用することを推奨します