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

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

書き込み前の確認事項

現在のモードと操作パスの確認

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

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

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

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

  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Ω: 余分な抵抗がある可能性があります。中間ノードを確認してください。

コンパイル開始

  • klipperサービスがインストールされたホストコンピュータが必要です ネットワーク経由でSSH接続
  • そして、デバイスをホストコンピュータに接続してください
  • 注意:一般的なホストコンピュータ(例えば、ラズベリーパイ、FLY派など)を使用してください。改造ホストコンピュータ(例えば、WiFi棒、Redmiなど)は問題が多く、技術サポートを提供できません
手記
  • ラズベリーパイ、FLY派などの一般的なホストコンピュータシステムはこのカテゴリに含まれます
  • このようなホストコンピュータではROOTユーザーを使用していかなる操作も行ってはいけません
  • 通常のユーザーを使用してください
  • ユーザー切り替え方法:FlyOS-Armbianシステムの場合はsu flyコマンドで通常ユーザーに切り替えてください
  • その他のシステムの場合はsu <あなたのホストコンピュータのユーザー名>コマンドで通常ユーザーに切り替えてください
su <あなたのホストコンピュータのユーザー名>
ヒント
  • 上位機が正常にネットワークに接続できていることを確認してください
  • 固件のコンパイル前に、SSHを使用してネットワーク経由で上位機にログインする必要があります
  • 上位機にシリアルポートツールを使用しないでください

Klipperファームウェアのコンパイルと設定ページ操作説明

ヒント

キーボード入力モードを半角モード(英語モード)に設定してください

  1. キーボードのキー、キーは、カーソルを上下移動させてメニュー項目を選択します
  2. 確認キーEnterまたはスペースキーSpaceは、メニューをチェックするかサブメニューに進むために使用します
  3. 戻るキーESCは、一つ前のメニューに戻ります
  4. Qキーは、Klipperファームウェアの設定ページを終了します
  5. Yキーは、Klipperファームウェアの設定ページを終了する際に、プロンプトがある場合に、Yキーを押して設定ファイルを保存します
手記

配置ページのオプションが少ない場合は、最初に[ ] Enable extra low-level configuration optionsをチェックして、一部の隠しオプションを表示してください

以下はファームウェアをコンパイルする方法です:

  • SSHに接続した後、次のコマンドを入力して実行します:

    cd ~/klipper && rm -rf ~/klipper/.config && rm -rf ~/klipper/out && make menuconfig
  • ここで、rm -rf ~/klipper/.config && rm -rf ~/klipper/outは以前のコンパイルデータとファームウェアを削除し、make menuconfigはファームウェアをコンパイルします。実行後、下記のインターフェースが表示されるはずです。

  • Enable extra low-level configuration optionsを選択して Enter を押します。

  • メニュー Micro-controller Architecture に進み、Raspberry Pi RP2040/RP235x を選択して Enter を押します。

  • Bootloader offset を選択し、16KiB bootloader を選択します。

  • Communication interface を選択し、CAN bus を選択します。

  • (4) CAN RX gpio number を選択し、4 を削除して 1 を入力します。

  • (5) CAN TX gpio number を選択し、5 を削除して 0 を入力します。

  • GPIO pins to set at micro-controller startupを選択し、以下を入力:
    !gpio5
手記

必ず英語入力モードで以下を入力してください

!gpio5
  • 上図と照らし合わせ、完全に一致することを確認してから次のステップに進んでください
  • Qキーを押し、 Save configuration が表示されたら Y キーを押します
  • これで設定が保存され、コマンドラインインターフェースに戻ります
  • 以下のコマンドを入力してコンパイルを開始します。時間がかかります
make -j4
  • 最後に以下の内容が出力されればコンパイル成功です
  • 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が表示されていることを確認すれば問題ありません。
  • 1d50:606fは今回使用するデバイスです。
  • 複数の1d50:606fが表示される場合、片方を除外する必要があります。そうでないと今後のファームウェア書き込みや接続に影響が出ます。例えばFLY MINI PADの場合、他のCANブリッジではなく、基板に搭載されているUTOCを使用することをおすすめします。
  • 表示されない場合は、自分でケーブルがしっかり接続されているか、ファームウェアが正しく書き込まれているかを確認してください。
注意事項

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

ヒント
  • IDの検索およびファームウェアの書き込みは、プリント中に行わないことを推奨します。
  • 同一のマザーボードまたはツールボードKatapultのCANファームウェアとKlipperのCANファームウェアは、IDが完全に一致します。
手記
  • 上位機のCANネットワークがすでに設定されていることを確認してください。
  • lsusbの結果に1d50:606fが表示される場合にのみ、以下のコマンドでCAN IDを検索できます。
  • ツールボードのCAN速度は上位機と一致していなければなりません。そうでないとIDを見つけることができず、また書き込みもできません。
  • 以下のコマンドを実行してCANBus UUIDを照会してください:

    ~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
    • 入力後、マシンの状況によって以下のいずれかの結果が表示されます(参考):

      • 第一種:ブリッジファームウェアを書き込んだマザーボードで、1つのIDが表示され、Application: Klipperと表示されます。
      • 第二種:ブリッジファームウェアを書き込んだマザーボードに、ファームウェアを書き込む必要があるツールボードを接続した場合、2つのIDが表示されます。
      • 第三種:UTOCにファームウェア書き込みが必要なツールボードを接続した場合
      • 注意:UTOCにはIDの表示はありません。
      • 第四種:IDの表示がない場合。一般的にはKlipperにより占有されている、上位機のCAN0速度が正しくない、配線異常などが原因です。
    • 正常に動作している場合、ファームウェアを書き込む必要があるツールボードがCANBOOT状態であれば、Application: CanBootと表示され、対応するファームウェアのLEDが点滅します。この状態でKlipperファームウェアを書き込む必要があります。そうでないと接続できません。

    • 注意:Klipperファームウェアを使用しており、設定にIDを入力した後はIDが表示されず、Klipperにより占有されます。この場合、対応するIDを無効化し、マザーボードの電源を完全に切ってから再起動する必要があります。

手記
  • UUIDが照会できない場合は、以下のドキュメントを参照してください。
  • CAN関連の問題集

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

  • 以下のコマンド内の241696050c56を先ほど検索したuuidに置き換えてください。-uの後には半角スペースが必要です。

    python3 ~/klipper/lib/canboot/flash_can.py -u 241696050c56
  • 下図のようにCAN Flash Successと表示されれば書き込み成功です。

ファームウェアのアップデート

  • ファームウェアを更新する場合は、ファームウェアをコンパイルした後に再度書き込みコマンドを実行するだけで更新できます。
  • ただし、対応するIDが見つかること、またはKlipperがすでに接続されていることを確認してください。
    python3 ~/klipper/lib/canboot/flash_can.py -u  <MCU ID>

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

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