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

周辺機器とドライバーテスト

本ドキュメントは、ステッピングドライバー、CANツールボードなどの周辺機器モジュールが正常に動作するかを検証するためのものです。テストの考え方は基本的なI/Oテストと同様で、最小限のKlipper設定を使用して個々のハードウェアを分離します。

MCU接続、温度センサー、ファン出力、または入力ポートをテストする必要がある場合は、まず ハードウェアテスト方法 を参照してください。

ドライバーテスト

テスト目的

最もシンプルなKlipper設定を使用して、単一のTMCドライバー(UARTまたはSPIモード)がマザーボードと正常に通信できること、およびモーターが制御下で動作することを確認します。

前提条件

作業前の電源オフ

プリンターの電源を完全に切り、電源ケーブルを抜いてから以下の作業を行ってください。ドライバーモジュールやステッピングモーターケーブルの活線挿抜は禁止です。

  1. プリンターの電源が完全にオフになっていること。
  2. テスト対象のTMCドライバーがマザーボードの対応するソケットに正しく挿入され、向きが間違っていないこと。
  3. UARTモードのドライバー(TMC2209など)の場合、対応するドライバーポートのUARTジャンパーが取り付けられていること。
  4. テスト対象のドライバーポートに1つだけステッピングモーターを接続し、他のドライバーポートは空けておくこと。
  5. テスト対象のドライバーのみを含む最小構成の printer.cfg を準備し、元の完全な設定ファイルはバックアップしておくことを推奨します。

単一ドライバー最小構成設定

以下の最小構成で printer.cfg を置き換えます。[printer][mcu]、テスト対象の [manual_stepper Drive0]、および対応する [tmcXXXX manual_stepper Drive0] セクションのみを保持します。[manual_stepper] を使用するには、最小限の [printer] セクション(kinematics: none)が必要ですが、これは動作軸の設定よりもシンプルで、純粋なハードウェア検証に適しています。

[printer]
kinematics: none
max_velocity: 200.00
max_accel: 40000.00

[mcu]
serial: /dev/serial/by-id/usb-Klipper_xxxxxxxxxxx

[manual_stepper Drive0]
# 実際のマザーボードのピンに応じて以下の3項目を変更してください
step_pin: PE2
dir_pin: PC5
enable_pin: !PF11
# 以下のパラメーターは変更不要です
microsteps: 16
rotation_distance: 40
velocity: 500
accel: 10000
position_min: 0
position_max: 1000

[tmc2209 manual_stepper Drive0]
# 実際のマザーボードのピンに応じて uart_pin を変更してください
# ドライバーメーカーの仕様に応じて sense_resistor を変更してください
uart_pin: PC4
interpolate: False
run_current: 0.8
sense_resistor: <driver_sense_resistor>
stealthchop_threshold: 0
設定の説明
  • serial:マザーボードの実際のシリアルポートIDに置き換えます(ls /dev/serial/by-id/ で確認可能)。
  • step_pin / dir_pin / enable_pin:テスト対象のドライバーポートに対応するマザーボードのピンに置き換えます。
  • uart_pin(UARTモード)/ cs_pin + spi_bus(SPIモード):実際のピンとSPIバス番号に置き換えます。
  • sense_resistor:ドライバーメーカーから提供されるパラメーターに従って必ず入力してください。チップ型番だけで推測しないでください。異なるTMC5160ドライバーボードでは 0.0750.0330.022 などの値が考えられます。TMC2240などのドライバーでもサンプリングパラメーターが異なる場合があります。メーカーの資料に明記されていない場合は、まずメーカーに問い合わせるか、公式の設定例を使用してください。
  • 設定にはヒーターやファンは一切含まれていません。ドライバー通信の検証のみを目的としています。

複数ドライバーテスト方法

1つのマザーボード上の複数のドライバーポートを1つずつ検証する必要がある場合は、テスト設定の命名規則に従い、各ドライバーポートを独立した Drive0Drive1Drive2 として記述できます。

[manual_stepper Drive1]
step_pin: PE3
dir_pin: PF13
enable_pin: !PF14
microsteps: 16
rotation_distance: 40
velocity: 500
accel: 10000
position_min: 0
position_max: 1000

[tmc2209 manual_stepper Drive1]
uart_pin: PF12
interpolate: False
run_current: 0.8
sense_resistor: <driver_sense_resistor>
stealthchop_threshold: 0

テスト時は、現在テストしているドライバーポートのモーターのみを接続します。1つのポートを確認したら電源を切り、次のポートに交換します。

テスト手順

  1. 上記の最小構成を printer.cfg として保存します。

  2. モーターとドライバーが正しく挿入されていることを確認してから電源を入れ、Klipper を起動します。

  3. Mainsail / Fluidd コンソールで以下のコマンドを入力し、モーターをイネーブルにして現在位置を 0 に設定します。

    MANUAL_STEPPER STEPPER=Drive0 ENABLE=1
    MANUAL_STEPPER STEPPER=Drive0 SET_POSITION=0
    • イネーブル後にモーターに保持トルクが発生する場合、enable_pin は基本的に有効です。
    • モーターがまだ自由に回転する場合は、電源を切って enable_pin、ドライバーの方向、ジャンパー、電源供給を確認してください。
  4. 手動移動テストを実行します。

    MANUAL_STEPPER STEPPER=Drive0 MOVE=100 SPEED=100
    MANUAL_STEPPER STEPPER=Drive0 MOVE=0 SPEED=100
    • MOVE= は目標位置であり、相対移動量ではありません。MOVE=100 を実行した後に MOVE=0 を実行すると、モーターは逆方向に戻ります。
    • モーターがまだ機械の動作機構に接続されている場合は、最初のテストでは MOVE=10 SPEED=5 に変更し、方向とストロークの安全性を確認してから速度を上げることを推奨します。
    • モーターがスムーズに回転し、引っかかりがない場合、ドライバー、モーター、パルス/方向ピンは基本的に正常です。
    • モーターが反応しない、振動するだけ、または方向が異常な場合は、電源を切ってピン設定、モーターケーブル配線、ドライバーの方向、ジャンパーを確認してください。
  5. TMC 通信状態を確認します。

    DUMP_TMC STEPPER=Drive0

    レジスタ情報が正常に返ってくる場合、UART/SPI 通信は基本的に正常です。レジスタを読み取れないというエラーが表示される場合は TMC エラー解決 を参照してください。

  6. テスト終了後、モーターのイネーブルをオフにします。

    MANUAL_STEPPER STEPPER=Drive0 ENABLE=0

期待される結果

テスト項目正常結果異常な動作
手動移動モーターがコマンド通り正逆方向に移動する動かない、振動、引っかかり、方向異常
TMC 通信DUMP_TMC がレジスタ情報を返すUART/SPI レジスタを読み取れない
保持トルクENABLE=1 後、モーター軸を自由に回せない軸が簡単に回せる(イネーブルされていない)

上記3項目がすべて正常であれば、ドライバーとマザーボードの通信およびモーター配線に問題はありません。元の printer.cfg を復元し、他のハードウェアの確認に進んでください。


CAN ツールボード最小テスト

テスト目的

CAN ツールボードが Klipper に認識されていることを確認し、ツールボード上の温度、ファン、加速度計、または入力ポートを検証します。

最小構成設定

[mcu tool]
canbus_uuid: xxxxxxxxxxxx

[temperature_sensor ToolBoard]
sensor_type: temperature_mcu
sensor_mcu: tool

[output_pin tool_FAN0]
pin: tool:gpio13
pwm: True
cycle_time: 0.010
value: 0
shutdown_value: 0

テスト手順

  1. CAN ネットワーク設定と ID 検索 に従って検索し、canbus_uuid を記入します。
  2. Klipper を再起動した後、ToolBoard の温度が正常に表示されているか確認します。
  3. SET_PIN PIN=tool_FAN0 VALUE=1 を使用してツールボードの低電圧ファン出力をテストし、テスト後は SET_PIN PIN=tool_FAN0 VALUE=0 を実行します。
  4. ツールボードの加速度計や入力ポートをテストする必要がある場合は、上記の該当セクションに従って設定を追加してください。
CAN トラブルシューティングのヒント配線、終端抵抗、ジャンパー、ケーブル整理はすべて

電源を切った状態で行ってください。CAN ケーブルの抜き差しや終端抵抗の調整を電源投入状態で行わないでください。


一般的な異常と次のステップ

異常な動作klippy.log の主なキーワード優先的に確認次のステップ
Klipper が MCU に接続できないUnable to connectConnect errorSerial connection closedserial / canbus_uuid、ファームウェア、USB/CAN 接続よくあるエラー概要
温度表示異常ADC out of rangetemperaturenot heatingsensor_typesensor_pin、サーミスタプラグ温度、加熱、押出エラー
ヒーターまたはベッドがシャットダウンVerify heaternot heating at expected rateサーミスタ接触、PID、ヒーター出力、SSR温度、加熱、押出エラー
ファンが回らないエラーなし(出力ポートはログを生成しない)pin、ファン電圧仕様、PWM 互換性ファン交換またはポート交換でクロスチェック
入力状態が変わらないエラーなし(入力ポートはログを生成しない)プルアップ ^、配線、スイッチのタイプ電源オフ後にプラグとポートを確認
加速度計にデータがないInvalid adxl345 idInvalid lis2dw idtimeoutcs_pinspi_bus、ケーブル、モジュール型番加速度計テストとキャリブレーション
共振テスト失敗No dataInsufficient axis dataFrequency rangeセンサー固定、ベルトテンション、ファン振動加速度計テストとキャリブレーション
モーターが動かないUnable to read tmc uartUnable to write tmc spistep_pindir_pinenable_pin、TMC 設定TMC エラー解決
TMC レジスタが読み取れないDRV_STATUSread registerGSTATUART/SPI ピン、ジャンパー、ドライバー電源、ドライバー型番TMC エラー解決
CAN ツールボードがオフラインbytes_invalidNetwork is downNo buffer spaceTimer too closeCAN 配線、終端抵抗、電源供給、UUIDCAN ネットワーク設定と ID 検索
印刷中にランダムに停止/欠落Stepper too far in pastRescheduled timerLost communication上位機負荷、通信線干渉、速度加速度システム、パフォーマンス、サービスエラー
設定を保存できないUnable to writeOption conflictCRC does not matchファイル権限、自動保存領域の競合、FIRMWARE_RESTART設定関連エラー

参考設定スニペット

テスト設定を管理する際は、ハードウェアの種類に応じて、対応するマザーボード/ツールボードのテンプレートからスニペットを抽出できます。

  • マザーボードテスト:temperature_sensormanual_stepper DriveNtmcXXXX manual_stepper DriveNoutput_pin FANxgcode_button IOx
  • ツールボードテスト:temperature_sensoradxl345 / lis2dwmanual_stepper Drive0output_pin FANxgcode_button
  • 複数ドライバーテスト: Drive0Drive1Drive2 のような命名を維持し、テストコマンドの STEPPER= は設定セクション名と一致させる。
  • 低電圧出力テスト:ファン、RGB、ブザーなどの低電圧負荷を優先的に選択し、ヒートスティックやヒートベッドを通常の output_pin としてテストしない。

上記の最小テストを通過できないモジュールがある場合は、まず元の設定を復元し、特定のエラーを関連する FAQ ページでさらに確認してください。

Loading...