grbl後継ファームウェアの比較・紹介(書きかけ)

動作確認

確認内容

項目 内容
インストール方法 ファームウェアを制御基板へインストールする方法(ソースコードからコンパイル?、インストーラー?)
※公式配布コンパイル済み制御基板専用ファームウェアを直接書き込みは記載しない。
マシン定義方法 軸名や各種スイッチと基板入出力との関連付け方法。ソースコードに記述?設定ファイル?
マクロ追加方法 スイッチ等に対応したマクロ(一連の処理)を追加する方法
カスタムGコード追加方法 マクロであったりカスタムの機能を追加する方法
Kinematics追加・変更方法 軸の動作方法(運動学)の変更方法。CoreXYやロボットアームなど
追加機能 サーボ対応、バックラッシュ補正、エンコーダー対応、ディスプレイ対応など元々のgrblになかった機能

検証環境

制御基板:Makerbase MKS DLC32
使われているマイコン:ESP32
ステッピングモータドライバー:A4988

余談ですが、Makerbaseの基板を始めとした中華基板系はオープンソースとなっていなかったり、オープンソースのコミュニティに寄与していなかったり支援していないこともあるためか、ファームウェア開発側からはあまり歓迎されていない雰囲気があるように思います。(ファームウェアに関係ないトラブルも多いという点もあるかもですが)
なので、この手の中華基板を使ってトラブル等ある場合は基本的には自分で調べて自己解決が必要になります。まぁ安いのでその辺はトレードオフですね。

grbl-esp32

項目 内容
インストール方法 ・ソースコードからコンパイルして書き込み
マシン定義方法 ・ソースコードMachine.hにて定義
マクロ追加方法 ・ソースコードにてマクロが有効化されている場合、パラメータ設定にてコマンド、ファイルを指定可能
・Gコードの範囲外の処理の場合はソースコード内にて記述が必要
wiki説明
カスタムGコード追加方法 ソースコードのGcode.cppを編集すれば可能だが、簡単に追加できるようなフックはない
Kinematics追加・変更方法 ・ソースコードのcustom_code_template.cppをベースに処理を記述
追加機能 サーボプッシュ通知、WEBUI、SDカード

関連記事:

FluidNC

項目 内容
インストール方法 ・公式配布バイナリを書き込み
・ソースコードからコンパイルして書き込み
Webインストーラーを使って書き込み
マシン定義方法 ・config.yamlを作成して制御基板にアップロード
マクロ追加方法 ・macroピンを定義することで有効化し、内容はconfigにて記載(Gコード、特殊コマンドのみ)
wiki説明
カスタムGコード追加方法 ソースコードのGcode.cppを編集すれば可能だが、簡単に追加できるようなフックはない
Kinematics追加・変更方法 ・定義済みのKinematicsはconfigファイルにて指定
・定義されていないものはソースコードにて追加(KinematicsSystemクラス)
wiki説明
追加機能 複数種類モーター対応ローカルファイルシステム、WEBUI、SDカード、ミニOLED対応

関連記事:

grblHAL

WebBuilderを使わない場合環境構築はその他に比べてめんどくさめ

項目 内容
インストール方法 Web Builderにてファイルを作成して書き込み(試験的)
・ソースコードからコンパイルして書き込み
wiki説明
マシン定義方法 ・ソースコードにて変更 例:xPRO v5用
マクロ追加方法
カスタムGコード追加方法 Mコード追加のテンプレート有り。ソースコード変更してコンパイル。
Kinematics追加・変更方法 ・corexyなど定義済みのものはconfig.hにて有効化
・未定義のものはKINEMATICS_APIを有効化して追加
追加機能

μCNC

項目 内容
インストール方法 ・ソースコードからコンパイルして書き込み
マシン定義方法 µCNC config builder にて設定したファイルを使いコンパイル
カスタムGコード追加方法
Kinematics追加・変更方法
追加機能

総評

あとから書く

軸やピンの設定、定義はFluidNCを除いてソースコードを変更してコンパイルするのが基本。
このため、ABC軸を振りたい場合や、軸とドライバーの順番変更などの少し設定変更の場合、FluidNC以外はハードル高い。多少プログラミングが分かることが前提となる。

逆に言えば、制御基板の使い方が完全に決まっており変わることがない場合はどのファームウェアを使っても問題はなさそう。