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... -
(4) CAN RX gpio numberを選択し、4を削除して1を入力します -
(5) CAN TX gpio numberを選択し、5を削除して0を入力しますLoading...
- マイクロコントローラ起動時に設定するGPIOピンを選択します。入力:gpio17
Loading...
Qキーを押すと、Save configurationが表示されます。次にYキーを押します
- これで設定が保存され、コマンドラインインターフェースに戻るはずです
- 以下のコマンドを入力してコンパイルを開始します。時間がかかります
make -j4
- 最後に以下の内容が出力されれば、コンパイルは成功です
- Klipperのバージョンによっては、
out/klipper.binが表示されれば成功ですLinking out/klipper.elf
Creating bin file out/klipper.bin
配線の確認
-
ファームウェア書き込み前に、XT30データケーブルを使用してツールボードをUTOCまたはブリッジファームウェアが書き込まれたメインボードに接続します。以下は参考配線図です。
-
ディップスイッチが適切な位置にあることを確認してください。
Loading... -
電源を切った状態で、CAN HとCAN L間の抵抗値をテスターで測定し、約
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が正常に検索できない可能性があります:
- ホストコンピュータのCANネットワークが正しく設定されている
- ツールボードのCAN速度がホストコンピュータと完全に一致している(速度が一致しないと通信できません)
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が消えた場合はツールボードのIDです。そのIDがまだ表示される場合はメインボードのIDです。
ケース2: メインボード + 書き込み待ちツールボード
- 表示内容: 2つのCAN IDが表示されます。
- 説明: メインボードはKlipperファームウェアを実行しており、ツールボードはCanBootファームウェアを実行しており、書き込みを待っています。
ケース3: UTOC + 書き込み待ちツールボード
- 表示内容: UTOC自体はIDを表示せず、ツールボードのIDのみを表示します。
- 説明: UTOCはブリッジとしてのみ機能します。ツールボードがCanBootモードであることを確認してください。
ケース4: IDが表示されない
- 表示内容: 何のIDも表示されません。
- 考えられる原因:
- CANバスがKlipperによって占有されている
- ホストコンピュータのCAN0速度設定が間違っている
- 物理的な配線に異常がある
- デバイスがCanBootモードに入っていない
- 書き込み待機状態: ツールボードがCanBootモードにある場合、
Application: CanBootと表示され、ファームウェアLEDが点滅します。この状態でファームウェア書き込みが可能です。 - ID占有の処理: デバイスがKlipperファームウェアを実行しており、そのIDが設定ファイルに既に記入されている場合、そのIDは表示されません(Klipperによって占有されています)。再度表示させる必要がある場合は、設定ファイルでそのIDを無効にし、完全に電源を切り、再起動してください。
UUIDをクエリできない場合は、以下を参照してください: CAN問題トラブルシューティングガイド
ファームウェア書き込み
書き込みコマンド
- 以下のコマンドの
241696050c56を、実際にクエリされたUUIDに置き換えてください。 - 注意:
-uパラメータの後にはスペースが必要です。
python3 ~/klipper/lib/canboot/flash_can.py -u 241696050c56
書き込み成功の確認
CAN Flash Success というメッセージが表示されれば、書き込み成功です:
ファームウェア更新
更新方法
ファームウェアを更新する必要がある場合は、以下の手順を実行します:
- ファームウェアを再コンパイルする
- デバイスのCAN IDがクエリできること(またはKlipperがデバイスに接続されていること)を確認する
- 同じ書き込みコマンドを実行する
python3 ~/klipper/lib/canboot/flash_can.py -u <MCU ID>
更新成功例
ファームウェア起動の確認
- ファームウェアが正常に起動すると、LEDが点灯します。
Loading...