自作CNC開発記 総集編
ゼロから自作するCNCの全手順ロードマップ|Arduino・GRBL・CNCjsでレーザー刻印機を作る【全10回】
こんにちは。ニンジンです🥕
市販のCNCを買うのも便利ですが、構造や制御の仕組みを理解して自分の目的に合ったマシンを手に入れるため、ゼロからのCNC自作に挑戦しました。この記事は、構想・パーツ選定・制御ソフトの設定・レーザー刻印テストまでの全工程を、全10回のロードマップとしてまとめた総集編です。
手元のXYテーブルを仮筐体に使って制御系を固める「要素設計フェーズ(第1〜6回)」と、本番アルミフレーム筐体で加工機に仕上げる「実機調整フェーズ(第7〜10回)」の2部構成で、各回の内容と、実際にぶつかったエラーへの対処を確認できます。
この記事で分かること
- 自作CNCを組むために必要なパーツ構成(Arduino UNO・CNCシールド・A4988・ステッピングモーター・リミットスイッチ)
- ファームウェア GRBL の書き込みと、PC制御ソフト CNCjs の導入の流れ
- ホーミング失敗(
ALARM:8)・Z軸リミット常時ON(Pn:Z)・Check Doorエラーなど、実際にハマったトラブルと解決策 - 1064nm赤外線レーザーモジュールで金属に直接刻印するまでの手順
- 各回(第1回〜第10回)の要点と、どの順で読めばいいか
自作CNCプロジェクトの全体ロードマップ
本シリーズは大きく2つのフェーズに分かれています。いきなり本番筐体を作って失敗するリスクを避けるため、まず手元のXYテーブルを仮筐体として流用し、制御系・ファームウェア・センサー類の動作を徹底的に検証しました。その知見をもとに本番アルミフレームを設計・製作しています。
🔧 要素設計フェーズ(仮筐体期間)
自作XYテーブルをCNC化し、制御基板・ファームウェア・リミットスイッチ・ステッピングモーターを個別に検証したフェーズです。
- Arduino + CNCシールドの基本セットアップ
- GRBLの書き込みとCNCjsの導入
- リミットスイッチ配線とホーミング設定
- ステッピングモーター精度検証とキャリブレーション
- ピン割り当て・バージョン差によるトラブル解決
🏭 実機調整フェーズ(本筐体期間)
仮筐体で得た知見をもとに設計した本番アルミフレーム筐体で、実機を調整・拡張するフェーズです。
- アルミフレーム組み立てと各軸の調整
- CNCjsのエラーを文字コード問題から解決
- 1064nm赤外線レーザーによる金属刻印
- 特注板金+リニアガイドで剛性アップ・加工速度10倍化
- 全設計データ(部品リスト・2D/3D図面)の公開
【フェーズ1】仮筐体での要素設計編(第1回〜第6回)
まずはXYテーブルを流用し、Arduinoとステッピングモーターを組み合わせた制御の基本と、ホーミングなどの必須機能を構築していくプロセスです。
XYテーブルのCNC化とモーター制御の基本
自作CNCの玄関口となる部品選定と駆動テスト。CNC制御で「なぜRaspberry PiではなくArduinoを選ぶのか」というリアルタイム処理の波形比較や、A4988ドライバの破損を防ぐ電解コンデンサの必要性など、電気的な基礎を解説します。
XYテーブルをCNC化!ArduinoとA4988を使ったステッピングモーター制御の基本【自作CNC第1回】リミットスイッチの実装とホーミングの仕組み
工作機械に「機械原点(0, 0)」という物理的な基準を与えるリミットスイッチの実装回。GRBLがなぜリミットスイッチに「2回」触れて原点を特定するのかというホーミングの仕様や、ノイズによる誤検出を防ぐ「プルアップ配線」の回路構成に触れています。
自作CNCのリミットスイッチ配線とホーミング設定|プルアップ回路・チャタリング対策【自作CNC第2回】GRBL書き込みとCNCjsでのPC制御環境の構築
ArduinoをCNCの脳に変えるファームウェア「GRBL」の書き込み手順と、PCからミリ単位で操作するブラウザベースソフト「CNCjs」の導入方法。後半では、安価なモーターで直面した「移動距離の不規則なバラつき(0.7mmの誤差)」という精度の壁を論理的に考察します。
ArduinoへGRBLを書き込む手順とCNCjsの使い方|XYテーブルをPC制御【自作CNC第3回】モーター交換と精度出しのキャリブレーション
前回の精度不足を解消するため、信頼性の高いオリエンタルモーター製「PKP244D08A2」へ換装。実測値に基づくGRBLパラメータ($100)の補正計算式、CNCjs接続時に座標が0にならない場合の対処、送り速度(F値)が頭打ちになる設定の罠($110)の解除手順を紹介します。
GRBLの$100キャリブレーションと$110速度制限の解除|CNCjsでステップ数を実測補正【自作CNC第4回】2軸同期走行とCNCシールドのピン配置の罠
X軸・Y軸を同時に連携させて四角形や円弧を描く「2軸同期走行テスト」。その過程で直面した、リミットスイッチが常時ON(Pn:Z)になる異常事態の原因を究明。GRBLのバージョンアップ(v0.8→v0.9以降)に伴う、D11とD12のピン配置反転の歴史と基板の罠を解説します。
CNCシールドでリミットが常時ON(Pn:Z)になる原因|GRBLのD11・D12ピン反転の罠【自作CNC第5回】GRBLの4ステップホーミング攻略とレーザーPWM検証
Z軸ユニットがまだ無いプロトタイプ環境で、ホーミング時の「ALARM:8(失敗)」を回避する手動操作手順を公開。GRBLの「4ステップ動作」を解明し、後半ではD11ピンからのPWM信号によるレーザー出力制御をLEDの調光で視覚的に検証します。これで要素設計フェーズが完了です。
GRBLホーミング失敗「ALARM:8」の原因と対策|4ステップ動作(ON-OFF-ON-OFF)とプルオフ設定【自作CNC第6回】【フェーズ2】本筐体での実機調整編(第7回〜第10回)
要素設計での知見をすべて注ぎ込み、独自に設計した本番用のアルミフレーム筐体を稼働させ、加工機としてブラッシュアップしていくプロセスです。
アルミ筐体完成とGコードの「文字コード(UTF-8)」の罠
稼働領域 X350mm × Y340mm の本番用アルミフレーム筐体が完成し、ペンプロッターとして動作確認。そこで連発した「Check Door」エラーを追跡し、ハードのノイズではなくGコード内の日本語コメント(「径」などの漢字)がUTF-8の文字コード(0x84)を介してGRBLのリアルタイムコマンドを誤作動させていたという真犯人を突き止めました。
GRBLで「Check Door」が誤発生する原因と対策|Gコードの日本語コメント(UTF-8)の罠【自作CNC第7回】1064nm赤外線レーザーモジュールの搭載と金属刻印テスト
メイン加工工具として、LASER TREE製「2W 1064nm 赤外線レーザーモジュール」を導入。金属やプラスチックへの直接刻印を目的とした波長選定の理由や、レーザーモード($32)などのパラメータ設定、LightBurnを使ったアルミ板への素材マトリックステストの様子をお届けします。
自作CNCに1064nm赤外線レーザーで金属刻印|GRBL設定変更($32=1)とLightBurn素材テスト【自作CNC第8回】自作CNCのレーザー加工を10倍高速化!アルミフレーム剛性強化と速度検証
高速加工時の「端部のにじみ・ブレ」の原因がアルミフレームのしなりにあると突き止め、特注板金とスガツネ製リニアガイドレールで剛性強化。ArduinoとA4988の限界を分析しつつ、実用速度を約10倍の6,000mm/min(推奨常用3,000mm/min)まで引き上げた検証プロセスを解説します。
自作CNCのレーザー加工を10倍高速化する方法|アルミフレーム剛性強化と速度検証【自作CNC第9回】【設計データ配布】全部品リストと2D/3D図面一式
本自作CNCで使用したすべての部品構成表(パーツリスト)、剛性確保のために設計した板金の2D・3D図面データ、PDF形式の結線図、組み立ての全容がわかる「3D-PDF組立図」を一式にまとめたデータ配布ページです。「自分でも同じスペックのCNCを組み立ててみたい」という方向けの完全パックです。
【設計データ配布】自作CNCレーザー刻印機の全部品リストと2D/3D図面一式【自作CNC第10回・完結編】主要コンポーネント一覧
本シリーズで使用した主なコンポーネントです。
| カテゴリ | コンポーネント | 備考 | リンク |
|---|---|---|---|
| マイコン | Arduino UNO | GRBLファームウェアを書き込んで使用 | Amazon |
| 制御基板 | CNCシールド v3 | 3軸同時制御に対応 | Amazon |
| モータードライバー | A4988 | マイクロステッピング対応。焼損を防ぐVref調整は こちらの記事で解説 | Amazon |
| ステッピングモーター | PKP244D08A2 | 精度向上のため途中でスペックアップ(オリエンタルモーター製) | 公式 |
| リミットスイッチ | D2JW-01K1A1 | X / Y / Z軸それぞれに配置 | 楽天 |
| 制御ソフト | CNCjs | Webブラウザベースのグラフィカル操作UI | 公式サイト |
| CAMソフト | LightBurn | レーザー加工のパス生成・テスト用 | 公式サイト |
| レーザー | 1064nm 赤外線レーザー | 金属への直接刻印が可能(LASER TREE製 2W) | 公式 |
| 筐体(仮) | 自作XYテーブル | 第1〜6回の要素検証に流用 | 製作記事 |
| 筐体(本番) | アルミフレーム(自設計) | 第7回以降。板金+リニアガイドで剛性強化 | — |
※一部のリンクはアフィリエイトプログラムを利用しています。
よくある質問(FAQ)
Q自作CNCにArduinoとGRBLを使うメリットは何ですか?
AArduinoは安価で入手しやすく、GRBLはCNC専用のオープンソースファームウェアです。組み合わせることで数千円からCNCコントローラーを構築でき、CNCjsなどのGUIソフトで直感的に操作できます。設定値もシリアルコマンドで変更できるためDIYに最適な構成です。
QGRBLのALARM:8エラーとはどういうエラーですか?
Aホーミング動作中にリミットスイッチが正しく反応しない場合に発生するエラーです。配線ミス・GRBLのバージョン差によるピン割り当ての違い・ホーミング方向の設定ミスが主な原因です。第6回で動作原理を4ステップで解説しています。
QCNCjsで「Check Door」エラーが突然出るのはなぜ?
AGコードファイルにBOM付きUTF-8や日本語コメントが混入し、GRBLが認識できない文字列を受け取ることで発生するケースがあります。第7回でファイルの文字コード確認と対処法を解説しています。
QZ軸リミットが常時ON(Pn:Z)になってしまいます。
AGRBLのバージョンによってCNCシールドのD11とD12のピン割り当てが逆転する問題が知られています。GRBLのバージョンに合わせて配線を変更するか、バージョンを合わせることで解決します。第5回で詳しく説明しています。
Q自作CNCで金属にレーザー刻印できますか?
A1064nm赤外線レーザーを使用すれば金属への直接刻印が可能です。GRBLのレーザーモード($32=1)を有効にしたうえで、LightBurnでパワーと速度のテストを行い素材ごとに最適条件を見つけることが重要です。第8回で具体的な手順を紹介しています。
Q設計データや部品リストは公開されていますか?
Aはい。第10回で、自作CNCの全部品リスト・2D図面・3D図面・結線図・3D-PDF組立図の配布情報を掲載しています。
おわりに
寄せ集めのXYテーブルからスタートしたDIY CNCプロジェクトですが、一歩ずつエラーを潰していくことで、アルミフレームをベースとした本格的なレーザー刻印機として形にできました。
工作機械の自作は、ハードウェアの知識(配線やノイズ対策)とソフトウェアの仕様(GRBLや文字コード)の両面からアプローチする必要があり大変ですが、思い通りに金属へ刻印できた瞬間の達成感は格別です。
今後も検証結果や設計データの更新など、コンテンツを随時追加していきます。にんじんでした🥕
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アプリ化まで、実務で役立つ自動化ノウハウが満載です。
シリーズを読む


コメント