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

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

コンパイル開始

  • klipperサービスがインストールされた上位機を使用する必要があります ネットワーク経由でSSHに接続
  • そしてデバイスを上位機に接続してください
  • 注意:一般的な上位機を使用してください。例えば、ラズベリーパイやFLY派などです。改造された上位機(例:WiFiスティック、レッドミーなど)は問題が多いので、技術サポートを提供できません
手記
  • 下記のコマンドを入力してROOTユーザーから通常のユーザーに切り替えることができます
  • ROOTユーザーを使用しないでください
  • flyユーザーの場合、su flyと直接入力できます。flyユーザー以外の場合、<あなたの上位機のユーザーネーム>をあなたの上位機のユーザーネームに置き換えてください!
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ピンをマイクロコントローラー起動時に設定するを選択し、入力:!gpio18
手記

!gpio18を入力する際は英数入力で行ってください。

  • 上図と一致していることを確認し、問題なければ次のステップに進んでください
  • Q キーを押すと「Save configuration」が表示され、その後 Y キーを押します
  • 現在、設定が保存され、コマンドラインインターフェースに戻っているはずです
  • コンパイルを開始するには以下のコマンドを入力してください。時間がかかります
make -j4
  • 最後に以下の内容が出力されたらコンパイル成功です

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

上位機の設定

手記

上位機が FLY の場合は「上位機の設定」はスキップできます。

手記

上位機が 非FLY の場合は以下の手順を実行してください。

CANサポートの検証

  • FLY上位機 の場合、この操作は必要ありません
  • システムが Ubuntu の場合、UbuntuのCAN0設定が必要ですが、このドキュメントはまだ更新されていません
  • 下記のコマンドを入力し、システムがCANをサポートしているか確認してください
sudo modprobe can && echo "カーネルがCANをサポートしています" || echo "カーネルがCANをサポートしていません"
  • 上記のコマンドを実行すると、カーネルがCANをサポートしている場合、「カーネルがCANをサポートしています」と返ります。サポートしていない場合、「カーネルがCANをサポートしていません」と返ります。
ヒント

「カーネルがCANをサポートしています」と返ったら、次のステップのCAN0設定に進んでください。「カーネルがCANをサポートしていません」と返った場合、上位機のシステムを変更するか、上位機自体を交換してください。

CAN0の設定

  • このコマンドはシステムの既存のCAN0設定を上書きします。実行後、システムを再起動する必要があります
  • 実際の状況に応じて、以下のいずれかを選択してください (KlipperのデフォルトCAN速度は1Mであり、1M速度をお勧めします)
手記

1M速度を使用する場合、以下のコマンドを入力してください

sudo /bin/sh -c "cat > /etc/network/interfaces.d/can0" << EOF
allow-hotplug can0
iface can0 can static
bitrate 1000000
up ifconfig $IFACE txqueuelen 1024
pre-up ip link set can0 type can bitrate 1000000
pre-up ip link set can0 txqueuelen 1024
EOF
手記

500K速度を使用する場合、以下のコマンドを入力してください

sudo /bin/sh -c "cat > /etc/network/interfaces.d/can0" << EOF
allow-hotplug can0
iface can0 can static
bitrate 500000
up ifconfig $IFACE txqueuelen 1024
pre-up ip link set can0 type can bitrate 500000
pre-up ip link set can0 txqueuelen 1024
EOF
  • デバイスを再起動します
sudo reboot

書き込みモードへの確認

  • 上位機が正常にネットワークに接続されていることを確認し、下位機と接続するデータ線がデータ転送機能を持っていることを確認してください。
  • 上位機にSSH接続し、lsusb コマンドを入力してエンターキーを押します。もし下図に囲まれた情報を表示できる場合、次のステップに進んでください。
    • 何も情報が返ってこない場合、これは上位機のシステムに問題があります。対策がありませんので、正常なシステムに切り替えるか、上位機自体を交換してください。
    • lsusb コマンドがないと表示される場合、以下のコマンドを実行してインストールできます
      sudo apt-get install usbutils
  • OpenMoko, Inc. Geschwister Schneider CAN adapter というサフィックスがあるかどうかが判断基準です。
    • 部分的な上位機ではシステムの問題により、完全に表示されない場合や表示されない場合があります。

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

  • ファームウェアを書き込む前に、XT30データケーブルを使用してツールボードをUTOCまたはブリッジファームウェアが書き込まれたメインボードに接続してください。以下の接続図を参考にしてください
  • バイスの位置が正しいことを確認してください

KFインターフェースの図

XT30インターフェースの図

  • CAN H と CAN L が電源オフの状態で60Ω程度の抵抗値になることを確認してください。120Ωの場合、120Ωのジャンパーを接続し、40Ω程度の場合、ジャンパーを取り外してください

::: tip

  • IDを検索したり、ファームウェアを書き込む際は、プリント中に実行しないでください
  • 同じマザーボードまたはツールボードであるKatapultのCANファームウェアとKlipperのCANファームウェアは、IDが完全に一致します

:::

::: warning

  • 上位機器のCANネットワークが正しく構成されていることを確認してください
  • lsusbコマンド後に1d50:606fが表示される場合のみ、以下のコマンドを使用してCAN IDを検索できます
  • ツールボードのCANレートが上位機器と同じである必要があります。そうでないとIDを見つけることができず、書き込みもできません

:::

  • 下記のコマンドを実行してCANBus UUIDを照会します:

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

    fastシステムではこのコマンドを使用して焼付けを行います。<あなたのマザーボードID>を上記の照会結果に置き換えてください

    python ~/klipper/scripts/canbus_query.py can0
    • 機械に応じて以下のいずれかの状況が表示されます。以下は参考例です:

      • 第一種:ブリッジファームウェアがインストールされたマザーボードの場合、IDが一つ表示され、「Application: Klipper」というメッセージが出力されます
      • 第二種:ブリッジファームウェアがインストールされ、ツールボードが必要なファームウェアが搭載された場合、二つのIDが表示されます
      • 第三種:UTOCと必要なツールボードを使用する場合
      • ヒント:UTOCにはIDが表示されません
      • 第四種:IDの表示がない場合、一般的にはKlipperによって占有されている可能性があります。上位機器のCAN0レートが正しくないか、接続異常が発生している場合です
    • 通常、焼付けが必要なツールボードがCANBOOTモードにある場合、「Application: CanBoot」が表示され、対応するファームウェアLEDが点滅します。この場合、Klipperファームウェアを焼付けする必要があります。それ以外の場合、接続できません!!!

    • ヒント:Klipperファームウェアがすでに設定ファイルにIDが入力されている場合、IDは表示されなくなり、Klipperによって占有されます。この場合、対応するIDを無効化し、マザーボードを完全に電源オフして再起動する必要があります。

::: warning

  • 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が点灯します
- 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 -