A low-cost, open-source CNC router for woodworking, powered by Arduino Uno and GRBL firmware. Designed for cutting, engraving, and prototyping on wood, MDF, and acrylic.
Source: hackaday.com
- Features
- Hardware Requirements
- Installation
- Hardware Setup
- Usage
- Folder Structure
- Contributing
- License
- Acknowledgments
- GRBL 1.1 Firmware: High-precision motion control with acceleration management.
- Spindle Control: PWM-driven DC spindle (775 motor) with cooling fan.
- NEMA 17 Steppers: 1.8° step angle with A4988 drivers.
- Limit Switches: Auto-homing and safe operation.
- G-code Support: Compatible with industry-standard CAM software.
- Modular Design: Easily upgradeable frame (wood/aluminum).
Component | Specification |
---|---|
Controller | Arduino Uno + CNC Shield V3 |
Stepper Motors | NEMA 17 (1.7A, 12V) |
Spindle | 775 DC Motor (10,000 RPM) |
Power Supply | 24V 10A Switching PSU |
Linear Motion | MGN12 Rails + T8 Lead Screws |
Frame | Plywood/MDF or Aluminum Extrusion |
- Arduino IDE (v2.x or later)
- CNC Shield V3 (GRBL-compatible)
- GRBL 1.1 Library
-
Upload GRBL to Arduino:
# Clone this repository git clone https://github.com/yourusername/Arduino-CNC-Wood-Router.git
- In Arduino IDE:
File > Examples > grbl > grblUpload
.
- In Arduino IDE:
-
Upload Custom Code:
- Open
src/cnc_controller/cnc_controller.ino
. - Install required libraries (if any).
- Compile and upload to Arduino.
- Open
-
Configure GRBL:
- Adjust steps/mm and acceleration in
config.h
. - Upload settings via
$$
commands in CNC software.
- Adjust steps/mm and acceleration in
-
CNC Shield Setup:
- Connect steppers to X, Y, Z drivers (A4988/TMC2208).
- Wire limit switches to X-, Y-, Z- pins.
- Attach spindle PWM to Pin 11 and enable to Pin 12.
-
Frame Assembly:
- Follow the Assembly Guide for mechanical setup.
- Calibrate steps/mm using
test_square.gcode
.
-
Prepare G-code:
- Use Inkscape with Gcodetools or Fusion 360.
- Sample G-code:
carve_lettering.gcode
.
-
Run CNC Job:
- Open G-code in Candle or Universal G-code Sender.
- Set zero point (X/Y/Z) on your material.
- Start job with
Cycle Start
.
-
Safety Tips:
- Always wear safety glasses.
- Perform dry runs before cutting.
Contributions are welcome!
- Fork the repository.
- Create a feature branch:
git checkout -b feature/new-feature
. - Commit changes:
git commit -m 'Add feature'
. - Push to the branch:
git push origin feature/new-feature
. - Submit a pull request.
This project is licensed under the MIT License. See LICENSE for details.
- GRBL Contributors for the firmware.
- Instructables Guide for inspiration.