PR

CNCシールドでリミットが常時ON(Pn:Z)になる原因|GRBLのD11・D12ピン反転の罠【自作CNC第5回】

CNC自作

はじめに

自作CNCシリーズ 第5回

スポンサーリンク

はじめに:触れていないのに「Pn:Z」が常時ONになる

こんにちは、にんじんです🥕

Y軸を追加して2軸同期走行までは動いたのに、ホーミングを有効にした瞬間、リミットスイッチに触れてもいないのに「Pn:Z」が常時ONになる——。この記事では、その原因がGRBL v0.9以降で入れ替わったD11(スピンドル制御)とD12(Z軸リミット)のピンアサインにあったこと、そして格安CNCシールドのシルク印刷を信じてはいけない理由を、実際の切り分け作業とともに解説します。あわせて、Y軸追加後の2軸同期テスト(スクエア走行・円弧補間)と、モーターが逆に回るときの $3 による対処もまとめます。

この記事で分かること

  • Y軸を追加したあとの2軸同期テスト(四角形・円弧補間)で確認すべきポイント
  • モーターが逆方向・斜めに動くときに配線を触らず直す $3(Step direction invert)
  • リミットスイッチ未操作なのに Pn:Z が常時ONになる現象の正体
  • GRBL v0.8以前と v0.9以降で D11とD12(スピンドル/Z軸リミット)が入れ替わった歴史
  • 「基板のシルク印刷どおりに配線しても動かない」ときにテスターで確認する手順

スポンサーリンク

Y軸の追加と2軸同期テスト走行(Gコード実行)

テスト環境は、以前製作したXYテーブルを流用したプロトタイプ機です。可動範囲はX・Yともに250mm。本番の筐体を組む前に、まずこの構成で制御系を仕上げます。今回のテストで確認するのは次の3点です。

  • 範囲内(250mm)で問題なく動作するか
  • X軸とY軸を同時に動かす複雑な動作ができるか
  • 繰り返し動作でステップのズレ(脱調)が発生しないか

スクエア走行テスト(test02.nc)で四角形を描く

CNCjsのツールパスプレビューに表示された200mm四方の四角形の走行経路

まずは基本の四角形。CNCjsからテスト用のGコード(.ncファイル)を実行します。イメージは 200mm四方を2周です。

(10,210) ┌─────┐ (210,210)
         │       │
(10,10)  └─────┘ (210,10)

「test02.nc」は以下の通りです。

G21         ; mm単位
G90         ; 絶対座標

F500        ; 送り速度

G0 X10 Y10  ; スタート位置(少し内側)

; 四角形1周(200mmサイズ)
G1 X210 Y10
G1 X210 Y210
G1 X10 Y210
G1 X10 Y10

; もう一周(動作確認)
G1 X210 Y10
G1 X210 Y210
G1 X10 Y210
G1 X10 Y10
⬇ test02.nc をダウンロード(ZIP)

円弧補間テスト(test03.nc)で同期と脱調をチェック

CNCjsのツールパスプレビューに表示された円弧補間(G2)の円形の走行経路

四角形が確認できたら、次は円を描く動作です。きれいな円にはX軸とY軸が互いに加減速を連携させる必要があります。このテスト(test03.nc)で、2軸の同期と脱調(ステップ抜け)の有無を細かくチェックします。

「test03.nc」は以下の通りです。

G21
G90
F500

G0 X110 Y110

G2 X110 Y110 I50 J0
⬇ test03.nc をダウンロード(ZIP)

モーターが逆方向に動くときは $3(Step direction invert)

テスト中にモーターが想定と逆方向に動いたり斜めに走ったりする場合、配線を物理的に差し替えなくても、GRBLの $3(Step direction invert)でソフト側から回転方向を反転できます。

  • $3=1:X反転
  • $3=2:Y反転
  • $3=3:X+Y両方反転

スポンサーリンク

GRBLでのホーミング(原点復帰)の有効化と事前準備

2軸の動作が確認できたので、次は「ホーミング(原点復帰)」の設定です。これは電源を入れたときにマシンへ正確な現在位置を認識させるための重要な設定です。

Z軸未実装環境でのリミットスイッチとモーターの仮配線

XYテーブルに加えてZ軸用の単独ステッピングモーターとリミットスイッチを仮配線した結線図

GRBL・CNCjsの仕様上、Z軸の環境が確認できないとホーミング全体を実行できません。ニンジンの環境はXYテーブル流用のためZ軸を物理固定できないので、単独のステッピングモーター(Nema17)とリミットスイッチ(オムロン D2JW-01K1A1)を一時的に配線して検証します。

Nema17 ステッピングモーターの外観
Z軸検証用に仮設したNema17
リミットスイッチ D2JW-01K1A1 の外観
リミットスイッチ D2JW-01K1A1

CNCjsからのホーミング関連パラメータの設定

CNCjsのコンソールでホーミング関連のGRBLパラメータを流し込んでいる画面

CNCjsのコンソールで以下を実行し、設定を流し込みます。

$130=250 ; X最大移動距離
$131=250 ; Y最大移動距離
$132=10  ; Z適当(まだ仮です)

$22=1    ; ホーミングON
$23=3    ; ホーミング方向(今回は左奥を原点に設定)

GRBLの仕様上の注意:$22=1(ホーミング有効)にすると、起動直後は必ずアラーム状態(ロック)になります。これは現在地が未確定のまま誤動作するのを防ぐ安全設計で、ホーミングが正常に完了すれば自動的に解除されます。


スポンサーリンク

異常事態:リミットスイッチ未操作なのに「Pn:Z」が常時ONになる

ホーミングを実行する前に、リミットスイッチのステータスを確認するためコンソールから ? コマンド(ステータスレポート要求)を実行しました。

CNCjsのコンソールに Alarm|MPos:0.000,0.000,0.000|FS:0,0|Pn:Z と表示された画面

コンソールの表示:
<Alarm|MPos:0.000,0.000,0.000|FS:0,0|Pn:Z>

末尾の Pn:Z は「Z軸のリミットスイッチが押されています」というサインです。ですが、まだスイッチに触れてもいません。結線もNC(ノーマルクローズ)で正しく行っているはずなのに、なぜか「常時ON」扱い。ここから長い切り分けが始まりました。


スポンサーリンク

原因究明:CNCシールドの仕様とGRBLの歴史(D11とD12の入れ替わり)

テスターでArduino UnoとCNCシールドの回路を1本ずつ確認したところ、原因が判明しました。

テスターでArduino UnoとCNCシールドのピン間の導通を1本ずつ確認している様子

結論として、Amazonで購入した市販のCNCシールドで、D11ピンとD12ピンの配線が入れ替わっていました。

  • 本来の想定:ArduinoのD12ピンがシールド上の「Z軸リミット端子」に接続
  • 実際の回路:ArduinoのD11ピンがシールド上の「Z軸リミット端子」に導通
  • 付随:D11であるべき「SpnEN(スピンドル有効)」信号がD12ピンに接続

つまり D11ピンとD12ピンが完全に入れ替わっている状態でした。これでは、Z軸のリミットスイッチを基板のシルク印刷どおりに配線しても、現行のGRBL仕様では正常に認識されません。

CNCシールド上でZ軸リミットの配線をSpnEN端子側へ差し替えた正しい結線の写真

この写真が正しい結線です。見た目はSpnENに接続されていて誤配線のように見えますが、これで正しく動きます。

旧GRBL(v0.8以前)と現行GRBL(v0.9以降)のピンアサインの違い

さらに調べると、基板の不良というより「GRBLのバージョンの歴史」が関係していました。

  • 旧GRBL(v0.8まで):D11ピンが「Z軸リミット」に割り当てられていた
  • 現行GRBL(v0.9以降):D11ピンが「スピンドル制御(PWM出力)」に変更され、Z軸リミットはD12ピンへ移された

D11はPWM(パルス幅変調)が得意なピンで、スピンドルの回転数制御に向いています。より高度なCNC制御に対応するため、GRBLの開発元が「D11をスピンドル用に、Z軸リミットをD12へ移設」と決めた背景があります。ニンジンはその歴史を知らず「基板がNG」と思い込んでいました。一概にコピー不良とは言えないようです。

※ニンジンが購入したCNCシールドが対象の話です。注意喚起の意味で記事にしています。購入品によって差異があるため、テスター等で結線を確認することを推奨します。


スポンサーリンク

まとめと次回予告:入れ替わったピンへの対策と4ステップホーミング

ピン配置が入れ替わっている原因は特定できましたが、ホーミングを成功させるにはこの回路構成に合わせた対策が必要です。さらに「物理的なZ軸ユニットがまだない」というプロトタイプ機ならではの難題も控えています。

次回・第6回では、ホーミング動作の挙動を検証し、ON → OFF → ON → OFF の4ステップ手順を攻略する方法を解説します。

次に読む記事

🚨 次回はこちら(第6回) GRBLホーミング失敗「ALARM:8」の原因と解決策!4ステップの動作原理を徹底解説 Z軸未連動の環境でホーミングを通すための考え方と、ALARM:8の切り分けを解説します。 → 🔧 前回はこちら(第4回) GRBLの$100キャリブレーションと$110速度制限の解除|CNCjsでステップ数を実測補正 モーター交換と $100 / $110 の設定。2軸を揃える前の準備がここにあります。 → 🗺️ シリーズ全体像 ゼロから自作するCNCの全手順ロードマップ|Arduino・GRBL・CNCjsでレーザー刻印機を作る 第1回〜第10回の全工程をまとめたロードマップ。 →

スポンサーリンク

よくある質問(FAQ)

Qリミットスイッチに触れていないのに Pn:Z が表示されます。

AGRBLのステータスの Pn: はトリガー中の入力ピンを示します。触れていないのにZが出る場合、配線ミス、NC/NOとGRBLの $5(limit invert)設定の不一致、そしてCNCシールドのD11/D12ピン入れ替わりが主な原因です。まずテスターでArduinoの該当ピンとシールド端子の導通を確認してください。

QGRBLのv0.8とv0.9でピン配置はどう変わりましたか?

Av0.8まではD11がZ軸リミットでしたが、v0.9以降はD11がスピンドルPWM出力になり、Z軸リミットはD12へ移されました。古いCNCシールドは旧アサイン前提のことがあり、シルク印刷どおりに配線すると現行GRBLで認識されません。

Q基板のシルク印刷どおりに配線したのに動きません。

A格安のCNCシールドはコピー基板が多く、シルクと実際の導通が一致しないことがあります。Arduino側のピン(D9〜D12など)とシールドの端子をテスターの導通モードで1本ずつ当たって、実際の結線を図に起こしてから配線するのが確実です。

Qモーターが逆方向や斜めに動きます。配線をやり直すべきですか?

Aやり直さなくて構いません。GRBLの $3(Step direction invert mask)で軸ごとに回転方向を反転できます。$3=1でX、$3=2でY、$3=3で両方。Z軸まで含めるとビットマスクで指定します。

Q$22=1 にしたらアラームでロックされて動きません。

A正常な動作です。ホーミング有効時は起動直後に必ずAlarmになります。$H でホーミングを実行して正常完了すればロックは解除されます。どうしても手動で解除したいときは $X ですが、原点が未確定のままになる点に注意してください。

QZ軸のハードがまだ無くてもホーミングの検証はできますか?

Aできます。Z軸用に単独のステッピングモーターとリミットスイッチを仮配線すれば、GRBLはZ軸ありと認識してホーミングシーケンスを実行します。本記事ではNema17とオムロンD2JW-01K1A1を仮設して検証しています。



ニンジン🥕アイコン

Follow me on X

本ブログの中の人「ニンジン🥕」はXやってます。新着記事はいち早くポストでお知らせしているので、見逃したくない方は @ninjin_py_vba をフォローしてみてください🥕

@ninjin_py_vba をフォロー

この記事が役に立ったら、シェアしてもらえると嬉しいです🥕

Xでポスト はてブ LINE Pocket

PROJECT LOG — SERIES INDEX
スポンサーリンク

シリーズ記事一覧

電子工作・自動化ツールの製作記録をシリーズごとにまとめています。気になるテーマからお読みください。


GPSロガーのCSVを地図に表示する方法|Pico 2 WでGT-502MGG-NとATGM336Hを車に積んで走行・トンネル比較【Python・folium】
GPSロガーで記録したCSVを、Pythonのfoliumと地理院タイルで地図に表示する方法。GT-502MGG-NとATGM336Hを車に積んで4回走り、再起動の原因やトンネルでの違いも比べました。
今週の注目ガジェット〜10/19週〜|電子工作・自作向け新製品まとめ(Romu/W1700K SDR ほか)
大手が拾わないニッチな新製品を毎週チェック。今週はe-Paper開発キット、超小型USBボード、自作SDRなど5本立て。
GT-502MGG-NとATGM336Hの使い方|Raspberry Pi Pico 2 WとMicroPythonでGPSを受信して2台を比較
GT-502MGG-NとATGM336Hの使い方を、Pico 2 W×MicroPythonで解説。北斗で衛星数が多いATGM336H、信号が強いGT-502MGG-N。単精度floatで緯度経度が約1.4m刻みになる落とし穴も紹介します。
今週の注目ガジェット〜10/12週〜|電子工作・自作向け新製品まとめ(Q8botOne/Sipeed SLogic32U3 ほか)
大手が拾わないニッチな新製品を毎週チェック。今週は四足歩行ロボット、ロジックアナライザー、広告ブロッカーなど5本立て。
MOSFETはPicoの3.3Vで足りる?DCソレノイド駆動でゲート電圧不足を実測【Pico 2 W】
Pico 2 WとMOSFET(IRLU3410)で12VのDCソレノイドを駆動。ゲート3.3Vでは発振し、オン抵抗も約2.4倍に。レベル変換で5V駆動にした比較と、電流が8割止まりだった本当の原因を実測で紹介します。
まとめハブ
CNC自作
スポンサーリンク

コメント