GRBL Pin Map Diagram


วิธีตั้งค่า GRBL สำหรับ Mini CNC ฉบับมือใหม่

GRBL คืออะไร?

GRBL (อ่านว่า "เกอร์เบิล") คือ ซอฟต์แวร์ควบคุมเครื่อง CNC แบบ Open Source ที่ทำงานบนบอร์ด Arduino โดยเป็นที่นิยมอย่างมากในวงการ Maker และผู้ใช้ Mini CNC ทั่วโลก เนื่องจากมีประสิทธิภาพสูง ใช้ทรัพยากรน้อย และติดตั้งง่าย GRBL สามารถควบคุมเครื่อง CNC ได้แบบ Real-time ด้วยความถี่สูงถึง 30kHz โดยใช้ไม่โครคอนโทรลเลอร์ Atmega328p บน Arduino Uno หรือ Arduino Nano

GRBL ถูกพัฒนาโดย Simen Svale Skogsrud ในปี 2009 และต่อมาโดย Sungeun "Sonny" Jeon Ph.D. (@chamnit) ปัจจุบัน GRBL ยุติการพัฒนาแล้ว แต่ก็ยังเสถียรมาก และมีตัวเลือกใหม่อย่าง grblHAL และ FluidNC ที่ต่อยอดจาก GRBL

อุปกรณ์ที่ต้องเตรียม

  1. บอร์ด Arduino — แนะนำ Arduino Uno R3 หรือ Arduino Nano (ใช้ชิป Atmega328p)
  2. CNC Shield v3 — บอร์ดขยายสำหรับต่อกับ Stepper Driver โดยเฉพาะ
  3. Stepper Driver — เช่น A4988, DRV8825, หรือ TMC2209 (ใช้ 3 ตัว สำหรับ X, Y, Z)
  4. Stepper Motor — NEMA 17 หรือตามขนาดเครื่องของคุณ
  5. แหล่งจ่ายไฟ — 12V-24V ขึ้นอยู่กับ Stepper Driver ที่ใช้
  6. สาย USB — สำหรับเชื่อมต่อ Arduino กับคอมพิวเตอร์

Pin Map ของ GRBL

การต่อวงจรเป็นสิ่งสำคัญที่สุด GRBI มี Pin Map ที่ตายตัว ดังนี้:

  • X-Step (Digital Pin 2) — สัญญาณ STEP สำหรับแกน X
  • X-Direction (Digital Pin 5) — สัญญาณ DIRECTION สำหรับแกน X
  • Y-Step (Digital Pin 3) — สัญญาณ STEP สำหรับแกน Y
  • Y-Direction (Digital Pin 6) — สัญญาณ DIRECTION สำหรับแกน Y
  • Z-Step (Digital Pin 4) — สัญญาณ STEP สำหรับแกน Z
  • Z-Direction (Digital Pin 7) — สัญญาณ DIRECTION สำหรับแกน Z
  • Spindle Enable (Digital Pin 12) — ควบคุมเปิด/ปิดสปินเดิล (Relay)
  • Spindle PWM (Digital Pin 11) — ควบคุมความเร็วสปินเดิล (0-5V PWM)
  • Limit X (Digital Pin 9) — Limit Switch แกน X
  • Limit Y (Digital Pin 10) — Limit Switch แกน Y
  • Limit Z (Digital Pin 11/12) — Limit Switch แกน Z (ขึ้นกับเวอร์ชัน)
  • Coolant Enable (Digital Pin 13) — ควบคุมปั๊มน้ำหล่อเย็น
  • Probe (Digital Pin A5) — สำหรับ Z-Probe (วัดความสูงวัสดุ)

💡 หมายเหตุ: ถ้าใช้ CNC Shield v3 การต่อสายจะง่ายมาก เพราะ Shield จะจัดPin Map ให้อัตโนมัติ เพียงเสียบ Stepper Driver ลงใน Socket X, Y, Z แล้วต่อ Stepper Motor เข้ากับขั้วต่อ

วิธีติดตั้ง GRBL บน Arduino

  1. ดาวน์โหลด GRBL — ไปที่ https://github.com/gnea/grbl แล้วคลิก Code → Download ZIP
  2. ติดตั้ง Library — เปิด Arduino IDE → Sketch → Include Library → Add .ZIP Library เลือกไฟล์ grbl-master.zip
  3. อัปโหลด — ไปที่ File → Examples → grbl → grblUpload คลิก Upload (ใช้เวลาประมาณ 5-10 วินาที)

หรืออีกวิธีง่ายๆ สำหรับมือใหม่: ใช้ XLoader หรือ Arduino Builder โหลดไฟล์ HEX โดยตรง โดยไม่ต้องเปิด Arduino IDE

การตั้งค่า GRBL ด้วย $ คําสั่ง ($ Command)

เมื่อติดตั้งเสร็จ ให้เปิดโปรแกรม G-Code Sender เช่น Candle, UGS, หรือ LaserGRBL เชื่อมต่อกับพอร์ต COM (Windows) หรือ /dev/ttyUSB0 (Linux/Mac) ที่ Baudrate 115200

จากนั้นพิมพ์ $ แล้ว Enter จะเห็นรายการตั้งค่าทั้งหมด การตั้งค่าพื้นฐานที่ต้องปรับ:

ค่าที่สำคัญสำหรับ Mini CNC (ตัวอย่าง)

$$ — แสดงการตั้งค่าทั้งหมด
$X — ยกเลิก Alarm (เมื่อเครื่อง Error)
$H — ทำ Homing (หาจุดอ้างอิง)
$0=10 — Step pulse (usec) ค่าเริ่มต้น 10
$1=25 — Step idle delay (msec) ค่าเริ่มต้น 25
$100=80.000 — X steps/mm (ปรับตามสกรูและ Stepper ของคุณ)
$101=80.000 — Y steps/mm
$102=157.750 — Z steps/mm
$110=15000.000 — X max rate (mm/min)
$111=20000.000 — Y max rate (mm/min)
$112=12000.000 — Z max rate (mm/min)
$120=800.000 — X acceleration (mm/sec²)
$121=800.000 — Y acceleration
$122=800.000 — Z acceleration
$130=600.000 — X max travel (mm) ปรับตามขนาดเครื่อง
$131=230.000 — Y max travel (mm)
$132=80.000 — Z max travel (mm)

วิธีคำนวณ Steps/mm

Steps/mm คำนวณได้จากสูตร: (Motor Step Angle × Microstep) ÷ (Pitch ของ Screw)

ตัวอย่าง: Stepper 1.8° (200 Step/รอบ) × Microstep 1/16 (DRV8825) = 3200 ÷ Pitch 5mm = 640 Steps/mm

การทดสอบ GRBL ครั้งแรก

  1. เปิด G-Code Sender → เชื่อมต่อพอร์ต
  2. พิมพ์ $H เพื่อทำ Homing (ถ้ามี Limit Switch)
  3. พิมพ์ G91G0 X10 เพื่อเลื่อนแกน X ไป 10mm
  4. พิมพ์ G91G0 Y10 เพื่อเลื่อนแกน Y
  5. พิมพ์ G91G0 Z5 เพื่อเลื่อนแกน Z ขึ้น 5mm
  6. พิมพ์ G90 เพื่อกลับมาใช้ Absolute Mode

การตั้งค่า GRBL สำหรับ Laser (ถ้าใช้ Laser Module)

$32=1 — เปิด Laser Mode (เมื่อเปิดใช้งาน M4 จะควบคุมความแรงเลเซอร์)
$30=1000 — Spindle max RPM (ใช้เป็นค่า PWM สูงสุดของเลเซอร์)

ปัญหาที่พบบ่อยและวิธีแก้

  • Error 8 (Not Idle): เครื่องกำลังทำงานอยู่ พิมพ์ ! (Hold) หรือ ~ (Resume)
  • ALARM 1 (Hard Limit): Limit Switch ถูก触发 พิมพ์ $X เพื่อ Clear Alarm แล้วเลื่อนเครื่องออกจาก Limit
  • ไม่สามารถเชื่อมต่อ Serial: ตรวจสอบพอร์ต USB, Driver CH340 (สำหรับ Arduino Clone) อาจต้องติดตั้ง Driver ก่อน
  • เครื่องสั่นหรือเดินไม่เรียบ: ลด Acceleration ($120-$122) หรือลด Max Rate ($110-$112)
  • แกน Z ไม่ลง: ตรวจสอบการต่อสาย Stepper และทิศทางของ DIR Pin ถ้ากลับทิศให้เปลี่ยนค่า $3 (Direction Invert Mask)

GRBL vs GRBLHAL vs FluidNC เลือกอะไรดี?

สำหรับมือใหม่ที่ใช้ Arduino Uno แนะนำ GRBL ปกติ เพราะติดตั้งง่าย มีข้อมูลเยอะ แต่ถ้าต้องการฟีเจอร์เพิ่ม เช่น WiFi, SD Card, I2C แนะนำ grblHAL หรือ FluidNC ที่รองรับ ESP32

สรุป

การตั้งค่า GRBL สำหรับ Mini CNC ไม่ยากเลย เพียงคุณมี Arduino, CNC Shield, Stepper Driver และ Stepper Motor ก็สามารถเริ่มต้นใช้งานได้ทันที ขั้นตอนสำคัญคือการคำนวณ Steps/mm ให้ถูกต้อง และการตั้งค่า Acceleration และ Max Rate ให้เหมาะกับเครื่องของคุณ หากมีปัญหาสามารถสอบถามเพิ่มเติมได้ที่ PanmaneeCNC เสมอครับ 😊