MCU ID 設定
このページでは、Klipperにおけるメインボード、ツールボード、CANデバイス、およびホストMCUのID記入ルールについてまとめて説明します。接続関連の問題が発生した場合は、まず通信方式を確認し、その後に対応する serial: または canbus_uuid: を記入してください。
MCU ID の確認
IDを記入する前に、SSHでホストにログインし、対応するコマンドを実行して実際のデバイス識別子を取得する必要があります。
USB デバイス
ls /dev/serial/by-id/*
出力例(usb-Klipper_... はKlipperファームウェアモードのID):
/dev/serial/by-id/usb-Klipper_stm32h723xx_12345-if00
- KlipperファームウェアID例:
usb-Klipper_stm32h723xx_12345-if00 - 書き込みモードID例:
usb-katapult_stm32h723xx_12345-if00(katapultを含む) - 書き込みモードID例:
usb-STM32_Bootloader_xxxxxxxxxxxx(Bootloaderを含む)
設定ファイルでは必ずKlipperファームウェアモードのIDを使用してください。書き込みモードのIDしか表示されない場合は、ツールボードがKlipperファームウェアの実行状態になっていないことを意味します。
CAN デバイス
- SSH コマンドライン
- FlyOS-FAST / FLY ホスト
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
出力例:
Found canbus_uuid=688e89f0e402, Application: Klipper
FASTまたはFLYホストでは、直接 python3 を使用して検索します:
python3 ~/klipper/scripts/canbus_query.py can0
FASTシステムのCAN0は、あらかじめ1Mレート、1024キャッシュに設定されているため、通常は手動設定は不要です。
Applicationが CANBOOT または Katapult と表示されるUUIDは書き込みモードのIDであり、printer.cfg に直接使用することはできません。詳細なトラブルシューティングは CANネットワークとID検索 を参照してください。
ホストMCU
ホストのLinuxプロセスをMCUとしてエミュレートする場合([mcu host])、そのシリアルポートは固定です:
[mcu host]
serial: /tmp/klipper_host_mcu
RS232 デバイス
ls -l /dev/serial/by-path/
出力例:
/dev/serial/by-path/platform-3f980000.usb-usb-0:1.2:1.0-port0
ツールボード設定:ツールボードMCUの追加とクロスボード設定
MCU ID 設定説明
KlipperのMCU IDとは、[mcu] または [mcu xxx] 設定セクションで制御ボード接続の識別情報を指します。通信方式によって記述方法が異なります:
| 接続方式 | 設定項目 | 例 |
|---|---|---|
| USB ファームウェア | serial: | serial: /dev/serial/by-id/usb-Klipper_xxxxxxxxxxxx |
| CAN ファームウェア | canbus_uuid: | canbus_uuid: xxxxxxxxxxxx |
| ホストPC MCU | serial: | serial: /tmp/klipper_host_mcu |
記入ルール:
- マザーボードはデフォルトで
[mcu]を使用し、ツールボードや拡張ボードには[mcu tool]、[mcu toolboard]などのカスタム名称を使用します。 - USB ファームウェアは
serial:のみ、CAN ファームウェアはcanbus_uuid:のみを記入し、同一[mcu]内に両方の項目を併記しないでください。 - 複数MCU構成のマシンでは、各
[mcu xxx]に実際のIDを使用し、同一のUSB IDやCAN UUIDをコピーして使用しないでください。 [mcu xxx]の名称はピン接頭辞に影響します。例:[mcu tool]のピンはtool:gpio13と記述します。名称の大文字小文字は統一してください。- ドキュメント例の
xxxxxxxxはそのまま使用できず、実際に検出したIDに置き換える必要があります。
よくあるエラー:
- 書き込みモードのID(例:
katapult、canbootを含むID)をKlipperファームウェアのIDとして誤って使用する。 - USB ファームウェアに
canbus_uuid:を設定する、またはCAN ファームウェアに古いserial:を残す。 - ツールボードを
[mcu]と設定し、マザーボードのMCU設定を上書きしてしまう。 - ピン接頭辞とMCU名称が一致しない。例:設定が
[mcu toolboard]であるのに、ピンがtool:gpio13と記述されている。
USB ID 確認:USB ファームウェアは
ls /dev/serial/by-id/*を実行してIDを取得します。
CAN ID 確認:CAN ネットワークとID検索
ツールボード設定:ツールボードMCU追加とクロスボード設定
複数MCU設定例
USBメインボード + CANツールボード
USBメインボードは serial: で接続し、CANツールボードは canbus_uuid: で接続します:
[mcu]
serial: /dev/serial/by-id/usb-Klipper_xxxxxxxxxxxx
[mcu tool]
canbus_uuid: xxxxxxxxxxxx
[temperature_sensor ToolBoard]
sensor_type: temperature_mcu
sensor_mcu: tool
USBメインボード + USBツールボード
両方とも serial: で接続し、異なるIDで区別します:
[mcu]
serial: /dev/serial/by-id/usb-Klipper_mainboard_xxxxxxxxxxxx
[mcu toolboard]
serial: /dev/serial/by-id/usb-Klipper_toolboard_xxxxxxxxxxxx
CANメインボード + CANツールボード
両方とも canbus_uuid: を使用し、各UUIDは異なる必要があります:
[mcu]
canbus_uuid: aabbccddeeff
[mcu toolboard]
canbus_uuid: 112233445566
ホストMCU + USBメインボード
ホストでLinuxプロセスMCUを実行し、メインボードはUSBで接続します:
[mcu host]
serial: /tmp/klipper_host_mcu
[mcu]
serial: /dev/serial/by-id/usb-Klipper_xxxxxxxxxxxx
よくある誤り
| 誤った方法 | 正しい方法 |
|---|---|
| 書き込みモードIDをKlipper IDとして使用する | デバイスがKlipperファームウェアに入った状態でIDを確認する |
USBファームウェアに serial: と canbus_uuid: の両方を記入する | USBファームウェアは serial: のみ、CANファームウェアは canbus_uuid: のみ記入する |
ツールボードを [mcu] として記述し、メインボード設定を上書きする | ツールボードは [mcu toolboard] などのカスタム名を使用する |
| 複数のMCUが同じIDを共有する | 各MCUは独自のユニークなIDを使用する必要がある |
| ピン接頭辞がMCU名と一致しない | [mcu toolboard] のピンは toolboard:PA0 と記述し、名前の大文字小文字を一致させる |
ドキュメント内の xxxxxxxx をそのままコピーして使用する | 実際に検索した実際のIDに置き換える必要がある |
トラブルシューティングの入口
| 問題の症状 | 調査の入口 |
|---|---|
USB IDが見つからない、または [Errno 2] が発生する | よくあるエラー概要 |
| CAN UUIDが無効、またはデバイスがオフライン | CANネットワークとID検索 |
| 複数MCUの切断、設定が更新できない | システム、パフォーマンス、サービスエラー |
| ツールボードの追加、クロスボードピン設定 | ツールボードMCUの追加とクロスボード設定 |
| ピン接頭辞、ピンの重複、またはMCU名の誤り | 設定関連エラー |