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

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

書き込み開始

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

注意事項

  • ネットワーク: 上位機(ラズベリーパイ等)がネットワークに接続されていることを確認してください
  • ログイン方法: 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...
  • マイクロコントローラ起動時に設定するGPIOピンを選択します。入力:gpio17
    Loading...
  • Qキーを押すと、Save configurationが表示されます。その状態でYキーを押してください。
    Loading...
  • これで設定が保存され、コマンドラインインターフェースに戻るはずです。
  • 以下のコマンドを入力してコンパイルを開始してください。時間がかかります。
make -j4
Loading...
  • 最後に以下の内容が出力されれば、コンパイルは成功です。
  • Klipperのバージョンによっては、out/klipper.binが表示されれば成功です。
    Linking out/klipper.elf
    Creating bin file out/klipper.bin

配線

  • ファームウェア書き込み前に、XT30データケーブルを使用してツールボードをUTOCまたはブリッジファームウェアが書き込まれたメインボードに接続してください。以下は参考配線図です。
    Loading...
  • CAN HとCAN Lの間の抵抗値を、電源OFF状態でテスターで測定し、約60Ωであることを確認してください。120Ωの場合は120Ωジャンパーを接続し、約40Ωの場合はジャンパーを取り外してください。
    Loading...
  • XT30データケーブルでツールボードをUTORまたはUSBブリッジCANファームウェアが書き込まれたメインボードに接続すると、メインボード上のLEDが点滅します。
警告
  • LEDが点滅しない場合は、katapultファームウェアを再書き込みしてください:katapultファームウェア書き込み
  • LEDが点滅しない場合は、katapultファームウェア書き込み後、次のステップを実行してください。

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ファームウェアが書き込まれたメインボード/ツールボード

  • 表示内容: 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...