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はKlipperファームウェア設定画面を開くために使用します。 -
以下の順序に従って各項目を設定し、各項目が完了してから次の項目に進みます。
1启用 Enable extra low-level configuration options(Top)Klipper Firmware Configuration2Micro-controller Architecture 选择 Raspberry Pi RP2040/RP235x(Top)Klipper Firmware Configuration3Processor model 选择 rp2040(Top)Klipper Firmware Configuration4Bootloader offset 选择 16KiB bootloader(Top)Klipper Firmware Configuration5Communication Interface 选择 CAN bus(Top)Klipper Firmware Configuration6CAN RX gpio number 设置为 1(Top)Klipper Firmware Configuration7CAN TX gpio number 设置为 0(Top)Klipper Firmware Configuration8CAN bus speed 设置为 1000000(Top)Klipper Firmware Configuration9启用 Optimize stepper code for 'step on both edges'(Top)Klipper Firmware Configuration10GPIO pins to set at micro-controller startup 设置为 !gpio5(Top)Klipper Firmware Configuration11GPIO state at micro-controller startup 选择 Not set此项是 FLYOS-Klipper 功能。通常保持
Not set;如需设置全部 GPIO 的启动状态,请先阅读 GPIO 启动状态使用说明。(Top)Klipper Firmware Configuration12按 Q 键退出配置界面(Top)Klipper Firmware Configuration13出现 Save configuration 时按 Y 保存配置QuitSave configuration?(Y)es(N)o(C)ancel -
上記の最後の2つの手順を完了したら、
Qを押して設定画面を終了し、次にYを押して設定を保存します。 -
コマンドラインに戻ったら、以下のコマンドを入力して
Enterを押し、コンパイルを開始します:make -j4root@flyos-11e5f8 ~/klipper # make -j4Compiling out/src/../lib/can2040/can2040.oCompiling out/src/generic/canserial.oCompiling out/src/generic/canbus.oCompiling out/src/../lib/fast-hash/fasthash.oCompiling out/src/rp2040/hard_pwm.oCompiling out/src/rp2040/spi.oCompiling out/src/rp2040/i2c.oPreprocessing out/src/rp2040/rpxxxx_link.ldBuilding out/compile_time_request.oVersion: XXXXLinking out/klipper.elfCreating bin file out/klipper.bin终端末尾出现
Linking out/klipper.elf和Creating bin file out/klipper.bin,即表示编译成功。 实际编译时,部分 Compiling 行和 Version 会随 Klipper 与系统版本变化。
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ファームウェアが書き込まれているマザーボード/ツールボード
- 表示例:CAN IDが1つ表示され、
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パラメータの後にはスペースが必要です
-
FlyOS-FAST 1.3.8 以上 または 2026年4月9日以降にKlipperを更新したシステムでは、新しいコマンドを使用してください:
python3 ~/klipper/lib/katapult/flashtool.py -u 241696050c56 -
旧バージョンシステム(FAST 1.3.8未満 または 2026年4月9日以前にKlipperを更新していない場合)では、旧コマンドを使用してください:
python3 ~/klipper/lib/canboot/flash_can.py -u 241696050c56
書き込み成功の確認
CAN Flash Success というメッセージが表示されれば、書き込み成功です:
ファームウェア更新
更新方法
ファームウェアを更新する必要がある場合は、以下の手順を実行します:
- ファームウェアを再コンパイルする
- デバイスのCAN IDが照会できること(またはKlipperがデバイスに接続していること)を確認する
- 同じ書き込みコマンドを実行する
-
FlyOS-FAST 1.3.8 以上 または 2026年4月9日以降にKlipperを更新したシステム:
python3 ~/klipper/lib/katapult/flashtool.py -u <MCU ID> -
旧バージョンシステム(FAST 1.3.8未満 または 2026年4月9日以前にKlipperを更新していない場合):
python3 ~/klipper/lib/canboot/flash_can.py -u <MCU ID>
更新成功例
ファームウェアが起動したか確認
- ファームウェアが正常に起動すると、LED が点灯します
Loading...