メインコンテンツにスキップ

103版CANファームウェアのコンパイル

コンパイル開始

ファームウェアコンパイル簡易ガイド

注意事項

  • ネットワーク: 上位機(ラズベリーパイなど)がネットワークに接続されていることを確認してください
  • ログイン方法: SSH を使用してネットワーク経由でログインする必要があります。シリアルポートは無効にしてください
  • 入力方式: キーボードは英数字半角モードに保ってください

SSHログインとユーザー切り替え

MobaXterm、PuTTY などのツールを使用して上位機にSSHログインします。

ユーザー切り替え:

  • 通常システム(ラズベリーパイ公式システムなど)
    root の使用は禁止されており、通常ユーザーに切り替える必要があります:
    su <ユーザー名>
  • FLY上位機(FlyOS-FASTシステム)
    root ユーザーでのログインのみサポート(パスワード:mellow

ファームウェアコンパイル操作ガイド

Klipper ファームウェア設定画面ではキーボード操作のみサポートされており、マウスは使用できません。

キー機能
↑ / ↓上下にカーソルを移動し、メニュー項目を選択
Enter / スペース選択の確定、オプションのチェック、またはサブメニューに入る
ESC前のメニューに戻る
Q設定画面を終了
Y終了時にプロンプトが表示されたら Y を押して設定を保存

ファームウェアコンパイルの開始

以下にファームウェアのコンパイル方法を説明します:

  1. 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ファームウェア設定画面を開くために使用します。

  2. 以下の順序に従って各項目を設定し、各項目が完了してから次の項目に進みます。

    1启用 Enable extra low-level configuration options
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (STMicroelectronics STM32) --->
    Processor model (STM32F103) --->
    [ ] Only 10KiB of RAM (for rare stm32f103x6 variant)
    [ ] Disable SWD at startup (for GigaDevice stm32f103 clones)
    Bootloader offset (8KiB bootloader) --->
    Clock Reference (8 MHz crystal) --->
    Communication interface (CAN bus (on PB8/PB9)) --->
    (1000000) CAN bus speed
    [*] Optimize stepper code for 'step on both edges'
    (!PC13) GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    2Micro-controller Architecture 选择 STMicroelectronics STM32
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (STMicroelectronics STM32) --->
    Processor model (STM32F103) --->
    [ ] Only 10KiB of RAM (for rare stm32f103x6 variant)
    [ ] Disable SWD at startup (for GigaDevice stm32f103 clones)
    Bootloader offset (8KiB bootloader) --->
    Clock Reference (8 MHz crystal) --->
    Communication interface (CAN bus (on PB8/PB9)) --->
    (1000000) CAN bus speed
    [*] Optimize stepper code for 'step on both edges'
    (!PC13) GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    3Processor model 选择 STM32F103
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (STMicroelectronics STM32) --->
    Processor model (STM32F103) --->
    [ ] Only 10KiB of RAM (for rare stm32f103x6 variant)
    [ ] Disable SWD at startup (for GigaDevice stm32f103 clones)
    Bootloader offset (8KiB bootloader) --->
    Clock Reference (8 MHz crystal) --->
    Communication interface (CAN bus (on PB8/PB9)) --->
    (1000000) CAN bus speed
    [*] Optimize stepper code for 'step on both edges'
    (!PC13) GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    4关闭 Only 10KiB of RAM (for rare stm32f103x6 variant)
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (STMicroelectronics STM32) --->
    Processor model (STM32F103) --->
    [ ] Only 10KiB of RAM (for rare stm32f103x6 variant)
    [ ] Disable SWD at startup (for GigaDevice stm32f103 clones)
    Bootloader offset (8KiB bootloader) --->
    Clock Reference (8 MHz crystal) --->
    Communication interface (CAN bus (on PB8/PB9)) --->
    (1000000) CAN bus speed
    [*] Optimize stepper code for 'step on both edges'
    (!PC13) GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    5关闭 Disable SWD at startup (for GigaDevice stm32f103 clones)
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (STMicroelectronics STM32) --->
    Processor model (STM32F103) --->
    [ ] Only 10KiB of RAM (for rare stm32f103x6 variant)
    [ ] Disable SWD at startup (for GigaDevice stm32f103 clones)
    Bootloader offset (8KiB bootloader) --->
    Clock Reference (8 MHz crystal) --->
    Communication interface (CAN bus (on PB8/PB9)) --->
    (1000000) CAN bus speed
    [*] Optimize stepper code for 'step on both edges'
    (!PC13) GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    6Bootloader offset 选择 8KiB bootloader
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (STMicroelectronics STM32) --->
    Processor model (STM32F103) --->
    [ ] Only 10KiB of RAM (for rare stm32f103x6 variant)
    [ ] Disable SWD at startup (for GigaDevice stm32f103 clones)
    Bootloader offset (8KiB bootloader) --->
    Clock Reference (8 MHz crystal) --->
    Communication interface (CAN bus (on PB8/PB9)) --->
    (1000000) CAN bus speed
    [*] Optimize stepper code for 'step on both edges'
    (!PC13) GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    7Clock Reference 选择 8 MHz crystal
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (STMicroelectronics STM32) --->
    Processor model (STM32F103) --->
    [ ] Only 10KiB of RAM (for rare stm32f103x6 variant)
    [ ] Disable SWD at startup (for GigaDevice stm32f103 clones)
    Bootloader offset (8KiB bootloader) --->
    Clock Reference (8 MHz crystal) --->
    Communication interface (CAN bus (on PB8/PB9)) --->
    (1000000) CAN bus speed
    [*] Optimize stepper code for 'step on both edges'
    (!PC13) GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    8Communication interface 选择 CAN bus (on PB8/PB9)
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (STMicroelectronics STM32) --->
    Processor model (STM32F103) --->
    [ ] Only 10KiB of RAM (for rare stm32f103x6 variant)
    [ ] Disable SWD at startup (for GigaDevice stm32f103 clones)
    Bootloader offset (8KiB bootloader) --->
    Clock Reference (8 MHz crystal) --->
    Communication interface (CAN bus (on PB8/PB9)) --->
    (1000000) CAN bus speed
    [*] Optimize stepper code for 'step on both edges'
    (!PC13) GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    9CAN bus speed 设置为 1000000
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (STMicroelectronics STM32) --->
    Processor model (STM32F103) --->
    [ ] Only 10KiB of RAM (for rare stm32f103x6 variant)
    [ ] Disable SWD at startup (for GigaDevice stm32f103 clones)
    Bootloader offset (8KiB bootloader) --->
    Clock Reference (8 MHz crystal) --->
    Communication interface (CAN bus (on PB8/PB9)) --->
    (1000000) CAN bus speed
    [*] Optimize stepper code for 'step on both edges'
    (!PC13) GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    10启用 Optimize stepper code for 'step on both edges'
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (STMicroelectronics STM32) --->
    Processor model (STM32F103) --->
    [ ] Only 10KiB of RAM (for rare stm32f103x6 variant)
    [ ] Disable SWD at startup (for GigaDevice stm32f103 clones)
    Bootloader offset (8KiB bootloader) --->
    Clock Reference (8 MHz crystal) --->
    Communication interface (CAN bus (on PB8/PB9)) --->
    (1000000) CAN bus speed
    [*] Optimize stepper code for 'step on both edges'
    (!PC13) GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    11GPIO pins to set at micro-controller startup 设置为 !PC13
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (STMicroelectronics STM32) --->
    Processor model (STM32F103) --->
    [ ] Only 10KiB of RAM (for rare stm32f103x6 variant)
    [ ] Disable SWD at startup (for GigaDevice stm32f103 clones)
    Bootloader offset (8KiB bootloader) --->
    Clock Reference (8 MHz crystal) --->
    Communication interface (CAN bus (on PB8/PB9)) --->
    (1000000) CAN bus speed
    [*] Optimize stepper code for 'step on both edges'
    (!PC13) GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    12GPIO state at micro-controller startup 选择 Not set

    此项是 FLYOS-Klipper 功能。通常保持 Not set;如需设置全部 GPIO 的启动状态,请先阅读 GPIO 启动状态使用说明

    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (STMicroelectronics STM32) --->
    Processor model (STM32F103) --->
    [ ] Only 10KiB of RAM (for rare stm32f103x6 variant)
    [ ] Disable SWD at startup (for GigaDevice stm32f103 clones)
    Bootloader offset (8KiB bootloader) --->
    Clock Reference (8 MHz crystal) --->
    Communication interface (CAN bus (on PB8/PB9)) --->
    (1000000) CAN bus speed
    [*] Optimize stepper code for 'step on both edges'
    (!PC13) GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    13Q 键退出配置界面
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (STMicroelectronics STM32) --->
    Processor model (STM32F103) --->
    [ ] Only 10KiB of RAM (for rare stm32f103x6 variant)
    [ ] Disable SWD at startup (for GigaDevice stm32f103 clones)
    Bootloader offset (8KiB bootloader) --->
    Clock Reference (8 MHz crystal) --->
    Communication interface (CAN bus (on PB8/PB9)) --->
    (1000000) CAN bus speed
    [*] Optimize stepper code for 'step on both edges'
    (!PC13) GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    14出现 Save configuration 时按 Y 保存配置
    Quit
    Save configuration?
    (Y)es(N)o(C)ancel
  3. 上記の最後の2つの手順を完了したら、Q を押して設定画面を終了し、次に Y を押して設定を保存します。

  4. コマンドラインに戻ったら、以下のコマンドを入力して Enter を押し、コンパイルを開始します:

    make -j4
    root@flyos-11e5f8 ~/klipper # make -j4
    Compiling out/src/stm32/i2c.o
    Compiling out/src/generic/canserial.o
    Compiling out/src/../lib/fast-hash/fasthash.o
    Compiling out/src/stm32/can.o
    Compiling out/src/generic/canbus.o
    Compiling out/src/stm32/chipid.o
    Compiling out/src/stm32/hard_pwm.o
    Preprocessing out/src/generic/armcm_link.ld
    Building out/compile_time_request.o
    Version: XXXX
    Linking out/klipper.elf
    Creating bin file out/klipper.bin

    终端末尾出现 Linking out/klipper.elf Creating bin file out/klipper.bin,即表示编译成功。 实际编译时,部分 Compiling 行和 Version 会随 Klipper 与系统版本变化。

配線

  • ファームウェアを書き込む前に、XT30データケーブルを使用してツールボードをUTOCまたはブリッジファームウェアが書き込まれたマザーボードに接続します。以下は参考配線図です。
  • ディップスイッチが対応する位置に設定されているか確認してください。
    Loading...
  • 電源を切った状態で、マルチメーターを使用してCAN HとCAN L間の抵抗値を測定し、60Ω前後であることを確認してください。120Ωの場合は120Ωジャンパーを接続し、40Ω前後の場合はジャンパーを取り外す必要があります。
    Loading...

IDの検索と書き込み

CANBus UUIDの照会

操作前の注意事項
  • 非印刷状態でID照会とファームウェア書き込みを実行することを推奨します。印刷プロセスへの干渉を避けるためです。
  • 同一マザーボード/ツールボードのKatapult(CANBoot)ファームウェアとKlipperファームウェアは同じCAN IDを使用します。
前提条件

以下の条件を満たしていることを確認してください。満たしていない場合、CAN IDを正常に検出できない可能性があります:

  1. 上位機のCANネットワークが正しく設定されていること
  2. ツールボードのCANレートが上位機と完全に一致していること(レートが一致しないと通信できません)
  3. 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です。
Loading...

ケース2:マザーボード + 書き込み待ちツールボード

  • 表示例:2つのCAN IDが表示される
  • 説明:マザーボードはKlipperファームウェアで動作し、ツールボードはCanBootファームウェアで動作しており、書き込み待ちです。
Loading...

ケース3:UTOC + 書き込み待ちツールボード

  • 表示例:UTOC自体はIDを表示せず、ツールボードのIDのみが表示される
  • 説明:UTOCはブリッジとしてのみ機能し、ツールボードがCanBootモードであることを確認する必要があります。
Loading...

ケース4:IDが表示されない

  • 表示例:IDが何も表示されない
  • 考えられる原因:
    1. CANバスがKlipperに占有されている
    2. 上位機のCAN0レート設定が誤っている
    3. 物理的な配線に異常がある
    4. デバイスがCanBootモードになっていない
Loading...

重要なお知らせ
  • 書き込み待ち状態:ツールボードがCanBootモードの場合、Application: CanBoot と表示され、ファームウェアLEDが点滅します。この状態でファームウェアの書き込みが可能です。
  • ID占有処理:デバイスがKlipperファームウェアで動作しており、IDが設定ファイルに記入されている場合、そのIDは表示されません(Klipperに占有されているため)。再度表示させるには、設定ファイルでそのIDを無効化し、完全に電源を切って再起動する必要があります。
トラブルシューティング

UUIDを照会できない場合は、以下を参照してください: CAN問題解決ガイド

ファームウェア書き込み

書き込みコマンド

  1. 以下のコマンド内の 241696050c56 を実際に照会したUUIDに置き換えてください
  2. 注意:-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 というメッセージが表示されれば、書き込み成功です:

Loading...

ファームウェア更新

更新方法

ファームウェアを更新する必要がある場合は、以下の手順を実行します:

  1. ファームウェアを再コンパイルする
  2. デバイスのCAN IDが照会できること(またはKlipperがデバイスに接続していること)を確認する
  3. 同じ書き込みコマンドを実行する
バージョン説明
  • 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>

更新成功例

Loading...

ファームウェアが起動したかどうかの確認

  • ファームウェアが正常に起動するとLEDが点灯します。
    Loading...

書き込みモードへのリセット方法

Loading...
Loading...