はじめに
自作CNCシリーズ 第6回
はじめに:$H を実行すると ALARM:8 で止まる
こんにちは、にんじんです🥕
CNCjsのコンソールで $H(ホーミング)を実行すると ALARM:8 (Homing fail) で止まる——。前回(第5回)で中華製CNCシールドのD11/D12ピン入れ替わりを突き止めましたが、それを直してホーミングに進んだ途端、今度はこのエラーに阻まれました。
結論から言うと、原因はGRBLのホーミングがリミットスイッチの「ON → OFF → ON → OFF」という4ステップの動きを要求していることでした。この記事では、Z軸の実機がないプロトタイプ機でホーミングを通す方法、$27(プルオフ距離)の調整、そして加工用レーザーに向けたPWM出力の設定($32=1 / $30 / $31)とLED調光テストまでをまとめます。これで自作CNCの要素設計は完了です。
この記事で分かること
- CNCシールドの配線ミスを踏まえたZ軸リミットスイッチの仮接続(「SpnEN」端子へ)
ALARM:8 (Homing fail)が出る仕組みと、GRBLのホーミングが求める4ステップ動作- Z軸の実機がなくても、手でスイッチを「カチカチカチカチ」と4回押してホーミングを成功させる方法
$132(Z移動距離)と$27(プルオフ距離)でホーミング動作を見やすくする設定- レーザー用PWM(
$32=1レーザーモード /$30最大出力 /$31最小出力)とLEDでの調光テスト
CNCシールドの配線修正とZ軸リミットスイッチの仮実装
前回特定した基板のコピーミスを修正します。安価な海外製基板では、シルク印刷よりテスターの導通確認を信じるのが確実です。
- 対策:Z軸のリミットスイッチを、基板上の「SpnEN」(本来D12が割り当てられるべき場所)に接続する
Z軸リミットスイッチの接続とステータス確認
GRBL・CNCjsの仕様上、Z軸が実装されていないとホーミング全体を完了できません。ニンジンの環境はXYテーブル流用でZ軸を筐体に固定できないため、単独のステッピングモーターとリミットスイッチを仮配線して検証します。
ホーミング実行で「ALARM:8(Homing fail)」が発生する
リミットスイッチが認識されたので、CNCjsのコンソールに $H を打ち込んでホーミングを実行します。
コマンド:$H
> $H
ALARM:8 (Homing fail)
ok
Grbl 1.1h ['$' for help] [MSG:'$H'|'$X' to unlock]ダメでした。ただしZ軸のモーターは確かに回りました。
Z軸が仮組みだと何が問題になるのか
現在の環境はXYテーブル流用中で、Z軸はユニット構成外のためスイッチと連動していません。GRBL(CNCjs)の仕様は次の通りです。
- ホーミングは 「Z軸」⇒「X軸・Y軸」の順で実施される
- Z軸のホーミング中にエラーが発生すると、ホーミング全体が中断(
ALARM:8)される
そこで、Z軸モーターの動きに合わせてリミットスイッチを手動でON⇒OFF⇒ON⇒…とすれば、GRBLはZ軸がホーミングしたと認識すると仮定して進めます。
作戦変更:動作を遅くしてタイミングを合わせる
モーターの回転に合わせて手でスイッチを叩くのは至難の業なので、動作を遅くして視認しやすくします。
$132=200:Zの移動距離を確保する$27=3.000:プルオフ(スイッチから離れる距離)を大きくする
これでもう一度 $H。……しかし結果はまた ALARM:8。
解明:GRBLのホーミング成功に必要な「4ステップ動作」
八方塞がりかと思いながら何度もスイッチを叩いていたそのとき、ホーミングに成功しました。試行錯誤の結果、CNCjs(GRBL)が求めている挙動が見えてきました。
- 高速アプローチ:モーターが移動しスイッチに当たる(スイッチON)
- 一時退避:少し逆回転して離れる(スイッチOFF)
- 精密アプローチ:低速でもう一度当たる(スイッチON)
- 最終退避:少し離れて停止する(スイッチOFF)
つまりスイッチの動きは ON ⇒ OFF ⇒ ON ⇒ OFF でした。当初想定していた「ON ⇒ OFF ⇒ ON」では最後の「離れる」動作を確認できず、エラー扱いになっていたのが原因です。
動作原理が分かれば対策は簡単です。モーターの回転音とタイミングに合わせて、手元で「カチ、カチ、カチ、カチ」と4回リズムよくスイッチを押せば、確実にホーミングを成功させられます。
ホーミング後にワーク座標を 0,0,0 に初期化する
ホーミング後にワーク位置が「0,0,0」になっていない場合、そのままでも正常ですが、揃えたいときは次の操作をします。
- 座標表示の ▼ 印をクリック
- 「ワークオフセットP1をゼロにする(
G10 L20 P1 X0 Y0 Z0)」をクリック
加工用レーザーを想定したPWM出力の制御確認($32・$30・$31)
ホーミングの課題をクリアしたので、最終段階として加工工具(レーザーモジュール)の制御を検証します。
使用ピンとGRBLパラメータ
信号出力には ArduinoのD11ピン(Spindle PWM)を使います。このピンのPWMデューティ比を変えることで、レーザー出力を0〜100%まで無段階に調整できます。
$32=1:レーザーモードを有効化。移動コマンド(G0)中はレーザーが自動消灯し、切削送り(G1/G2/G3)のときだけ照射される仕様に切り替わる$30=1000:最大出力(S値)を設定$31=0:最小出力を設定。これでS1000が出力100%、S500が50%として扱われる
LED調光による「Lチカ」検証
レーザーモジュールを接続する前に、LEDで出力信号をテストします。
- 配線:シールドの配線ミスがあるため、接続先は「Z-」ピン(実体はD11)。「D11 → 抵抗 → LED → GND」で回路を組む
- CNCjs設定:軸が停止していてもLEDを点けたいので一時的に
$32=0(レーザーモードOFF)にし、$30=1000を確認
test04_LED.nc(ひし形を描きながら S250 → S500 → S750 → S1000 と出力を上げる)
G21 ; 単位をmmに設定
G90 ; 絶対座標モード
F1000 ; 速度を少し早めに設定(変化を見やすくするため)
; --- スタート地点へ移動 ---
G0 X110 Y110 ; 円の開始点へ移動
; --- 出力テスト開始(4分割で強さを変える) ---
M3 S250 ; レーザーON(25%出力)
G2 X160 Y160 I50 J0 ; 1/4円
S500 ; 出力アップ(50%)
G2 X110 Y210 I0 J50 ; 1/4円
S750 ; 出力アップ(75%)
G2 X60 Y160 I-50 J0 ; 1/4円
S1000 ; 出力最大(100%)
G2 X110 Y110 I0 J-50 ; 1/4円(元の位置に戻る)
M5 ; レーザー停止
G0 X0 Y0 ; 原点復帰実行すると、ひし形(円運動)を描く過程で「S250 → S500 → S750 → S1000」の切り替わりに同期してLEDの輝度が段階的に明るくなり、M3 での点灯・M5 での消灯も正常に機能しました。
まとめと次回予告:本番用アルミフレーム筐体の組み立てへ
XYテーブルの流用から始まった各要素の検証は、今回で完了です。ここまでの成果は次の通りです。
- 2軸の同期走行テスト
- コピー基板の配線ミスの特定と物理的な回路修正
- GRBLのホーミング動作(4ステップ)の仕様解明
- PWM信号によるレーザー出力制御の視覚的確認
次回・第7回では、いよいよ本番用の「アルミフレーム式筐体」の組み立てに着手します。
次に読む記事
🏗️ 次回はこちら(第7回) GRBLで「Check Door」が誤発生する原因|Gコードの日本語コメント(UTF-8)の罠 アルミ筐体へ移行してペンプロッター化。step/mm・$3の再計算と、謎の [MSG:Check Door] の真犯人を解説します。 → ⚙️ 前回はこちら(第5回) CNCシールドでリミットが常時ON(Pn:Z)になる原因|GRBLのD11・D12ピン反転の罠 今回の配線修正の前提。D11/D12入れ替わりの原因究明はこちら。 → 🗺️ シリーズ全体像 ゼロから自作するCNCの全手順ロードマップ|Arduino・GRBL・CNCjsでレーザー刻印機を作る 第1回〜第10回の全工程をまとめたロードマップ。 →よくある質問(FAQ)
Q$H を実行すると ALARM:8 (Homing fail) で止まります。
AGRBLのホーミングは、各軸で「スイッチにON→少し離れてOFF→低速で再度ON→最後に離れてOFF」の4ステップを完了する必要があります。最後の「離れる」動作が検出されないとALARM:8になります。プルオフ距離 $27 を大きめ(例:3mm)にし、リミットスイッチが確実にON/OFFを切り替えているか確認してください。
QGRBLのホーミングはどの軸から動きますか?
AZ軸 → X軸・Y軸 の順です。そのためZ軸のホーミングでつまずくと、XYが正常でもホーミング全体が中断します。Z軸ユニットが未完成の場合は、単独のモーターとスイッチを仮配線して検証できます。
QZ軸の実機がなくてもホーミングを通せますか?
A通せます。Z軸用に単独のステッピングモーターとリミットスイッチを仮配線し、モーターの動きに合わせて手でスイッチをON→OFF→ON→OFFと4回操作すれば、GRBLはZ軸がホーミング完了したと認識します。
Q$27(プルオフ)は何を設定する値ですか?
Aホーミングでスイッチに触れた後、スイッチから離れる距離(mm)です。小さすぎるとスイッチがOFFに戻りきらず4ステップが完了しません。動作確認しやすいよう、まず3mm程度に大きくして挙動を見ると分かりやすいです。
Qレーザーを使うとき $32 は必ず 1 にしますか?
Aはい。$32=1(レーザーモード)にすると、G0移動中は自動消灯し、G1/G2/G3の送り中だけ移動速度に合わせて出力が調整されます。LEDでの静止テストなど「止まっていても点灯させたい」場合だけ一時的に $32=0 にします。
QD11ピンからPWMが出ません。
A本記事のCNCシールドはD11/D12が入れ替わっているため、実際にPWMが出るのは基板上の「Z-」端子(実体D11)です。まずテスターでArduinoのD11とシールド端子の対応を確認してください。$30 が0のままだと出力が出ない点にも注意します。
自作CNCシリーズ 全10回
- XYテーブルをCNC化!ArduinoとA4988を使ったステッピングモーター制御の基本【自作CNC第1回】
- 自作CNCのリミットスイッチ配線とホーミング設定|プルアップ回路・チャタリング対策【自作CNC第2回】
- ArduinoへGRBLを書き込む手順とCNCjsの使い方|XYテーブルをPC制御【自作CNC第3回】
- GRBLの$100キャリブレーションと$110速度制限の解除|CNCjsでステップ数を実測補正【自作CNC第4回】
- CNCシールドでリミットが常時ON(Pn:Z)になる原因|GRBLのD11・D12ピン反転の罠【自作CNC第5回】
- GRBLホーミング失敗「ALARM:8」の原因と対策|4ステップ動作とプルオフ設定【自作CNC第6回】(この記事)
- GRBLで「Check Door」が誤発生する原因|Gコードの日本語コメント(UTF-8)の罠【自作CNC第7回】
- 自作CNCに1064nm赤外線レーザーで金属刻印|GRBL設定($32=1)とLightBurn素材テスト【自作CNC第8回】
- 自作CNCのレーザー加工を10倍高速化!アルミフレーム剛性強化と速度検証
- 【設計データ配布】自作CNCレーザー刻印機の全部品リストと2D/3D図面一式
Follow me on X
本ブログの中の人「ニンジン🥕」はXやってます。新着記事はいち早くポストでお知らせしているので、見逃したくない方は @ninjin_py_vba をフォローしてみてください🥕
@ninjin_py_vba をフォローシリーズ記事一覧
電子工作・自動化ツールの製作記録をシリーズごとにまとめています。気になるテーマからお読みください。
-
FILE.01 — IoT
Raspberry Pi Pico W × GASラズパイPico W×GASで自作!「LINEで動く温湿度&スマートリモコン」完全ロードマップ
「外出中のペットの室温が心配…」そんな思いからスタートしたIoT自作プロジェクトの総集編。温湿度監視からエアコン遠隔操作まで、仕組みをゼロから作りたい方のための全5回の開発記録です。
シリーズを読む -
FILE.02 — CNC
Arduino × レーザー刻印CNCCNC自作シリーズ
高精度な加工を目指し、本格的な自作CNC製作に挑戦中。現在は基幹パーツであるオリエンタルモーターの納品を待つ「設計・準備編」を公開。ハードとソフトの両面から、理想のマシンを形にする過程をリアルタイムにお届けします。
シリーズを読む -
FILE.03 — XY軸制御
Raspberry Pi × ステッピングモーターXYテーブルシリーズ
Raspberry Piとステッパモーターを使い、ゼロから2軸制御に挑む記録。OS設定から回路設計、多軸制御のPythonコードまで、躓きやすいポイントを徹底図解。電子工作初心者が「動く感動」を味わうための実戦ガイドです。
シリーズを読む -
FILE.04 — 業務自動化
Python × Excel × CustomTkinter【Python開発記】NINJIN Mail制作記
PythonとExcelを連携させ、実務で即戦力となるメール送信ツールを開発。CustomTkinterによるUI構築や、ミスを防ぐテンプレート活用術など、現場の「痒い所に手が届く」自動化ノウハウを細部まで丁寧に解説します。
シリーズを読む -
FILE.05 — 業務自動化
Python × Excel × GUIアプリ化Invoice Maker(請求書・見積書自動作成)
手作業の請求書作成から卒業!PythonでExcelデータを読み込み一括PDF化する「Invoice_Maker」の作り方を全3回で解説。基本ロジックからGUIアプリ化まで、実務で役立つ自動化ノウハウが満載です。
シリーズを読む










コメント