周辺機器とドライバーテスト
本ドキュメントは、ステッピングドライバー、CANツールボードなどの周辺機器モジュールが正常に動作するかを検証するためのものです。テストの考え方は基本的なI/Oテストと同様で、最小限のKlipper設定を使用して個々のハードウェアを分離します。
MCU接続、温度センサー、ファン出力、または入力ポートをテストする必要がある場合は、まず ハードウェアテスト方法 を参照してください。
ドライバーテスト
テスト目的
最もシンプルなKlipper設定を使用して、単一のTMCドライバー(UARTまたはSPIモード)がマザーボードと正常に通信できること、およびモーターが制御下で動作することを確認します。
前提条件
プリンターの電源を完全に切り、電源ケーブルを抜いてから以下の作業を行ってください。ドライバーモジュールやステッピングモーターケーブルの活線挿抜は禁止です。
- プリンターの電源が完全にオフになっていること。
- テスト対象のTMCドライバーがマザーボードの対応するソケットに正しく挿入され、向きが間違っていないこと。
- UARTモードのドライバー(TMC2209など)の場合、対応するドライバーポートのUARTジャンパーが取り付けられていること。
- テスト対象のドライバーポートに1つだけステッピングモーターを接続し、他のドライバーポートは空けておくこと。
- テスト対象のドライバーのみを含む最小構成の
printer.cfgを準備し、元の完全な設定ファイルはバックアップしておくことを推奨します。
単一ドライバー最小構成設定
以下の最小構成で printer.cfg を置き換えます。[printer]、[mcu]、テスト対象の [manual_stepper Drive0]、および対応する [tmcXXXX manual_stepper Drive0] セクションのみを保持します。[manual_stepper] を使用するには、最小限の [printer] セクション(kinematics: none)が必要ですが、これは動作軸の設定よりもシンプルで、純粋なハードウェア検証に適しています。
- UART モード(TMC2209 / TMC2240 等)
- SPI モード(TMC5160 / TMC2130 等)
[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
[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
[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/で確認可能)。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 に認識されていることを確認し、ツールボード上の温度、ファン、加速度計、または入力ポートを検証します。
最小構成設定
[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を実行します。- ツールボードの加速度計や入力ポートをテストする必要がある場合は、上記の該当セクションに従って設定を追加してください。
電源を切った状態で行ってください。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 ページでさらに確認してください。