CAN ファームウェアのコンパイル
コンパイルの開始
klipper
サービスがインストールされている上位機が必要です ネットワーク経由でSSHに接続- デバイスと上位機を接続します
- 注意:普通の上位機を使用してください。例えば、ラズベリーパイ、FLYパイなどです。もし魔改上位機(例えばWiFiスティック、Redmiなど)を使用すると、このような上位機は問題が多すぎて、技術サポートを提供できません
ROOT
ユーザーを使用しないでください
- ユーザー切り替えコマンド
su fly
- 请确保上位机可以正常联网
- 固件编译前需要使用SSH通过网络登录上位机
- 请不要使用串口工具登录上位机
Klipper固件编译和配置页面操作说明
请确保键盘输入法为半角模式,即英文模式
- 键盘上键
↑
,下键↓
,用于上下移动光标来选中菜单项 - 确认键
Enter
或 空格键Space
,用于勾选菜单或进入子菜单 - 退出键
ESC
,用于返回上一级菜单 Q
键,用于退出Klipper固件配置页面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を選びます。
-
GPIOピンの設定を選択するには、マイクロコントローラの起動時に「!gpio20」と入力します。注意:!は大文字です
-
Q
キーを押すと Save configuration が表示されるので、その時にY
キーを押します -
これで設定が保存され、コマンドラインプロンプトに戻ったはずです
-
make -j4
を入力してコンパイルを開始します。時間がかかる場合があります -
最後に以下の内容が出力されたらコンパイル成功です
Linking out/klipper.elf
Creating hex file out/klipper.bin
デバイスの検索
- 上位機が正常にネットワークに接続できることを確認し、下位機が上位機に接続するデータケーブルがデータ伝送機能を有していることを確認してください。
- SSH接続で上位機に接続した後、
lsusb
と入力してエンターキーを押します。下の画像で囲まれた情報が表示されたら、次のステップに進めます。- 何の情報もフィードバックされない場合は、上位機のシステムの問題です。こちらではどうすることもできません。正常なシステムに変更するか、上位機を交換する必要があります。
lsusb
コマンドがないというメッセージが表示された場合は、次のコマンドを実行してインストールできますsudo apt-get install usbutils
1d50:6177
は今回使用するデバイスに属します。OpenMoko, Inc. stm32f407xx
の接尾語はある程度参考価値がありますが、判断根拠とはなりません。- 一部の上位機はシステムの問題で、表示が不完全または表示されない可能性があります。
lsusb
コマンドを入力してデバイスが表示されるが、1d50:6177
がない場合は、データケーブルを交換したり、マザーボードを上位機の他のUSBポートに接続してみてください。
- もしあなたがこれまでに上記のステップを実行し、Klipperファームウェアの書き込みに成功し、マザーボードが正常に動作しており、ただKlipperファームウェアを更新する場合は、このページの右側のメニューバーの「ファームウェア更新」セクションを直接参照してください。
1d50:6177
がある場合にのみ次のステップに進めることができます。
ファームウェアの書き込み
- ファームウェアの書き込み前に、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速度が正しくないか、配線に異常がある場合です
- 第一種:ブリッジファームウェアを刷ったマザーボードで、IDが1つ表示され、
-
通常、ファームウェアを焼き付ける必要があるツールボードが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が点灯します
