ペリフェラルとドライバのテスト
この記事では、ステッピングドライバ、CANツールボードなどのペリフェラルモジュールが正常に動作するかどうかを検証します。テストの考え方は基本的なI/Oテストと同じで、最小限のKlipper設定を使用して個々のハードウェアを分離します。
MCU接続、温度センサー、ファン出力、または入力ポートをテストする必要がある場合は、まずハードウェアテスト方法を参照してください。
ドライバテスト
テスト目的
最もシンプルなKlipper設定を使用して、個々のTMCドライバ(UARTまたはSPIモード)がマザーボードと正常に通信できるかどうかを検証し、モーターが制御下で動作することを確認します。
前提条件
プリンターを完全にシャットダウンし、電源を切断してから以下の作業を行ってください。ドライバモジュールやステッピングモーターケーブルの活線挿抜は禁止です。
- プリンターの電源が完全にオフになっていること。
- テスト対象のTMCドライバがマザーボードの対応するソケットに正しい向きで正しく挿入されていること。
- UARTモードのドライバ(TMC2209など)の場合、対応するドライバポートのUARTジャンパーピンが取り付けられていることを確認します。
- テスト対象のドライバポートに1つのステッピングモーターのみを接続し、他のドライバポートは空のままにします。
- 元の完全な設定ファイルをバックアップし、基本最小設定とテスト対象ドライバセクションのみを含む一時的な
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] を追加しないでください。
- UART モード (TMC2209 / TMC2240 など)
- SPI モード (TMC5160 / TMC2130 など)
[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
[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
[tmc5160 manual_stepper Drive0]
# 実際のマザーボードのピンに合わせて cs_pin と spi_bus を変更してください
# ドライバメーカーの資料に従って sense_resistor を変更してください
cs_pin: PC4
spi_bus: spi1a
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.075、0.033、0.022などの異なる値である可能性があります。TMC2240などのドライバのセンス抵抗パラメータも異なる場合があります。メーカーの資料に記載がない場合は、メーカーに問い合わせるか、公式の設定例を優先的に使用してください。- 設定にはヒーターやファンは含まれていません。ドライバ通信の検証のみを目的としています。
複数ドライバテスト方法
1つのマザーボード上の複数のドライバポートを1つずつテストする必要がある場合は、テスト設定の命名規則に従って、各ドライバポートを独立した Drive0、Drive1、Drive2 として記述します:
[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つのポートを確認したら電源を切り、次のポートに交換します。
テスト手順
-
基本最小設定と現在のドライバテストセクションを
printer.cfgとして保存します。 -
モーターとドライバが正しく挿入されていることを確認してから電源を入れ、Klipperを起動します。
-
Mainsail / Fluidd コンソールで以下のコマンドを入力し、モーターをイネーブルにして現在位置を
0に設定します:MANUAL_STEPPER STEPPER=Drive0 ENABLE=1MANUAL_STEPPER STEPPER=Drive0 SET_POSITION=0- イネーブル後にモーターに保持トルクがある場合、
enable_pinは基本的に有効です。 - モーターがまだ自由に回転できる場合は、電源を切った後、
enable_pin、ドライバの方向、ジャンパーピン、電源を確認してください。
- イネーブル後にモーターに保持トルクがある場合、
-
手動移動テストを実行します:
MANUAL_STEPPER STEPPER=Drive0 MOVE=100 SPEED=100MANUAL_STEPPER STEPPER=Drive0 MOVE=0 SPEED=100MOVE=は目標位置であり、相対的な移動量ではありません。MOVE=100を実行した後にMOVE=0を実行すると、モーターは逆方向に戻って開始位置に戻ります。- モーターがまだ機械の動作機構に接続されている場合は、最初のテストでは
MOVE=10 SPEED=5に変更し、方向とストロークの安全性を確認してから速度を上げることをお勧めします。 - モーターがスムーズに回転し、引っ掛かりがない場合、ドライバ、モーター、およびパルス/方向ピンは基本的に正常です。
- モーターが反応しない、振動するだけ、または方向が異常な場合は、電源を切った後、ピン設定、モーターケーブルの配線順序、ドライバの方向、ジャンパーピンを確認してください。
-
TMC通信状態を検証します:
DUMP_TMC STEPPER=Drive0レジスタ情報が正常に返される場合、UART/SPI通信は基本的に正常です。レジスタを読み取れないというエラーが発生した場合は、TMCエラー調査を参照してください。
-
テスト終了後、モーターのイネーブルをオフにします:
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
テスト手順
- CANネットワーク設定とID検索 に従って
canbus_uuidを検索し、記入します。 - Klipperを再起動後、
ToolBoardの温度が正常に表示されるか確認します。 SET_PIN PIN=tool_FAN0 VALUE=1を使用してツールボードの低電圧ファン出力をテストし、テスト後はSET_PIN PIN=tool_FAN0 VALUE=0を実行します。- ツールボードの加速度計や入力ポートをテストする必要がある場合は、上記の該当セクションに従って設定を追加します。
CANH/CANLの線順序、終端抵抗、ジャンパーピン、およびケーブル整理はすべて電源を切った状態で行ってください。通電中にCANケーブルを抜き差ししたり、終端抵抗を調整したりしないでください。
よくある異常と次のステップ
| 異常動作 | klippy.log のよくあるキーワード | 優先的に確認 | 次のステップ |
|---|---|---|---|
| KlipperがMCUに接続できない | Unable to connect、Connect error、Serial connection closed | serial / canbus_uuid、ファームウェア、USB/CAN接続 | よくあるエラー概要 |
| 温度表示が異常 | ADC out of range、temperature、not heating | sensor_type、sensor_pin、サーミスタプラグ | 温度、加熱、押出エラー |
| ヒーターまたはベッドがシャットダウン | Verify heater、not heating at expected rate | サーミスタ接触、PID、ヒーター電力、SSR | 温度、加熱、押出エラー |
| ファンが回らない | エラーなし(出力ポートはログを生成しない) | pin、ファン電圧仕様、PWM互換性 | ファンまたはポートを交換してクロステスト |
| 入力状態が変わらない | エラーなし(入力ポートはログを生成しない) | プルアップ ^、線順序、スイッチタイプ | 電源を切った後、プラグとポートを確認 |
| 加速度計データなし | Invalid adxl345 id、Invalid lis2dw id、timeout | cs_pin、spi_bus、ケーブル、モジュールモデル | 加速度計テストとキャリブレーション |
| 共振テスト失敗 | No data、Insufficient axis data、Frequency range | センサー固定、ベルト張力、ファン振動 | 加速度計テストとキャリブレーション |
| モーターが動かない | Unable to read tmc uart、Unable to write tmc spi | step_pin、dir_pin、enable_pin、TMC設定 | TMCエラー調査 |
| TMCがレジスタを読み取れない | DRV_STATUS、read register、GSTAT | UART/SPIピン、ジャンパーピン、ドライバ電源、ドライバモデル | TMCエラー調査 |
| CANツールボードがオフライン | bytes_invalid、Network is down、No buffer space、Timer too close | CAN線順序、終端抵抗、電源、UUID | CANネットワーク設定とID検索 |
| 印刷中にランダムに停止/欠落 | Stepper too far in past、Rescheduled timer、Lost communication | 上位機の負荷、通信線干渉、速度・加速度 | システム、パフォーマンス、サービスエラー |
| 設定が保存できない | Unable to write、Option conflict、CRC does not match | ファイル権限、自動保存領域の競合、FIRMWARE_RESTART | 設定関連エラー |
参考設定セクション
テスト設定を管理する際は、ハードウェアの種類に応じて、対応するマザーボード/ツールボードテンプレートからセクションを抽出できます:
- マザーボードテスト:
temperature_sensor、manual_stepper DriveN、tmcXXXX manual_stepper DriveN、output_pin FANx、gcode_button IOx。 - ツールボードテスト:
temperature_sensor、adxl345/lis2dw、manual_stepper Drive0、output_pin FANx、gcode_button。 - 複数ドライバテスト:
Drive0、Drive1、Drive2のような命名を維持し、テストコマンド内のSTEPPER=を設定セクション名と一致させます。 - 低電圧出力テスト:ファン、RGB、ブザーなどの低電圧負荷を優先的に選択し、ヒーターカートリッジやヒートベッドを通常の
output_pinテストとして使用しないでください。
上記の最小テストで特定のモジュールが機能しない場合は、まず元の設定に戻し、具体的なエラーに基づいて対応するFAQページで調査を続けてください。