MCU接続ガイド
本ガイドは、MCUがKlipperと正常に接続できない問題を調査・解決するためのものです。
準備と注意事項
- 推奨しないホストデバイス:Redmiスマートフォン、WiFiドングル、セットトップボックスなどのデバイスは避けてください。これらは通常、カスタムまたは修正されたシステムを使用しており、MCUを正しく認識できない可能性があります。
- 下位機の台数を確認:使用する下位機(ツールボードなど)の台数を事前に確認してください。複数の下位機が接続に影響を与える可能性があります。
- 配線の簡略化:マザーボードとツールボードからデータケーブル以外の全ての配線を一時的に取り外し、必要なデータ接続のみを残して干渉を排除することをお勧めします。
- 推奨操作画面:Fluiddインターフェースの使用をお勧めします。MCUの接続状態をより直感的に表示できます。
ステップ1:設定のバックアップとリセット
1. ホストのインターフェースにアクセス
ブラウザにホストのIPアドレスを入力してアクセスします。
2. 設定ファイルの場所を特定
WEBインターフェースに入り、左側のサイドバーで設定オプションを見つけます:
Fluiddユーザー:...をクリックし、printer.cfgを見つけます。
Mainsailユーザー:機械をクリックし、printer.cfgを見つけます。
3. 設定ファイルをバックアップ
printer.cfgファイルを右クリックし、Duplicateを選択してコピーし、コピーの名前を次のように変更します:
printer_Backup.cfg
Fluidd操作例:
Mainsail操作例:
4. 設定ファイルをリセット
printer.cfgを再度開き、全ての内容をクリアし、以下の基本設定を貼り付けます:
[mcu]
serial: /tmp/klipper_host_mcu
[printer]
kinematics: none
max_velocity: 200
max_accel: 1000
5. 保存して再起動
- 右上のSAVE & RESTARTをクリックすると、Klipperが設定を保存しサービスを再起動します。
- エラーが発生した場合は、一時的に無視してください。
- その後、全てのデバイス(ホストと全ての下位機を含む)の電源を完全に切ってください。
- 重要:完全に電源を切る必要があります。そうしないと、以降の手順に進むことができません。
ステップ2:デバイスの検出とファームウェアタイプの確認
前提条件
- メインデバイスの順序:最初の
MCUはマザーボードである必要があり、ツールボードであってはなりません。 - ファームウェアタイプ:お使いのFLYマザーボードのファームウェアがUSBファームウェアまたはUSBブリッジCANファームウェアであることを確認してください。本ガイドは他のタイプには適用されません。
- 接続方法:まずSSHに接続してください。この操作はネットワーク経由で行う必要があります。
操作手順
-
デバイス検出を実行
- SSH接続が成功したら、以下のコマンドを実行します:
lsusb
- システムは認識された全てのUSBデバイスをリスト表示します。
- SSH接続が成功したら、以下のコマンドを実行します:
-
コマンド異常の処理
lsusbコマンドが存在しないと表示された場合は、先にインストールします:sudo apt-get install usbutils- 実行後、デバイスが何も表示されない場合は、ホストの交換をお勧めします。
-
デバイス情報を識別 以下の図を参考に、
lsusbの出力結果からデバイスを識別します:Loading...Loading... -
ファームウェアタイプを確認
- 書き込んだファームウェアに応じて、
lsusbの結果で以下の重要な情報を確認してください:- USBファームウェア:
1d50:614eと表示されるはずです - USBブリッジCANファームウェア:
1d50:606fと表示されるはずです - USB Katapultファームウェア:
1d50:6177と表示されるはずです - RS232アダプタ(UTORと併用、またはD8およびD8PROマザーボードを使用する場合):
1a86:7523と表示されるはずです(G2Tと併用する場合はこの手順は不要です)
- USBファームウェア:
- 書き込んだファームウェアに応じて、
ステップ3:デバイスIDの検索
重要な注意事項
- USB ID検索:USBファームウェアにのみ適用され、CANやRS232には使用できません。
- CAN ID検索:CANバスデバイスにのみ適用され、USBやRS232には使用できません。
- RS232 ID検索:RS232ファームウェアにのみ適用され、USBやCANには使用できません。
- RS232の特異性:RS232ファームウェアは通常、ツールボードにのみ使用され、メインMCUには適用されません。
ファームウェアタイプに応じた方法の選択
USBファームウェアデバイス 以下のコマンドを実行してUSBデバイスIDを検索します:
ls /dev/serial/by-id/*
USBブリッジCANデバイス お使いのシステムタイプに応じて、対応するコマンドを選択してCAN IDを検索します:
- 通常のホスト
- Fly_FASTシステム
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
python ~/klipper/scripts/canbus_query.py can0
RS232ファームウェアデバイス 以下のコマンドを実行してRS232デバイスパスを検索します:
ls /dev/serial/by-path/*
結果の解釈と処理
USB IDの検索結果
コマンド実行後、端末に以下のようなデバイスIDが表示されます(これは例です):
- そのまま使用可能:
usb-フィールドの後にKlipperと表示されている場合(例:usb-Klipper_stm32f407xx_...)、Klipperファームウェアが書き込まれています - ファームウェアの書き込みが必要:
usb-フィールドの後にkatapultと表示されている場合(例:usb-katapult_stm32f407xx_...)、現在Bootloaderであり、Klipperファームウェアを書き込む必要があります - 認識不可:以下の例のIDで
usb-フィールドの後に1a86_USB_Serialと表示されている場合、そのデバイスはCH340シリアル変換チップであり、Klipper/katapultファームウェアを実行しているMCUではありません。まず対応するファームウェアを書き込む必要があります
/dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
- 正常な場合は以下の通りです
CAN IDの検索結果
コマンド実行後、端末の戻り値に基づいて判断します:
- そのまま使用可能:表示されたIDの末尾
Application:フィールドがKlipperと表示されている場合 - ファームウェアの書き込みが必要:表示されたIDの末尾
Application:フィールドがCANBOOTまたはKatapultと表示されている場合 - デバイスが見つからない:
Total 0 uuids foundと表示された場合、考えられる原因は以下の通りです:- CANネットワーク設定の誤り
- CANレートの不一致(ホスト、マザーボード、ツールボードのレートが一致していることを確認してください)
- そのIDが既に使用されている(設定でブロックし、シャットダウンして電源を切り、再起動する必要があります)
RS232 IDの検索結果
コマンド実行後、端末にRS232デバイスパスが表示されます(これは例です):
- パスの例:
/dev/serial/by-path/platform-3f980000.usb-usb-0:1.2:1.0-port0
RS232デバイスを設定する際は、必ずボーレートと再起動方法を指定する必要があります:
[mcu toolboard]
serial: <ここを検索したRS232デバイスパスに置き換えてください>
baud: 250000
restart_method: command
ステップ4:メインMCUのIDを設定
設定を開始する前に、ツールボードとホストまたはマザーボードの接続が切断されていることを確認し、デバイス認識の競合を避けてください。
printer.cfgファイルを再度開き、[mcu]セクション内のserial: /tmp/klipper_host_mcu設定行を見つけます。
接続方法に応じて、以下の対応する方法を参照して設定します:
- USB接続設定
- CAN接続設定
serial:の後の/tmp/klipper_host_mcuを、検索したUSB IDに置き換えます。
設定例:
# 検索したUSB ID:
# /dev/serial/by-id/usb-Klipper_stm32h723xx_12345-if00
# 設定を変更:
[mcu]
serial: /dev/serial/by-id/usb-Klipper_stm32h723xx_12345-if00
serial: /tmp/klipper_host_mcu設定項目をcanbus_uuid:に置き換え、検索したCAN IDを入力します。
設定例:
# 検索したCAN ID:
# 688e89f0e401
# 設定を変更:
[mcu]
canbus_uuid: 688e89f0e401
設定を保存し、Klipperサービスを再起動します。
ステップ5:メインMCUの接続を確認
メインMCUの設定が完了したら、接続が成功したかどうかを確認する必要があります:
- Fluiddインターフェースを開き、左側のメニューにある
Systemをクリックします - MCU情報を確認:
Mcu Informationの下にあるMicro-Controller情報を見つけます - メインコントローラの型番を確認:表示されている型番が、お使いのマザーボードの実際のメインコントローラの型番と一致することを確認します
- メインコントローラがSTM32H723の場合、
Micro-ControllerはH723関連の型番である必要があります - 正しく表示されない場合や認識できない場合は、前の設定手順を確認してください
ステップ6:ツールボードMCUの追加
メインMCUの確認が成功したら、ツールボードを追加できます:
- ツールボードを再接続:ツールボードのデータケーブルをホストまたはマザーボードに再接続します
- 設定ファイルを編集:
printer.cfgファイルの一番下にツールボードの設定を追加します - ツールボードIDを設定:ツールボードのファームウェアタイプに応じて、追加した設定セクションに対応するIDを追加します
設定内のmcu1、mcu2などの名前は、一時的に異なるデバイスを区別するためのものです。これらの名前は完全にカスタマイズ可能で、設定ファイル内で一意であれば問題ありません。
設定形式:
[mcu mcu1]
# ここにツールボードのID設定を追加
設定例:
- USBツールボード
- CANツールボード
- RS232ツールボード
[mcu mcu1]
serial: /dev/serial/by-id/usb-Klipper_stm32f446xx_54321-if00
[mcu mcu1]
canbus_uuid: 688e89f0e402
[mcu mcu1]
serial: /dev/serial/by-path/platform-3f980000.usb-usb-0:1.2:1.0-port0
baud: 250000
restart_method: command
注意事項:
- 各MCUは一意のIDを使用する必要があります。ツールボードIDがメインMCUや他のデバイスと異なることを確認してください
- MCU名は完全にカスタマイズ可能です(例:
toolboard、extruder_mcuなど)。設定内で一意であれば問題ありません - 前述の手順で確認した有効なツールボードIDを使用してください
- RS232デバイスには、
baud: 250000とrestart_method: commandパラメータの設定が必須です - 複数のツールボードを設定する場合は、各デバイスに異なる名前を付けて区別できるようにしてください
複数ツールボードのボード間ピン設定
複数のツールボードを使用する場合、ピンをボード間で割り当てる必要が生じることがあります。例えば、加熱機能には最初のツールボードの加熱ポートを使用し、温度センサーはマザーボードまたは2番目のツールボードに接続する場合などです。
Klipperの複数MCU設定では、任意の設定セクションのピンは、<mcu名>:<ピン番号>形式で、定義済みの任意のMCU上のピンを直接参照できます。追加の設定は不要です。Klipperは通信バス(CAN/USB/シリアル)を介して自動的に対応するMCUに命令を送信します。
典型的なシナリオ:加熱はツールボード、温度センサーはマザーボード
システム設定が以下の場合を想定します:
- メインMCU:ホストKlipperファームウェアを実行、温度センサーはマザーボードに接続
- toolboard1:ツールボード、ヒーターと押出機ステッパーはツールボードに接続
ステップ1:全てのMCUを定義
[mcu]
serial: /dev/serial/by-id/usb-Klipper_stm32h723xx_12345-if00
[mcu toolboard1]
canbus_uuid: e51d5c71a901
ステップ2:設定で直接ボード間ピンを参照
[extruder]
# ステッパーと加熱はツールボードのピンを使用
step_pin: toolboard1:<step_pin>
dir_pin: toolboard1:<dir_pin>
enable_pin: !toolboard1:<enable_pin>
heater_pin: toolboard1:<heater_pin> # ヒーターは toolboard1
# 温度センサーはマザーボードのピンを使用(直接 gpio または mcu:gpio と記述)
sensor_type: ATC Semitec 104GT-2
sensor_pin: <sensor_pin> # 温度センサーはマザーボードに接続
# その他のパラメータ
rotation_distance: 22.44
gear_ratio: 50:17
microsteps: 16
full_steps_per_rotation: 200
nozzle_diameter: 0.400
filament_diameter: 1.75
min_temp: -235
max_temp: 350
max_power: 1.0
min_extrude_temp: 170
control: watermark
- ツールボードのピン:形式は
<mcu名>:<ピン番号>、例:toolboard1:<heater_pin> - メインMCUのピン:実際のピン名を直接記述可能
- 同じ設定セクション内のピンは異なるMCUからのものでも構いません。Klipperが自動的にボード間通信を処理します
さらにボード間設定の例
- 温度センサーが第2ツールボード
- 複数押出機が異なるツールボードに属する
- ファンのボード間制御
ヒーターは第1ツールボード、温度センサーは第2ツールボード:
[extruder]
step_pin: toolboard1:<step_pin>
heater_pin: toolboard1:<heater_pin> # 加熱は第1ツールボード
sensor_type: ATC Semitec 104GT-2
sensor_pin: toolboard2:<sensor_pin> # 温度センサーは第2ツールボード
# ... その他の押出機パラメータ
2つの押出機がそれぞれ異なるツールボードに接続:
[extruder]
step_pin: toolboard1:<step_pin>
heater_pin: toolboard1:<heater_pin>
sensor_pin: toolboard1:<sensor_pin>
# ... 第1押出機パラメータ
[extruder1]
step_pin: toolboard2:<step_pin>
heater_pin: toolboard2:<heater_pin>
sensor_pin: toolboard2:<sensor_pin>
# ... 第2押出機パラメータ
押出機はツールボード、モデルファンはマザーボードに接続:
[fan]
pin: <fan_pin> # モデルファンはマザーボードに接続
# メインMCUのピンはピン名を直接記述
[heater_fan 喉管放熱]
pin: toolboard1:<fan_pin> # 喉管ファンはツールボードに接続
heater: extruder
heater_temp: 50
fan_speed: 1.0
- ボード間でピンを参照する場合、対応するMCUが設定ファイル内で
[mcu <名前>]により正しく定義されていることを確認してください - 機能が密接に関連するデバイス(ヒーターと温度センサーなど)は、可能な限り同じツールボードに接続することをお勧めします。これにより、最適な応答速度と信頼性が得られます
設定が完了したら、保存してKlipperサービスを再起動します。
ステップ7:全てのMCU接続を確認
ツールボードを追加してKlipperを再起動した後、全てのMCUの接続状態を再度確認する必要があります:
- Fluiddインターフェースを開き、左側のメニューにある
Systemをクリックします - MCU情報を確認:
Mcu Informationの下で、全てのMCUが正しく認識されていることを確認します - 各MCUの状態を確認:メインMCUとツールボードが全て接続状態であることを確認します
- メインMCUと全てのツールボードがリストに表示されている必要があります
- 各MCUの接続状態は「接続済み」である必要があります
- 特定のMCUが表示されない、または接続に失敗した場合は、その設定と物理的な接続を確認してください
ステップ8:ファームウェアバージョンの確認
全てのMCU接続が完了したら、ファームウェアバージョンの互換性を確認する必要があります:
- Fluiddインターフェースを開き、左側のメニューにある
Systemをクリックします - バージョン情報を確認:
Mcu Informationの下にあるVersionフィールドを見つけます - バージョンの一致性を確認:全てのMCUのファームウェアバージョンがホストのKlipperバージョンと一致することを確認します
- カスタムコンパイルファームウェア:プリコンフィグされたカスタムデバイスを除き、自分でコンパイルした全てのファームウェアは、ホストのKlipperバージョンと一致している必要があります
- Fly-FASTシステム:FASTシステムのファームウェアバージョンはシステムバージョンと一致し、コンパイルされたKlipperファームウェアはシステムバージョンと一致します
- バージョン不一致の結果:異なるバージョンのファームウェアは、機能異常、通信障害、システムの不安定性を引き起こす可能性があります
確認のポイント:
- メインMCUと全てのツールボードの
Version情報が表示され、バージョンが一致している必要があります - バージョンが一致しない場合は、対応するファームウェアを再書き込みする必要があります
ステップ9:設定ファイルの復元と更新
全てのMCU接続が正常であることを確認したら、元の設定ファイルを復元し、MCU設定を更新する必要があります:
-
現在の設定ファイルを削除
- 設定ファイル管理画面で、現在の
printer.cfgファイルを見つけて削除します
- 設定ファイル管理画面で、現在の
-
バックアップ設定を復元
- 以前にバックアップした
printer_Backup.cfgファイルの名前をprinter.cfgに変更します
- 以前にバックアップした
-
MCU設定を更新
- 復元した
printer.cfgファイルを開きます - 元の
[mcu]設定セクションを見つけ、前述の手順で取得したIDに基づいて更新します:
USB接続設定:
[mcu]serial: /dev/serial/by-id/usb-Klipper_stm32h723xx_12345-if00# 実際に検索したメインMCUのUSB IDに置き換えてくださいCAN接続設定:
[mcu]canbus_uuid: 688e89f0e401# 実際に検索したメインMCUのCAN UUIDに置き換えてください - 復元した
-
ツールボード設定を更新(該当する場合)
- 設定ファイル内で、ツールボードに対応する
[mcu]セクションを見つけます - 接続方法に応じて、実際に検索したツールボードIDに更新します:
USBツールボード:
[mcu toolboard]serial: /dev/serial/by-id/usb-Klipper_stm32f446xx_54321-if00CANツールボード:
[mcu toolboard]canbus_uuid: 688e89f0e402RS232ツールボード:
[mcu toolboard]serial: /dev/serial/by-path/platform-3f980000.usb-usb-0:1.2:1.0-port0baud: 250000restart_method: command - 設定ファイル内で、ツールボードに対応する
-
保存して再起動
- 全てのMCU設定の更新が完了したら、SAVE & RESTARTをクリックして保存し、Klipperを再起動します
- 再度
Systemページに入り、全てのMCU接続状態が正常であることを確認します
- 今回の接続テストで実際に検索した正しいIDを使用してください
- 複数のツールボードを設定する場合は、各
[mcu]セクションのIDを一つずつ更新してください - RS232ツールボードには、
baud: 250000とrestart_method: commandパラメータが必須です - 設定を復元すると、元のプリンターパラメータ(ステッピングモーターやリミットスイッチの設定など)は変更されません
以上で、MCU接続トラブルシューティングと設定の復元は全て完了です。