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

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

コンパイルの開始

  • klipperサービスがインストールされている上位機が必要です ネットワーク経由でSSHに接続
  • デバイスと上位機を接続します
  • 注意:普通の上位機を使用してください。例えば、ラズベリーパイ、FLYパイなどです。もし魔改上位機(例えばWiFiスティック、Redmiなど)を使用すると、このような上位機は問題が多すぎて、技術サポートを提供できません
注意事項
  • ROOTユーザーを使用しないでください
  • ユーザー切り替えコマンド
 su fly
ヒント
  • 请确保上位机可以正常联网
  • 固件编译前需要使用SSH通过网络登录上位机
  • 请不要使用串口工具登录上位机

Klipper固件编译和配置页面操作说明

ヒント

请确保键盘输入法为半角模式,即英文模式

  1. 键盘上键,下键,用于上下移动光标来选中菜单项
  2. 确认键Enter 或 空格键Space,用于勾选菜单或进入子菜单
  3. 退出键ESC,用于返回上一级菜单
  4. Q键,用于退出Klipper固件配置页面
  5. Y键,在退出Klipper固件配置页面时,如果有提示,则点击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はファームウェアをコンパイルします。実行後、以下の画面が表示されるはずです。

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

  • メニューのMicro-controller Architectureに入り、Raspberry Pi RP2040を選択してEnterキーを押します。

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

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

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

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

  • マイクロコントローラの起動時に設定するGPIOピンを選択し、入力:!gpio5 注意!は大文字
  • Qキーを押して、Save configurationが表示されたら、再度Yキーを押します
  • これで設定が保存され、コマンドラインプロンプトに戻ります
  • make -j4を入力してコンパイルを開始します、時間が少しかかるかもしれません
  • 最後に以下の内容が出力されればコンパイル成功です

    Linking out/klipper.elf
    Creating hex file out/klipper.bin

デバイスの検索

  • 上位機が正常にネットワークに接続されていることを確認してください

  • 下位機と上位機のデータ線がデータ転送機能を持つことを確認してください

  • SSH接続で上位機に接続後、lsusbを入力してEnterキーを押すと、以下の3つの状況が発生する可能性があります

    • 認識されたUSBデバイスが表示されます
    • lsコマンドがない場合、このコマンドを実行してインストールできます
      sudo apt-get install usbutils
    • エラーは表示されず、他の情報もありません(システムの問題で、システムの交換が必要です)
  • lsusbを入力しても何も反応がない場合、これはシステムの問題で私たちはどうすることもできません。正常に動作するシステムに交換する必要があります

  • 以下の画像で囲まれた情報が表示された場合、次のステップに進むことができます

  • 1d50:606f は今回使用するデバイスです。後の指示は気にしないでください。システムの問題が原因で、表示されないか、完全に表示されない可能性があります

  • 2つの1d50:606fがある場合、なぜ2つあるのかを確認し、そのうち1つを除外してからシステムを再起動する必要があります

  • 2つの1d50:606fがあると、後続の書き込みとファームウェア接続に影響を与えます。例えば、FLY MINI PADの場合は、他のCANブリッジデバイスを使用せず、内蔵UTOCのみを使用することをお勧めします

  • 1d50:606fがない場合は、データ線が正しく接続されているか、ファームウェアが正しく書き込まれているかを確認してください

    注意事項

    1d50:606fがある場合にのみ次のステップに進むことができます

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

  • ファームウェアを書き込む前に、XT30データケーブルを使用してツールボードをUTOCまたはブリッジファームウェアを書き込んだメインボードに接続します。以下は参考になる配線図です
  • ディップスイッチが正しい位置に設定されているかどうかを確認してください
  • CAN HとCAN Lが断電状態でマルチメーターで測定した場合、抵抗値が約60Ωであることを確認してください。120Ωであれば120Ωのディップスイッチをオンに、40Ω前後であればディップスイッチをオフにしてください
ヒント
  • 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
    • 入力後、以下のような状況が発生します:

      • 第一種:ブリッジファームウェアを刷ったマザーボードで、IDが1つ表示され、Application: Klipperと示される
      • 第二種:ブリッジファームウェアを刷ったマザーボードにファームウェアが必要なツールボードを組み合わせ、2つのIDが表示される
      • 第三種:UTOCを使ってファームウェアが必要なツールボードを組み合わせる
      • 注意:UTOCにはIDが表示されません
      • 第四種:IDが表示されない場合、通常はKlipperによって占有されているか、ホストマシンのCAN0速度が正しくないか、配線に異常がある場合です
    • 通常、ファームウェアを焼き付ける必要があるツールボードがCANBOOT状態にある場合、Application: CanBootと表示され、対応するファームウェアのLEDが点滅します。このとき、Klipperファームウェアを焼き付ける必要があります。そうしないと接続できません!!!

    • 注意:KlipperファームウェアでIDを設定ファイルに記入した場合、IDは表示されずKlipperによって占有されます。IDを遮断し、完全に電源を切って再起動する必要があります。

    手記
    • UUIDが見つからない場合、以下のドキュメントを参照してください
    • CAN問題集
  • ファームウェアの焼き付け

    • 以下のコマンドの241696050c56をUUID検索で見つけた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が点灯します