【CNC xPRO v5】FluidNC更新まとめ

CNC xPRO v5のFluidNCファームウェアへの更新を試してみたので日本語の記録としてまとめておきます。


CNCxPRO v5の開発元であるSparkConceptsより新ファームウェアへの変更方法に関する案内が発表されています。
この作業によりデフォルトのgrbl-esp32ファームウェアから、FluidNCファームウェアへ変更されます。
FluidNCファームウェアはgrbl互換のファームウェアのため、NCプログラムはこれまで通り実行可能であり、CAMの設定変更等は必要ありません。
ただし、各種パラメーターの設定方法・内容はこれまでの方法とは大きく異なります。

色々と仕様が変わるため以下の注意点を読んだ上で更新をするかを決めて実施してください。

FluidNCとは

image
引用:http://wiki.fluidnc.com/
FluidNCはGrbl_ESP32(CNCxPROv5のファームウェア)の開発者が作っている後継のファームウェアです。
マシンの定義をファイルで変更できるようにするなど、これまでのgrblとは違う新しい機能が多く追加されています。
grbl互換のファームウェアとなっているため、NCプログラム(Gコード)はgrbl用のものに完全に対応しており、CAMについては変更する必要はありません。

注意点

  • $100のようなgrbl用のパラメーターによる設定は使えなくなります。代わりに設定ファイルの変更、またはFluidNC用の設定パラメーターを使用することとなります。
  • ファームウェア更新作業においてはコマンドプロンプト(黒い文字だけの画面)がメインの画面となります。文字入力をする場面はありませんが、表示される文字に合わせてCNCxPRO v5本体のPROGRAMボタンを何度か押す必要があります。

更新するメリット

  • これまでより、より細かいマシンの設定ができるようになります。
  • モーター電流値の設定が不良であった等の問題が改善されます。
  • FluidNC公式のファームウェアを使用することができるため、新バージョンが公開された場合は専用ファームウェアを待つことなくアップデート可能となります。

更新するデメリット

  • 現時点では更新方法のハードルは少し高めです。これまでのファームウェアのファイルをアップロードして全自動更新という手順ではなく、黒い画面(コンソール)を眺めつついくつか手続きをすることになります。 → Web Installerができたので多少簡単になりました
  • これまでのパラメーターを使った設定方法は使用できなくなります。それに伴いソフトにてパラメーターの変更を行っていた場合はその機能が使用できなくなります。
    設定方法の難易度はgrblに比べると少し高くなります。
  • 現時点ではFluidNCに関する日本語文献は多くありません。基本的にはFluidNC公式wiki(英語)を見て設定することとなります。
  • 更新後は元のgrbl-esp32ファームウェアには簡単に戻すことができません。ファームウェアの削除および旧ファームウェア書き込みの処理を手動で行う必要があります。

ファームウェアの比較(主観)

  • 設定の簡単さ
    (簡単)grbl < grbl-esp32 < FluidNC < RepRapFirmware (難しい)
    grblからFluidNC、RepRapFirmwareに行くにつれ設定内容が細分化され、設定項目が増えます。また資料はgrbl以外では日本語資料は多くはないので、英語資料がメインとなります。

  • 拡張性
    (拡張性低)grbl < grbl-esp32 < FluidNC < RepRap Firmware(拡張性高)
    前述内容に合わせて、設定できる幅が大きく異なります。
    grbl系(grbl及びgrbl-esp32)はマシンの構成を変更する場合(XYYZ→XYZAにする、リミットスイッチをNO→NCにする)などの場合は、対応するマシン構成のファームウェアが必要です。
    FluidNC、RepRapFirmwareでは設定ファイルの変更にてマシン構成が変更できます。

  • ファームウェアの更新頻度
    (少ない)grbl << grbl-esp32 << FluidNC < RepRapFirmware (多い)

リンク

CNC xPRO v5のFluidNCへの更新方法の案内(更新手順はこちらを確認

CNC xPRO v5のFluidNC用設定ファイル

FluidNCのwiki(各種設定はこちらを確認

FluidNCのgithub

FluidNCへの更新手順


※追記:2023年11月現在、FluidNC公式ではWebインストーラーを使う書き込み方法が推奨となりました。ここに書かれているファイル実行をする方法でもWebインストーラーでもどちらでもFluidNCの書き込みは可能です。


現時点でのこちらの更新手順を以下に示します。また、以下はWindows環境下での更新作業の説明です。
SparkConcepts公式の案内:

手順

  1. CNC xPRO v5はPCとUSBで接続しておきます。

  2. Releases · bdring/FluidNC · GitHub よりfluidnc-v◯.◯.◯-win64.zipをダウンロードしzipファイルを解凍しておきます。

  3. 解凍したフォルダ内にあるerase.batを実行し、書き込まれているファームウェアを削除します。

  4. 実行するとConnecting.......という表示が出てきます。表示された時にCNC xPRO v5のPROGRAMボタンを長押しし、表示が変わるまで待ちます。

  5. install-wifi.batを実行し、ファームウェアを書き込みます。Connecting…が表示されたら先程と同様にPROGRAMボタンを長押しし、表示が変わるまで待ちます。


    正常に書き込まれると下記のようにFluidNCの起動ログが流れます。ウィンドウを閉じます。

  6. install-fs.batを実行し、WEBUI等を書き込みます。Connecting…が表示されたら先程と同様にPROGRAMボタンを長押しし、表示が変わるまで待ちます。


    正常に書き込みが完了すると先程と同様に起動ログが流れます。ウィンドウを閉じます。

  7. 以下のベースとなるconfig.yamlをダウンロードします。
    https://github.com/Spark-Concepts/xPro-V5/blob/main/FluidNC/config.yaml

  8. fluidterm.batを実行し、設定ファイルを転送するためにファームウェアとの通信を開始します。ウィンドウが開いたらCTRL+Uを押してダウンロードしたconfig.yamlを選択しアップロードします。アップロードの際にファイル名の入力を求められますが、そのままEnterを押せばconfig.yamlの名前のままアップロードされます。

  9. fluidterm.batあるいはCNCjsのコンソールにて$CDを入力して現在の設定表示し、設定ファイルが読み込まれているかを確認する。boardやnameにxPRO V5というテキストがあれば無事反映されています。
    image

各種設定

FluidNCではこれまでのgrbl系のような$数字(例えば$100など)の設定方法が廃止されています。
代わりに以下のいずれかの方法で設定変更を行います。

  1. config.yamlの内の設定値(例: /axes/x/steps_per_mm)をコンソールから指定し変更、変更をファイルに保存コマンドを実行し設定を保存
  2. config.yamlをPC等で編集し再アップロード

1. コンソールから変更

例:$axes/x/steps_per_mm = 200 でstep/mm更新→$CD=config.yamlで設定を上書き保存
ちなみに現在有効な設定は$CDコマンドで確認可能
image

有効な設定内容は公式wikiを確認

2. config.yamlを編集して再アップロード

2.1 Fluidtermを使う方法

PCとCNC xPROをUSB接続している状態でfluidtermを起動します

FluidTermが起動したらCtrl+Uを押してファイル選択画面からconfigファイルを送信する

2.2 WEBUIを使う方法

xPROv5をAPモード(WiFi親機)で使う場合はWiFiのデフォルトSSID: FluidNC, PW:12345678となっています。
ちなみにWiFiの設定は$WiFi/Modeパラメータで設定します。
wiki参考: Wifi and Bluetooth | Wiki.js

WEBUIのファイルシステムよりファイルをアップロードします。

grblで使用していたパラメータに近いFluidNCの設定項目を紹介します。完全な設定内容については公式wikiを確認してください。
また公式wikiのGrbl Setting Compatibilityを確認してください

grblパラメーター対応表

grbパラメーターl grblパラメーターの意味 fluidncの設定値
$0 Step pulse time, microseconds $stepping/pulse_us
$1 Step idle delay, milliseconds $stepping/idle_ms
$2 Step pulse invert, mask
$3 Step direction invert, mask $axes/軸名/motor◯/direction_pin
$4 Invert step enable pin, boolean $axes/軸名/motor◯/tmc5160/stepper_pin
$5 Invert limit pins, boolean
$6 Invert probe pin, boolean $probe/pin
$10 Status report options, mask $10 あるいは $Report/Status
$11 Junction deviation, millimeters $junction_deviation_mm
$12 Arc tolerance, millimeters $arc_tolerance_mm
$13 Report in inches, boolean $report_inches
$20 Soft limits enable, boolean $axes/軸名/soft_limits
$21 Hard limits enable, boolean $axes/軸名/motor◯/hard_limits
$22 Homing cycle enable, boolean $axes/軸名/homing/cycle
$23 Homing direction invert, mask $axes/軸名/homing/positive_direction
$24 Homing locate feed rate, mm/min $axes/軸名/homing/feed_mm_per_min
$25 Homing search seek rate, mm/min $axes/軸名/homing/seek_mm_per_min
$26 Homing switch debounce delay, milliseconds $axes/軸名/homing/settle_ms
$27 Homing switch pull-off distance, millimeters $axes/軸名/motor◯/pulloff_mm
$30 Maximum spindle speed, RPM $スピンドル種類/speed_map
$31 Minimum spindle speed, RPM $スピンドル種類/speed_map
$32 Laser-mode enable, boolean レーザー設定&スピンドル有効化でレーザーモード
$100 X-axis travel resolution, step/mm $axes/x/steps_per_mm
$101 Y-axis travel resolution, step/mm $axes/y/steps_per_mm
$102 Z-axis travel resolution, step/mm $axes/z/steps_per_mm
$110 X-axis maximum rate, mm/min $axes/x/max_rate_mm_per_min
$111 Y-axis maximum rate, mm/min $axes/y/max_rate_mm_per_min
$112 Z-axis maximum rate, mm/min $axes/z/max_rate_mm_per_min
$120 X-axis acceleration, mm/sec^2 $axes/x/acceleration_mm_per_sec2
$121 Y-axis acceleration, mm/sec^2 $axes/y/acceleration_mm_per_sec3
$122 Z-axis acceleration, mm/sec^2 $axes/z/acceleration_mm_per_sec4
$130 X-axis maximum travel, millimeters $axes/x/max_travel_mm
$131 Y-axis maximum travel, millimeters $axes/y/max_travel_mm
$132 Z-axis maximum travel, millimeters $axes/z/max_travel_mm
$140 X motor Run current (amps) $axes/x/motor◯/tmc5160/run_amps
$141 Y motor Run current (amps) $axes/y/motor◯/tmc5160/run_amps
$142 Z motor Run current (amps) $axes/z/motor◯/tmc5160/run_amps
$150 X motor Hold current (amps) $axes/x/motor◯/tmc5160/hold_amps
$151 Y motor Hold current (amps) $axes/y/motor◯/tmc5160/hold_amps
$152 Z motor Hold current (amps) $axes/z/motor◯/tmc5160/hold_amps
$160 X axis microsteps $axes/x/motor◯/tmc5160/microstep
$161 Y axis microsteps $axes/y/motor◯/tmc5160/microstep
$162 Z axis microsteps $axes/z/motor◯/tmc5160/microstep

設定ファイル以外の設定のコマンド

http://wiki.fluidnc.com/en/features/commands_and_settings

情報ありがとうございます。
私の方でも分かったことを一つ上げておきます。


非常停止の入力についてですが、画像のところをlowとするとNOスイッチ、highとするとNCスイッチに対応します。
grblと違い、非常停止ボタンの種類変更によってファームウェア更新は不要になりますね。

「いいね!」 1

皆様のアドバイスにより、CNC xPro v5にFluidNCをインストール、XYZ軸のホーミング及びジョグが正常にできる状態にまでなりました!
セッティングの過程で分かったことが多いので、それをいくつか書かせていただきます。

fluidtermがうまく起動しない場合

当方の使用環境で起こっている事ですが、fluidtrem.batを起動するとすぐに閉じてしまい書き込みまで行えないという状態です。
それでも別の方法でUSBによる書き込みが出来ましたので、そのやり方を上げておきます。

  • install-fs.batを使用する
    初回インストールで使用するバッチファイルですが、正常にインストールが終わると下記のような画面が出ます。
    image
    これは fluidterm.bat が正常に起動した場合に表示される(と思われる)画面です。
    ここで(\Devie\Silabser0)と表示されているポートの番号を入力し(この場合は1)、Enterキーを押します。
    次に、Ctrl+Uを押してconfig.yamlを選択します。


    上記の画面でEnterを押せばアップロードできます。

  • fluidterm.exeを使用する
    バッチファイルではなくアプリケーションを使用する方法です。
    ファイルの場所ですが、ダウンロードしたファイルの中にwin64というフォルダがあり、その中に入っています。


    次に、fluidterm.exeを右クリックして、「管理者として実行」を押してください。

    上手く起動できれば、あとはinstall-fs.batの手順と同じです。

「いいね!」 1

Webインストーラー

Webインストーラーがでてました。FluidNC公式ではこのインストーラーが推奨となっているようです。
https://installer.fluidnc.com/

簡単に紹介します。
ChromeとかEdgeじゃないと使えないかもしれません。

WebインストーラーのConnectボタンを押すと、繋がっているシリアルポートの選択画面が出ます。

Install FluidNCを選択

ファームウェアのバージョンを選んでesp32をクリック

wifi版、bluetooth版、何もなし版のいずれかを選ぶ。wifi版を選択で良いかと。

fresh-install(クリーンインストール)、firmware-update(ファームウェアアップデート)、filesystem-update(ファイルシステムアップデート)から選択。特に問題なければfresh-install

bootスイッチを押してとか出るので、その都度BootボタンなりPROGボタンを押し続けます

書き込みをするモードに入ると自動で書き込みされます。

Doneと出たら書き込み完了です。

CNCjsで確認すると最新のFluidNCが書き込みされていることがわかります。
image

この状態ではマシン設定が定義されていないので別途マシン設定が書いてあるconfig.yamlを用意して制御基板へアップロードします。
下記方法でもOKですが、webインストーラーのFile browserからでもアップロードできます。