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

ペリフェラルとドライバのテスト

この記事では、ステッピングドライバ、CANツールボードなどのペリフェラルモジュールが正常に動作するかどうかを検証します。テストの考え方は基本的なI/Oテストと同じで、最小限のKlipper設定を使用して個々のハードウェアを分離します。

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

ドライバテスト

テスト目的

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

前提条件

電源オフでの作業

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

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

単一ドライバ最小限設定

最初に基本最小設定を記述し、次に現在のドライバモードに対応するテストセクションを基本設定の後に追加します。[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

ドライバテスト設定セクション

以下に、追加が必要なドライバテストセクションのみを示します。2つ目の [printer] または [mcu] を追加しないでください。

[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/ で確認可能)に置き換えます。基本最小設定内にのみ1箇所記述します。
  • 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に認識されていることを確認し、ツールボード上の温度センサー、ファン、加速度計、または入力ポートを検証します。

最小限設定

最初に基本最小設定を保持し、以下のCANツールボードテストセクションを設定の後に追加します。CANツールボードのみをテストする場合でも、マザーボードの [mcu] を同時に保持し、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 調査のヒント

CANH/CANLの線順序、終端抵抗、ジャンパーピン、およびケーブル整理はすべて電源を切った状態で行ってください。通電中に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...