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ログインとユーザー切り替え
SSHで上位機にログイン
SSHツール(MobaXterm、PuTTYなど)を使用して、ネットワーク経由で上位機にログインします: SSH接続の詳細チュートリアルを表示
システムタイプに応じたユーザー切り替え
- 通常の上位機(Armbian)
- FLY上位機
適用システム:
- ラズベリーパイ公式システム
- Klipperがインストール済みのその他のシステム
ユーザー権限要件:
rootユーザーでの操作は一切禁止- 一般ユーザーに切り替えて操作する必要があります
切り替えコマンド:
-
その他のシステム(
<username>を自身のユーザー名に置き換えてください)su <username>
一般ユーザーは通常、必要なコンパイル権限を持っています。rootユーザーを使用すると権限の問題が発生する可能性があります。
適用システム:
- FlyOS-FASTシステム
ログイン情報:
- ユーザー名:
root - パスワード:
mellow
FASTシステムにはrootユーザーのみが存在します。
ファームウェアコンパイル説明
1. キーボード操作ガイド
- Klipperファームウェア設定ページでは、以下のショートカットキーのみ使用できます。
- マウスでの直接操作はできません!
| キー | 機能説明 |
|---|---|
| ↑ ↓ 方向キー | 上下にカーソルを移動してメニュー項目を選択 |
| Enter または Space | 選択/チェックボックスの確認 または サブメニューへ移動 |
| ESC | 前のメニューに戻る |
| Q | Klipperファームウェア設定ページを終了 |
| Y | 終了時に確認メッセージが表示されたら、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はファームウェアをコンパイルします。実行後、以下の画面が表示されるはずです。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 pins to set at micro-controller startupを選択し、入力してください:
!gpio5手記英語入力モードで入力してください
!gpio5Loading...- 上図と照らし合わせて確認し、上図と一致していることを確認してから、次のステップに進んでください
Qキーを押すと、Save configurationが表示されます。この状態でYキーを押してください。
- これで設定が保存され、コマンドラインインターフェースに戻るはずです。
- 以下のコマンドを入力してコンパイルを開始してください。時間がかかります。
make -j4
- 最後に以下の内容が出力されれば、コンパイルは成功です。
- Klipperのバージョンによっては、
out/klipper.binが表示されれば成功を意味します。Linking out/klipper.elf
Creating bin file out/klipper.bin
IDの検索と書き込み
デバイスの検索
- 上位機に正常にログイン済みの場合、
lsusbを入力してデバイスを検索できます。以下のいずれかの状況が発生する可能性があります。lsusbを入力した際にlsコマンドが見つからないというメッセージが表示される場合、以下のコマンドでコマンドをインストールできます。sudo apt-get install usbutilslsusbを入力しても何の反応もない場合、これはシステムの問題です。こちらでは対応できませんので、システムを変更するか、正常なシステムを使用してください。- 以下の画像のような情報が表示されます。ただし参考情報であり、
1d50:606fが表示されていることを確認すれば問題ありません。Loading...
1d50:606fは今回使用するデバイスです。- 複数の
1d50:606fが表示される場合、片方を除外する必要があります。そうでないと今後のファームウェア書き込みや接続に影響が出ます。例えばFLY MINI PADの場合、他のCANブリッジではなく、基板に搭載されているUTOCを使用することをおすすめします。 - 表示されない場合は、自分でケーブルがしっかり接続されているか、ファームウェアが正しく書き込まれているかを確認してください。
1d50:606fが表示されている場合のみ、CAN IDの検索を行ってください。
CANBus UUIDの照会
- 印刷中ではない状態でID照会およびファームウェア書き込み操作を実行することを推奨します。印刷プロセスへの干渉を避けるためです。
- 同一のメインボード/ツールボードにおいて、Katapult(CANBoot)ファームウェアとKlipperファームウェアは同じCAN IDを使用します。
以下の条件を満たしていることを確認してください。満たしていない場合、CAN IDが正常に検索できない可能性があります:
- ホストコンピュータのCANネットワークが正しく設定されていること
- ツールボードのCAN通信速度がホストコンピュータと完全に一致していること(速度が異なると通信できません)
lsusbコマンドを実行した際に1d50:606fデバイス(USB-CANアダプター)が表示されること
検索コマンド(システムに応じて選択)
- 通常のホストコンピュータ
- Fly-FASTシステム
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
python ~/klipper/scripts/canbus_query.py can0
検索結果の説明
ケース1: Klipperファームウェアが書き込まれたメインボード/ツールボード
- 表示内容: 1つのCAN IDが表示され、
Application: Klipperと表示されます。 - 説明: デバイスはKlipperファームウェアを実行しており、そのまま使用できます。このIDはメインボードのIDである可能性も、ツールボードのIDである可能性もあります。
- 識別方法: ツールボードのCAN接続ケーブルを外してから再度検索します。該当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...