
راهنمای جامع GRBL: از معرفی تا نصب، پیکربندی و راهاندازی CNC
این پست برای کسانی نوشته شده که میخواهند با GRBL روی آردوینو (Uno/Nano) یک CNC واقعی راهاندازی کنند — شامل توضیح معماری داخلی GRBL، پایههای G-code، نحوهی نصب و فلش کردن روی برد، پیکربندی پارامترها (Steps/mm، حداکثر سرعت، شتاب و …)، فعالسازی حالت dual‑motor (دو موتور روی یک محور) و نکات عیبیابی و تنظیم نهایی.
فهرست مطالب
- مقدمه — GRBL چیست و چرا انتخاب خوبی است
- معماری GRBL به زبان ساده (Parser → Planner → Stepper)
- G-code؛ چه چیزهایی باید بلد باشی
- نصب و فلش کردن GRBL روی Arduino Uno / Nano (گامبهگام)
- فعالسازی و پیکربندی Dual‑Axis (محور با 2 موتور)
- محاسبهی
Steps/mm
با مثالهای واقعی (تسمه و لیداسکرو) - تنظیمات کلیدی GRBL (
$
‑commands) و مقادیر پیشنهادی برای شروع - راهاندازی و اتصال به کنترلر (UGS, Candle و مانیتور سریال) — گامبهگام
- همینگ (Homing) و خودِ‑اسکوار کردن گانتری (Self‑Square) برای محور دوبل
- عیبیابی رایج و چکلیست نهایی
- منابع و مراجع
1. مقدمه — GRBL چیست و چرا انتخاب خوبی است
GRBL یک فریمور متنباز، سبک و بهینه است که روی میکروکنترلرهای AVRِ خانواده ATmega328P (مثل Arduino Uno/Nano) اجرا میشود و وظیفهاش تبدیل دستورات G‑code به پالسهای کنترل استپ‑/دایرکشن برای درایورهای استپر است. GRBL برای ماشینهای CNC کوچک و متوسط، دستگاههای لیزر و کاربردهای آموزشی عالی است: کمهزینه، ساده و با جامعهٔ بزرگی از کاربران و ابزاری که با آن هماهنگ است.
نکته: نسخهی رسمی که روی GitHub مرجع (gnea/grbl) قرار دارد، ویژگیهای مهمی دارد از جمله مدیریت شتاب (acceleration management) و الگوریتم look‑ahead برای حرکتهای نرم و گوشهزنی بهتر. این مورد در مستندات پروژه درج شده است.
2. معماری GRBL به زبان ساده
وقتی یک بلوک G-code به GRBL فرستاده میشود، مراحل پردازش به این ترتیب انجام میگیرد:
-
ورودی سریال (Serial Input / Buffer):
GRBL دادهها را از USB یا پورت سریال دریافت میکند و آنها را به بلوکهای کامل G-code تبدیل میکند. -
تجزیهگر G-code (G-code Parser):
هر بلوک کامل بررسی میشود تا نوع دستور مشخص شود (مثل حرکت خطی، حرکت دایرهای، یا تنظیمات). -
برنامهریز مسیر (Trajectory Planner):
حرکتها به بخشهای کوچکتر تقسیم میشوند. GRBL با استفاده از قابلیت look-ahead (تا حدود ۱۸ بلوک در نسخههای 8 بیتی) سرعت، شتاب و نحوه عبور از گوشهها را محاسبه میکند تا حرکت روان و یکنواخت باشد. -
تولید پالس استپ (Stepper Segmenter / Step Generator):
در این مرحله دستورات نهایی به صورت پالسهای step و direction تولید میشوند و به پایههای مربوط به موتورها ارسال میگردند. -
کنترل زمانواقعی (Realtime Monitor / Overrides):
GRBL از دستورهای سریع و همزمان پشتیبانی میکند. برای مثال:-
!
برای توقف موقت (feed-hold) -
~
برای ادامه حرکت (resume) -
?
برای گرفتن وضعیت دستگاه
همچنین امکان تغییر سرعت یا نرخ تغذیه (feed/override) در حین کار وجود دارد.
-
این ساختار ماژولار باعث میشود GRBL حتی روی سختافزارهای ساده هم بتواند مسیرهای پیچیده را بدون توقف ناگهانی و با حرکتی روان اجرا کند. بخش planner نقش کلیدی دارد، چون با «نگاه به جلو» مانع از گیرکردن یا ایست ناگهانی حرکت میشود.
3. G-code؛ چه چیزهایی باید بلد باشی
در عمل، شما معمولاً خودتان G-code را خط به خط نمینویسید. نرمافزارهای CAD/CAM (مثل Fusion 360، Aspire یا ArtCAM) مدل سهبعدی یا طرح دوبعدی شما را گرفته و بر اساس ابزار، مسیر برش و تنظیمات ماشین، بهطور خودکار G-code مناسب تولید میکنند. با این حال، آشنایی با دستورات پایهای G-code بسیار مهم است؛ چون به شما کمک میکند خروجی نرمافزار را بخوانید، منطق حرکات ماشین را بفهمید و در صورت نیاز تغییرات یا رفع اشکال انجام دهید.
دستورات حرکتی (Motion)
-
G0 — حرکت سریع (Rapid Move):
جابهجایی سریع بدون توجه به مسیر دقیق. در GRBL معمولاً مثل یک G1 با سرعت بالا اجرا میشود. -
G1 — حرکت خطی (Linear Move):
حرکت مستقیم با سرعت مشخصشده (بر اساس پارامتر F). -
G2 / G3 — حرکت دایرهای (Arc Move):
حرکت منحنی به صورت ساعتگرد (CW) یا پادساعتگرد (CCW). مختصات مرکز قوس با پارامترهایI
وJ
تعیین میشوند.
سیستم مختصات (Coordinate System)
-
G90 — مختصات مطلق (Absolute):
همه مقادیر بر اساس مبدا مختصات ماشین تفسیر میشوند. -
G91 — مختصات نسبی (Incremental):
همه حرکات نسبت به موقعیت فعلی محاسبه میشوند.
واحدها (Units)
-
G20 — اینچ
-
G21 — میلیمتر
در GRBL معمولاً حالت پیشفرض میلیمتر (G21) است.
کنترل اسپیندل (Spindle Control)
-
M3 — روشن شدن اسپیندل در جهت ساعتگرد (CW)
-
M4 — روشن شدن اسپیندل در جهت پادساعتگرد (CCW)
-
M5 — خاموش کردن اسپیندل
پارامترهای اصلی
-
F — نرخ پیشروی (Feed Rate):
سرعت حرکت ابزار هنگام برش؛ معمولاً بر حسب mm/min در GRBL. -
S — سرعت اسپیندل (Spindle Speed):
مقدار RPM (دور بر دقیقه) که اسپیندل باید بچرخد.
ساختار بلوک G-code
هر خط در G-code یک بلوک محسوب میشود و از تعدادی “کلمه آدرس” تشکیل شده است:
-
مثال:
یعنی: حرکت خطی (G1) به مختصات X=10، Y=5 با سرعت 300 mm/min.
-
کلمات رایج:
G
(نوع حرکت)،X/Y/Z
(مختصات محورها)،F
(سرعت برش)،S
(دور اسپیندل). -
امکان نوشتن کامنت نیز وجود دارد؛ بسته به پستپروسسور معمولاً با پرانتز
( )
یا سمیکالن;
نوشته میشوند.
نکته مهم
اکثر نرمافزارهای CAM (مثل Fusion 360 یا Aspire) خروجی G-code را متناسب با ماشین و Post-Processor مخصوص آن تولید میکنند. بنابراین کافی است اصول بالا را بدانی تا بتوانی کد خروجی را بخوانی، رفع اشکال کنی یا در صورت نیاز دستی ویرایشش کنی.
4. نصب و فلش کردن GRBL روی Arduino Uno / Nano (گامبهگام)
نکتهٔ مهم: GRBL در قالب یک پوشه سورس عرضه میشود که باید آن را در مسیر
Arduino/libraries/
قرار دهی تا مثالgrblUpload
در منوی Examples ظاهر شود (روشهای دیگر مثل PlatformIO هم وجود دارد).
روش با Arduino IDE (سریعترین راه برای اکثر افراد)
- نرمافزار Arduino IDE (نسخه 1.8.x یا 2.x) را نصب کن. نسخهی 1.8.x معمولاً سازگاری راحتتری با آموزشهای قدیمی دارد ولی IDE 2.x هم کار میکند.
- مخزن GRBL را از GitHub دانلود کن (یا بهصورت ZIP دانلود و اکسترکت کن). داخل پوشهی دانلودشده یک پوشهی
grbl
پیدا میکنی. - پوشهی
grbl
را داخل فولدرDocuments/Arduino/libraries/
(یا sketchbook libraries) کپی کن. - Arduino IDE را باز کن → منوی
File
→Examples
→grbl
→grblUpload
(یاgrblUpload.ino
). این اسکچِ بارگذاری است. - در Tools → Board، بردت را انتخاب کن (
Arduino/Genuino Uno
برای Uno؛ برای Nano در برخی نسخهها بایدATmega328P (Old Bootloader)
را انتخاب کنی اگر با خطا روبرو شدی). - پورت COM درست را انتخاب کن.
- Upload را بزن — IDE کد را کامپایل و روی آردوینو فلش میکند. اگر ارور پیدا شد، پیام خطا در کنسول IDE را بخوان و معمولاً مشکل از مسیر کتابخانه یا انتخاب برد است.
روش با PlatformIO (برای کسانی که با VSCode کار میکنند)
- VSCode + PlatformIO را نصب کن.
- پروژهٔ GRBL را در PlatformIO باز کن (فایل
platformio.ini
باید board را تعیین کند؛ برای Uno ازboard = uno
استفاده کن). - Build و Upload را از PlatformIO اجرا کن.
مرجع: مراحل و مثالهای نصب GRBL و
grblUpload
در مستندات و جامعهی کاربری منتشر شده است (مراجع در بخش منابع آمده).
5. فعالسازی و پیکربندی Dual‑Axis (محور با 2 موتور)
در نسخهی v1.1h از GRBL قابلیتی اختیاری اضافه شد که امکان قرینهسازی حرکت یک محور (Mirror) و همچنین استفاده از یک موتور دوم با نام A-axis یا motor A را فراهم میکند. این ویژگی بیشتر در ماشینهایی کاربرد دارد که برای حرکت یک محور از دو موتور استفاده میکنند (مثلاً محور Y با دو موتور). در این حالت هر موتور میتواند جداگانه عملیات Homing را انجام دهد و به این ترتیب هر دو طرف محور با دقت یکسان تنظیم و همزمان حرکت میکنند.
گزینههای سختافزاری پشتیبانیشده در سورس
GRBL دو پیکربندی سختافزاری از پیش تعریفشده دارد که انتخاب آنها در config.h
امکانپذیر است:
- پیکربندی Protoneer CNC Shield v3.51 → پینهای
A.STP
وA.DIR
روی آنالوگ A4 و A3 تعریف شدهاند. - پیکربندی CNC Shield Clone v3.0 → پینها روی D12 و D13 تعریف شدهاند.
اگر از شیلد استفاده نمیکنی ، راحتترین کار این است که از همان پینهایی که پروژه پیشفرض در نظر گرفته استفاده کنی (A3/A4 یا D12/D13) و موتور/درایور دوم را به آنها وصل کنی. نیازی به تغییر دستی پینها در cpu_map.h
نیست مگر بخواهی از پینهای دیگری استفاده کنی.
فعالسازی در سورس
- در
config.h
خطِ مربوطه را از کامنت خارج کن:#define ENABLE_DUAL_AXIS
. - مشخص کن محور مورد نظر
X_AXIS
است یاY_AXIS
(برای من چون Y دو موتور داره باید بنویسم:#define DUAL_AXIS_SELECT Y_AXIS
). - یکی از دو پیکربندی کانفیگ شیلد را فعال کن (معمولاً
DUAL_AXIS_CONFIG_PROTONEER_V3_51
برای A3/A4). - سورس را کامپایل و آپلود کن.
سیمبندی محدودیتها و نکات مهم
- برای self‑squaring معمولاً دو limit switch (یکی برای هر سمت Y) نیاز داری. GRBL از یک پین محدود (
Z_LIMIT
) بهعنوان «اشتراک» برای دومین limit استفاده میکند — در عمل وقتی wiring را درست انجام دهی، GRBL میتواند هر سمت را جداگانه حس کند. (در مستندات و بحثهای انجمنها مثالهایی برای سری/مشترک کردن سنسورها وجود دارد — در قسمت منابع لینکها هست.) - بعد از homing، اگر میخواهی گانتری همیشه در حالت اسکوار بماند مقدار
$1
را روی255
بگذار تا استپرها همیشه enabled بمانند (درایورها تحتولتاژ نگه داشته شوند) تا با دست محور جابهجا نشود. - حتماً قبل از گذاشتن بار واقعی، روی سرعت پایین homing را تست کن.
6. محاسبهی Steps/mm با مثالهای واقعی
یکی از مهمترین پارامترهایی که باید در تنظیمات GRBL بهدقت مشخص شود، مقدار Steps per millimeter است. این مقدار تعیین میکند موتور برای حرکت دادن محور بهاندازهی ۱ میلیمتر چند پالس دریافت کند. اگر این مقدار درست نباشد، ابعاد برش یا حرکتها دقیق از آب درنمیآیند.
فرمول کلی
Steps_per_mm = (Motor_steps_per_rev × Microstepping) / (Travel_per_rev)
اجزای فرمول
-
Motor_steps_per_rev → تعداد پلههای کامل موتور در هر دور.
(برای استپرهای معمولی ۱.۸ درجه، مقدار = 200) -
Microstepping → ضریب میکرواستپ انتخابشده روی درایور.
(مثلاً 1/16 → مقدار 16، یا 1/32 → مقدار 32) -
Travel_per_rev → مسافتی که محور در ازای یک دور کامل موتور جابهجا میشود:
-
برای لید اسکرو → برابر با گام پیچ (Lead). مثلاً اگر پیچ در هر دور 8 میلیمتر جابهجا شود، مقدار = 8.
-
برای تسمه و پولی → محاسبه میشود از:
Travel_per_rev = pulley_teeth × belt_pitch
-
مثال محور X/Y (با تسمه T5 و پولی 15 دندانه)
-
Motor full steps = 200
-
Microstepping = 32
-
Pulley teeth = 15
-
Belt pitch = 5 mm
محاسبه:
Travel_per_rev = 15 × 5 = 75 mm
Steps/mm = (200 × 32) / 75
Steps/mm = 6400 / 75
Steps/mm ≈ 85.33 steps/mm
مثال محور Z (با لید اسکرو گام 8 میلیمتر)
-
Motor full steps = 200
-
Microstepping = 32
-
Lead screw pitch = 8 mm
محاسبه:
Travel_per_rev = 8
Steps/mm = (200 × 32) / 8
Steps/mm = 6400 / 8
Steps/mm = 800 steps/mm
تنظیمات اولیه در GRBL
-
$100 = 85.33 (X steps/mm)
-
$101 = 85.33 (Y steps/mm)
-
$102 = 800 (Z steps/mm)
کالیبراسیون عملی Steps/mm
محاسبات بالا مقدار تئوری Steps/mm را به شما میدهند. اما برای رسیدن به دقت واقعی باید آن را در عمل کالیبره کنید:
-
روی دستگاه یک خطکش یا کولیس دیجیتال قرار بده.
-
در نرمافزار، به محور مورد نظر دستور حرکت مشخصی بده (مثلاً 100 میلیمتر).
-
با خطکش یا کولیس مقدار حرکت واقعی را اندازهگیری کن.
-
اگر عدد واقعی با مقدار دستور دادهشده متفاوت بود، از فرمول اصلاح استفاده کن:
New_Steps = (Old_Steps × Commanded_Distance) / Actual_Distance
-
Old_Steps → مقداری که در تنظیمات GRBL گذاشتی.
-
Commanded_Distance → مسافتی که دستور دادی (مثلاً 100 mm).
-
Actual_Distance → مسافتی که واقعاً حرکت کرد.
-
-
مقدار بهدستآمده (New_Steps) را به جای قبلی در تنظیمات GRBL وارد کن (با دستور $100، $101 یا $102 بسته به محور).
-
دوباره تست کن تا مطمئن شوی خطا به حداقل رسیده است.
با این روش، اول یک مقدار تقریبی و محاسباتی وارد میکنی و بعد با تست عملی آن را دقیق میسازی.
نکتهٔ عملی: همیشه بعد از محاسبهٔ تئوری، با یک ابزار دقیق (کالیبر، کولیس یا دیال ایندیکاتور) حرکت واقعی را اندازهگیری و مقادیر را کالیبره کن.
7. تنظیمات کلیدی GRBL ($
‑commands) و مقادیر پیشنهادی برای شروع
در GRBL با فرمت $xxx=value
پارامترها ذخیره میشوند. چند پارامتر مهم:
$0
— Step pulse time (مقدار پیشفرض: ~10 میکروثانیه). اگر درایورت توانایی تشخیص پالس کوتاه را ندارد، این مقدار را افزایش بده.$1
— Step idle delay (ms). با$1=255
میتوانی استپرها را همیشه enabled نگه داری تا گانتری قفل بماند.$2
— Step port invert (mask) — برای معکوسسازی پالس استپ اگر درایور نیاز داشت.$3
— Direction port invert (mask) — برای معکوس کردن جهت هر محور.$11
— Junction deviation (mm) — پارامتر جدیدی برای کنترل نحوهی گوشهزنی (معمولی 0.01 یا مقدار پیشنهادی کارگاه).$20
— Soft limits enable (0/1).$21
— Hard limits enable (0/1).$22
— Homing cycle enable (0/1).
مجموعهٔ نمونه (مقادیر پیشنهادی برای شروع، بر اساس سختافزار سبک تا متوسط)
$100=64 (X steps/mm)
$101=64 (Y steps/mm)
$102=800 (Z steps/mm)
$110=3000 (X max rate mm/min) → ≈50 mm/s
$111=3000 (Y max rate mm/min)
$112=500 (Z max rate mm/min)
$120=200 (X accel mm/s^2)
$121=200 (Y accel mm/s^2)
$122=50 (Z accel mm/s^2)
$130=300 (X travel mm)
$131=300 (Y travel mm)
$132=100 (Z travel mm)
$0=10 (step pulse µs)
$1=255 (keep steppers enabled)
$22=1 (enable homing)
این مقادیر نقطه آغاز خوبیاند؛ بسته به وزن محور، درایور، جریان موتور و گیربکس باید کاهش یا افزایش یابند.
در GRBL سرعت حرکت هر محور بهصورت جداگانه در تنظیمات ذخیره میشود (پارامترهای $110
, $111
, $112
برای سرعت بیشینهی محورهای X, Y, Z). این مقادیر محدودیت سختافزاری ماشین رو مشخص میکنن: یعنی حداکثر سرعتی که موتور و مکانیک میتونن بدون از دست دادن استپ حرکت کنن.
اما سرعت پیشروی واقعی (Feed Rate) در زمان اجرای برنامه از طریق G-code تعیین میشه (کلمهی F
). نرمافزار CAM وقتی برای چوب، آلومینیوم یا آکریلیک خروجی میگیره، بر اساس جنس متریال و ابزار برشی مقدار F
مناسب رو توی فایل مینویسه.
پس:
-
مقادیر داخل GRBL مثل سقف سرعت هستن (ماشین نمیتونه سریعتر از اون بره).
-
مقدار
F
داخل G-code مثل فرمان رانندهست و بسته به جنس متریال و شرایط برش تغییر میکنه.
مثال:
-
برای چوب نرم شاید
F=1500 mm/min
انتخاب بشه. -
برای آلومینیوم همون ابزار نیاز به
F=200–300 mm/min
داشته باشه. -
برای محور Z (حرکت عمودی) معمولاً سرعت خیلی کمتر تعریف میشه چون بار بیشتری روی ابزار هست.
🔑 نتیجه: سرعت محورها بهطور ثابت یک بار در GRBL تعریف میشه (حداکثر مجاز)، اما هنگام کار با مواد مختلف باید سرعت پیشروی (F
) رو در G-code تغییر بدی؛ این کار رو نرمافزار CAM برات انجام میده، نه اینکه دستی توی GRBL عوض کنی.
8. راهاندازی و اتصال به کنترلر — Universal Gcode Sender (UGS) بهعنوان مثال
نصب و اتصال UGS
- دانلود UGS: از سایت رسمی یا GitHub آخرین نسخهٔ UGS Platform یا UGS Classic را بگیر. نسخه Platform امکانات بیشتری مثل تب کنسول و نمایشگر مسیر دارد.
- نصب Java (در صورت نیاز): برخی نسخهها نیاز به Java Runtime Environment دارند.
- اتصال: آردوینو را با USB وصل کن. در UGS پورت COM مناسب را انتخاب و Baud rate را روی 115200 قرار بده. سپس روی Connect کلیک کن.
امکانات کلیدی UGS
- Console: در این تب میتوانی دستورات GRBL را مستقیم وارد کنی (مثلاً
$$
برای دیدن همه تنظیمات). - Machine Status: نمایش موقعیت فعلی، حالت محورها، وضعیت limit switch ها، سرعت feed و غیره.
- Commands & Overrides: دکمههای سریع برای Reset، Unlock (
$X
)، Homing ($H
)، و تغییر لحظهای feed یا spindle override. - Jog Controller: ابزار گرافیکی برای حرکت دادن دستی محورها؛ میتوانی اندازهٔ گام و سرعت را تعیین کنی.
- Visualize: در UGS Platform، فایل G-code را بارگذاری و مسیر حرکتی را قبل از اجرا روی صفحه مشاهده میکنی.
اجرای اولین تستها
- بعد از اتصال موفق، دستور
$$
را در Console بزن و مطمئن شو مقادیر تنظیمی درست هستند. - با Jog controller محورها را اندکی حرکت بده و تأیید کن موتورها جهت درست حرکت میکنند.
- اگر Limit switch ها نصباند، دستور
$H
را ارسال کن تا Homing انجام شود. مراقب باش سرعت پایین انتخاب کرده باشی. - یک فایل ساده G-code مثل یک مربع کوچک (10×10mm) را بارگذاری و اجرا کن تا مطمئن شوی حرکات هماهنگ هستند.
دستورات زمانواقعی (Real-time)
~
→ ادامه اجرای برنامه (Cycle Start/Resume)!
→ توقف موقت امن (Feed Hold)?
→ نمایش سریع وضعیت (مختصات، حالت محورها)Ctrl+X
→ ریست نرمافزاری GRBL
نکات ایمنی در زمان اتصال و ارسال
- همیشه قبل از اجرای G-code واقعی، دستگاه را در هوا (بدون ابزار یا بار) تست کن.
- از کلید اضطراری (E-Stop) سختافزاری استفاده کن تا در صورت نیاز برق کل سیستم را قطع کند.
- مسیر فایل G-code را با Preview چک کن تا حرکتی خارج از محدوده تعریفشده (
$130
,$131
,$132
) انجام نشود.
9. Homing و self‑square برای محور دو موتوره
سیمکشی limit switches برای self‑squaring
روشهای مختلفی وجود دارد؛ رایجترین روش: هر سمت گانتری یک limit switch مستقل داشته باشد و GRBL آنها را بهگونهای بخواند که بتواند هر سمت را جداگانه homing کند. برخی شیلدها از پینهای A3/A4 یا D12/D13 برای موتور دوم و از پین Z برای اشتراک limit استفاده میکنند.
روند homing (تست امن)
- همه کابلها را چک کن و دستگاه را بدون بار روشن کن.
$22=1
را تنظیم کن.- در UGS
$H
را بزن و رفتار را با سرعت پایین مشاهده کن. اگر یک سمت زودتر به limit میخورد، GRBL آن را ثبت میکند و بعد از طرف دیگر نیز حرکت تکمیل میشود؛ در نهایت گانتری مربع میشود. - اگر رفتار معکوس بود، polarity یا تنظیمات
$3
(direction invert mask) را تغییر بده.
هشدار: اگر limit switches یا سیمبندی اشتباه باشد ممکن است موتور به سختافزار فشار بیاورد — سرعت و حرکت را در لحظهٔ تست بسیار پایین قرار بده.
10. عیبیابی رایج و چکلیست نهایی
موتورها حرکت نمیکنند
- پورت COM و Baud را بررسی کن (115200).
- اطمینان از فلش شدن صحیح GRBL (از طریق Serial Monitor پیغام
Grbl x.x
را ببین). - تأیید تغذیهی درایورها و تنظیم جریان (Vref).
- چک کن که EN/Enable درایورها فعال باشد (برخی پینها invert شدهاند:
$4
).
گم شدن استپ / لق زدن در حرکت سرعت بالا
- کاهش سرعت مکس (
$110/$111
) یا شتاب ($120/$121
). - افزایش
$0
(step pulse) از مقدار پیشفرض 10 µs به مقادیر بالاتر مثل 20‑100 µs در صورت نیاز. - بررسی جریان درایورها (Vref) و نصب proper cooling.
بعد از homing محور Y روان نیست / گانتری اسکوار نمیشود
- چک کن که هر دو limit switch سالم و روی پینهای صحیح وصل شده باشند.
- بررسی
$1=255
تا استپرها همواره فعال بمانند. - اگر یکی از موتورها جهت اشتباه دارد، مقادیر
$3
را بررسی کن یا سیمهای DIR را برعکس کن.
حرکات دایرهای / G2‑G3 خطا میدهد یا کیفیت پایین است
- مقدار arc tolerance / junction deviation (
$12
,$11
) را تنظیم کن. مقادیر کوچک باعث دقت بالاتر ولی محاسبات بیشتر میشوند.
11. منابع و مراجع (برای مطالعهٔ بیشتر)
- ریپو GitHub رسمی GRBL (مرجع پروژه و releaseها)
- صفحات راهنما و مقالات community مانند HowToMechatronics و Circuitist برای نحوهٔ نصب روی Arduino
- مستندات GRBL Settings و لیست دستورات برای
$
‑commands و real‑time commands - مقالات و ابزارهای آنلاین برای محاسبهٔ Steps/mm (lead screw, belt)
جمعبندی
این راهنمایِ مفصّل قدمبهقدم تلاش کرد تا همهٔ بخشهای لازم برای نصب، پیکربندی و راهاندازی یک دستگاه CNC با GRBL (شامل محور Y با دو موتور) را پوشش دهد: از معماری و طرز کار داخلی GRBL و G‑code تا جزئیات نصب روی Arduino، محاسبات Steps/mm، تنظیم $
‑ها، و راهاندازی با UGS.