CAN ファームウェアのコンパイル
書き込み前の注意事項
現在のモードと操作パスの確認
- 重要事項: ツールボードが既に Klipper-CAN モード の場合、ファームウェアをコンパイルした後、コマンドで直接書き込むことができます。コマンドにより自動的に
Katapultモードにリセットされ、書き込みが完了します。 - 出荷状態: ボードには CAN モード の
Katapultファームウェアがプリインストールされており、レートは 1M です。 - 状態確認(LEDで判断): ボード上の LED が点滅 している場合(下図参照)、
Katapultモードであり、書き込みが可能です。Loading... - モード異常: LED が 点滅していない 場合、ファームウェアは
Katapultではありません。以下のリンクの指示に従って再書き込みする必要があります: ここをクリックして Katapult ファームウェアを書き込む
ディップスイッチの設定と物理接続
-
ディップスイッチの設定: 現在の状態に関わらず、まずボード上のディップスイッチを CAN モード に設定し、
120Ωスイッチをオンにします(下図参照)。Loading... -
デバイスの接続: CAN ケーブルを使用して、ツールボードを UTOC またはブリッジファームウェアが書き込まれた メインボード に接続します。配線は以下の図を参照してください:
Loading... -
重要な確認(終端抵抗): 完全に電源を切った 状態で、マルチメーターを使用して CAN_H と CAN_L ピン間の抵抗を測定します。
デバイス 操作説明 ツールボード 120Ωと表示されたジャンパーキャップを見つけて差し込みます。メインボード メインボードに接続する場合は、同様に 120Ωジャンパーキャップを差し込みます。UTOC モジュール 抵抗は内蔵されています。 確認方法:
- 完全に電源を切った 状態を維持します。
- マルチメーターを使用して、ツールボードのCANポートの CAN-HとCAN-L 間の抵抗を測定します。
- 結果の判断:
- 約60Ω: 正常、両端の抵抗が正しく接続されています。
- 約140Ω: CAN-HとCAN-Lが逆に接続されている可能性があります。
- 約120Ω:
120Ωが取り付けられていないか、断線しています。 - 約40Ω: 余分な抵抗がある可能性があります。中間ノードを確認してください。
コンパイル開始
ファームウェアコンパイル簡易ガイド
注意事項
- ネットワーク: 上位機(ラズベリーパイなど)がネットワークに接続されていることを確認してください
- ログイン方法: 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ピンを選択し、以下を入力:
!gpio5
英語入力モードで入力してください。
!gpio5
- 上の図と照らし合わせて、一致していることを確認してから次の手順に進んでください
Qキーを押すと、Save configuration が表示されたらYキーを押します
- これで設定が保存され、コマンドラインインターフェースに戻るはずです
- 以下のコマンドを入力してコンパイルを開始します。少し時間がかかります
make -j4
- 最後に以下の内容が出力されればコンパイル成功です
- Klipperのバージョンによって、
out/klipper.binが表示されれば成功を意味しますLinking out/klipper.elfCreating bin file out/klipper.bin
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が消えればツールボード、消えなければマザーボードです。
ケース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...