メインコンテンツにスキップ

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Ω が取り付けられていないか、断線しています。
      • 約40Ω: 余分な抵抗がある可能性があります。中間ノードを確認してください。

コンパイル開始

ファームウェアコンパイル簡易ガイド

注意事項

  • ネットワーク: 上位機(ラズベリーパイなど)がネットワークに接続されていることを確認してください
  • ログイン方法: SSH を使用してネットワーク経由でログインする必要があります。シリアルポートは無効にしてください
  • 入力方式: キーボードは英数字半角モードに保ってください

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

MobaXterm、PuTTY などのツールを使用して上位機にSSHログインします。

ユーザー切り替え:

  • 通常システム(ラズベリーパイ公式システムなど)
    root の使用は禁止されており、通常ユーザーに切り替える必要があります:
    su <ユーザー名>
  • FLY上位機(FlyOS-FASTシステム)
    root ユーザーでのログインのみサポート(パスワード:mellow

ファームウェアコンパイル操作ガイド

Klipper ファームウェア設定画面ではキーボード操作のみサポートされており、マウスは使用できません。

キー機能
↑ / ↓上下にカーソルを移動し、メニュー項目を選択
Enter / スペース選択の確定、オプションのチェック、またはサブメニューに入る
ESC前のメニューに戻る
Q設定画面を終了
Y終了時にプロンプトが表示されたら Y を押して設定を保存

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

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

  • 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...
  • マイクロコントローラー起動時に設定する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検索と書き込み

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
  • FLYホストコンピュータ用検索コマンド
    python3 ~/klipper/scripts/canbus_query.py can0

検索結果の説明

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

  • 表示内容:1つのCAN IDが表示され、Application: Klipper と表示されます。
  • 説明:デバイスはKlipperファームウェアで動作しており、そのまま使用できます。このIDはマザーボードのIDか、ツールボードのIDである可能性があります。
  • 判別方法:ツールボードのCAN接続線を外して再度検索します。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...