メインコンテンツまでスキップ

CANファームウェアのコンパイル

書き込み前の確認事項

現在のモードと操作手順の確認

  • 重要: ツールボードが現在 Klipper-CAN モード の場合、ファームウェアをコンパイルした後、コマンドで直接書き込むことができます。コマンドは自動的に Katapult にリセットし、書き込みを完了します。
  • 出荷時状態: ボードには CANモードKatapult ファームウェアがプリインストールされており、速度は 1M です。
  • 状態の判断(LED確認): ボード上の LED が点滅 している場合(下図参照)、Katapult モードであり、書き込みが可能です。
    Loading...
  • モード異常: LED が点滅しない 場合、ファームウェアが Katapult ではありません。以下のリンクの手順に従って再書き込みを行う必要があります: Katapult ファームウェアを書き込む

ディップスイッチの設定と物理接続

  1. ディップスイッチ設定: 現在の状態に関わらず、まずボード上のディップスイッチを CAN モード に設定し、120Ω スイッチをオンにしてください(下図参照)。

    Loading...
  2. デバイス接続: CANケーブルを使用して、ツールボードを UTOC またはブリッジファームウェアが書き込まれた メインボード に接続します。配線は下図を参照してください:

    Loading...
  3. 重要チェック(ターミネーション抵抗): 完全に電源を切った状態 で、テスターを使用して CAN_HCAN_L ピン間の抵抗を測定してください。

    デバイス操作説明
    ツールボード120Ω と表示されたジャンパーキャップを探して取り付けます。
    メインボードメインボードに接続する場合、同様にその 120Ω ジャンパーキャップを取り付けてください。
    UTOCモジュール内蔵済みです。

    確認方法:

    1. 完全に電源を切った状態 を保ちます。
    2. テスターを使用してツールボードのCANポートの CAN-HとCAN-L 間の抵抗を測定します。
    3. 結果の判断:
      • 約60Ω: 正常です。両端の抵抗が正しく接続されています。
      • 約140Ω: CAN-HとCAN-Lが逆接続されている可能性があります。
      • 約120Ω: 120Ω が取り付けられていない、または断線しています。
      • 約90Ω: 120Ω が1つしか取り付けられていません。
      • 約40Ω: 余分な抵抗がある可能性があります。中間ノードを確認してください。

コンパイル開始

ファームウェアコンパイルの注意事項と操作ガイド

注意事項

📌 重要な前提条件
  1. ネットワーク接続:上位機(ラズベリーパイなど)がネットワークに接続されていることを確認してください。
  2. アクセス方法SSHによるネットワークログインを使用して上位機にアクセスする必要があります。シリアルツールの使用は禁止です。
  3. ユーザー権限:上位機のシステムタイプに応じて、正しいユーザーアカウントで操作してください。
  4. 入力モード:キーボードの入力モードが**半角モード(英語モード)**であることを確認してください。

SSHログインとユーザー切り替え

SSHで上位機にログインする

SSHツール(MobaXterm、PuTTYなど)を使用して、ネットワーク経由で上位機にログインします: SSH接続の詳細チュートリアルを表示

システムタイプに応じてユーザーを切り替える

適用システム

  • ラズベリーパイ公式システム
  • FLY派Armbianシステム
  • Klipperがインストール済みのその他のシステム

ユーザー権限要件

  • rootユーザーを使用して操作することは禁止です。
  • 一般ユーザーに切り替えて操作する必要があります。

切り替えコマンド

  • その他のシステム(<username>を実際のユーザー名に置き換えてください)

    su <username>
💡 ヒント

一般ユーザーは通常、必要なコンパイル権限を持っています。rootユーザーを使用すると権限の問題が発生する可能性があります。


ファームウェアコンパイルの説明

1. キーボード操作ガイド

  • Klipperファームウェア設定ページでは、以下のショートカットキーのみ使用できます。
  • マウスを直接操作することはできません!
キー機能説明
↑ ↓ 方向キーカーソルを上下に移動してメニュー項目を選択
Enter または Space選択/チェックボックスの確認 または サブメニューへ移動
ESC前のメニューに戻る
QKlipperファームウェア設定ページを終了
Y終了時にプロンプトが表示されたら、Yキーを押して設定を保存

隠しオプションを表示する

⚠️ 隠しオプションを表示

設定ページのオプションが少ない場合は、まず以下をチェックしてください:

[ ] Enable extra low-level configuration options

このオプションは、一部の隠れた設定オプションを表示するために使用されます。

ファームウェアコンパイルの開始

以下にファームウェアのコンパイル方法を説明します:

  • SSH接続後、以下のコマンドを入力してEnterキーを押してください:

    cd ~/klipper && rm -rf ~/klipper/.config && rm -rf ~/klipper/out && make menuconfig
  • ここでrm -rf ~/klipper/.config && rm -rf ~/klipper/outは、以前のコンパイルデータとファームウェアを削除します。

  • make menuconfigはファームウェアをコンパイルします。実行後、以下の画面が表示されるはずです。

    Loading...
  • Enable extra low-level configuration optionsを選択し、Enterキーを押してください。

    Loading...
  • メニューMicro-controller Architectureに移動し、Raspberry Pi RP2040/RP235xを選択してEnterキーを押してください。

    Loading...
  • Bootloader offsetを選択し、16KiB bootloaderを選択してください。

    Loading...
  • Communication interfaceを選択し、CAN busを選択してください。

    Loading...
  • (4) CAN RX gpio numberを選択し、4を削除して1を入力してください。

  • (5) CAN TX gpio numberを選択し、5を削除して0を入力してください。

    Loading...

123

  • マイクロコントローラ起動時に設定するGPIOピンを選択し、入力します:
    !gpio5
手記

英語入力モードで入力してください

!gpio5
Loading...
  • 上図と照合し、一致することを確認してから次のステップに進んでください
  • Qキーを押すと、Save configurationが表示されます。この状態でYキーを押してください。
Loading...
  • これで設定が保存され、コマンドラインインターフェースに戻るはずです。
  • 以下のコマンドを入力してコンパイルを開始してください。時間がかかります。
make -j4
Loading...
  • 最後に以下の内容が出力されれば、コンパイルは成功です。
  • Klipperのバージョンによっては、out/klipper.binが表示されれば成功を意味します。
    Linking out/klipper.elf
    Creating bin file out/klipper.bin

IDの検索と書き込み

デバイスの検索

  • 上位機に正常にログイン済みの場合、lsusbを入力してデバイスを検索できます。以下のいずれかの状況が発生する可能性があります。
    • lsusbを入力した際にlsコマンドが見つからないというメッセージが表示される場合、以下のコマンドでコマンドをインストールできます。
      sudo apt-get install usbutils
    • lsusbを入力しても何の反応もない場合、これはシステムの問題です。こちらでは対応できませんので、システムを変更するか、正常なシステムを使用してください。
    • 以下の画像のような情報が表示されます。ただし参考情報であり、1d50:606fが表示されていることを確認すれば問題ありません。
      Loading...
  • 1d50:606fは今回使用するデバイスです。
  • 複数の1d50:606fが表示される場合、片方を除外する必要があります。そうでないと今後のファームウェア書き込みや接続に影響が出ます。例えばFLY MINI PADの場合、他のCANブリッジではなく、基板に搭載されているUTOCを使用することをおすすめします。
  • 表示されない場合は、自分でケーブルがしっかり接続されているか、ファームウェアが正しく書き込まれているかを確認してください。
注意事項

1d50:606fが表示されている場合のみ、CAN IDの検索を行ってください。

CANBus UUIDの照会

操作前の注意点
  • 印刷中ではない状態でID照会とファームウェア書き込み操作を行うことを推奨します。印刷プロセスへの干渉を避けるためです。
  • 同一のメインボード/ツールボードにおいて、Katapult(CANBoot)ファームウェアとKlipperファームウェアは同じCAN IDを使用します。
前提条件

以下の条件を満たしていることを確認してください。満たしていない場合、CAN IDが正常に検索できない可能性があります:

  1. ホストコンピュータのCANネットワークが正しく設定されていること
  2. ツールボードのCAN通信速度がホストコンピュータと完全に一致していること(速度が異なると通信できません)
  3. lsusb コマンドを実行した際に 1d50:606f デバイス(USB-CANアダプタ)が表示されること

検索コマンド(システムに応じて選択)

~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0

検索結果の説明

ケース1:Klipperファームウェアが書き込まれたメインボード/ツールボード

  • 表示内容:CAN IDが1つ表示され、 Application: Klipper と表示されます。
  • 説明:デバイスはKlipperファームウェアで動作しており、そのまま使用できます。このIDはメインボードのIDか、ツールボードのIDのいずれかです。
  • 識別方法:ツールボードのCAN接続ケーブルを外して再度検索します。そのIDが消えた場合はツールボードのID、消えずに残っている場合はメインボードのIDです。
Loading...

ケース2:メインボード + 書き込み待ちのツールボード

  • 表示内容2つのCAN IDが表示されます。
  • 説明:メインボードはKlipperファームウェアで動作しており、ツールボードはCanBootファームウェアで動作しており、書き込みを待っています。
Loading...

ケース3:UTOC + 書き込み待ちのツールボード

  • 表示内容UTOC自体はIDを表示せず、ツールボードのIDのみが表示されます。
  • 説明:UTOCはブリッジとして機能するのみです。ツールボードがCanBootモードにあることを確認してください。
Loading...

ケース4:IDが表示されない

  • 表示内容:IDが何も表示されません。
  • 考えられる原因
    1. CANバスがKlipperによって占有されている
    2. ホストコンピュータのCAN0速度設定が誤っている
    3. 物理的な配線に異常がある
    4. デバイスがCanBootモードに入っていない
Loading...

重要な注意点
  • 書き込み待機状態:ツールボードがCanBootモードにある場合、 Application: CanBoot と表示され、ファームウェアLEDが点滅します。この状態でファームウェアの書き込みが可能です。
  • ID占有時の処理:デバイスがKlipperファームウェアで動作しており、そのIDが設定ファイルに既に記入されている場合、IDは表示されません(Klipperによって占有されています)。再表示させたい場合は、設定ファイルでそのIDを無効化し、完全に電源を切って再起動する必要があります。
トラブルシューティング

UUIDが照会できない場合は、以下を参照してください: CAN問題トラブルシューティングガイド

ファームウェアの書き込み

書き込みコマンド

  1. 以下のコマンド内の 241696050c56 を、実際に照会されたUUIDに置き換えてください。
  2. 注意-u パラメータの後にはスペースが必要です。
python3 ~/klipper/lib/canboot/flash_can.py -u 241696050c56

書き込み成功の確認

CAN Flash Success というメッセージが表示されれば、書き込み成功です:

Loading...

ファームウェアの更新

更新方法

ファームウェアを更新する必要がある場合は、以下の手順を実行するだけです:

  1. ファームウェアを再コンパイルする
  2. デバイスのCAN IDが照会できること(またはKlipperがデバイスに接続されていること)を確認する
  3. 同じ書き込みコマンドを実行する
python3 ~/klipper/lib/canboot/flash_can.py -u <MCU ID>

更新成功の例

Loading...

ファームウェアの起動確認

  • ファームウェアが正常に起動するとLEDが点灯します
    Loading...
Loading...