Introduction: DIY CNC Writing Machine Using GRBL

About: Tech Enthusiast, Engineering Student, looking to learn more each day! Unraveling the mysteries of the technical world one problem at a time.

In this project, I will show you how to easily build your own low-cost Arduino CNC Plotter Using Free and Open-Source Software!

I’ve come across a lot of tutorials explaining how to build your own CNC plotter, but not a single one that explains in detail about all the details and software required to make it happen. I had to cross-refer with a hell lot of tutorials to make this project happen. Everything including the details of the software used are mentioned in this tutorial. Thus, I wanted to share this with the society for anyone who wishes to create this Project.

Step 1: WHAT YOU’LL NEED

  • Nema 17 Stepper Motor (4-Wire) x 2
  • Arduino Uno R3
  • CNC Shield V3 For Arduino Uno
  • A4988 Stepper Motor Driver x 2
  • Threaded Rods x 2 (Sized according to your needs)
  • Plain Aluminium Rods x 2
  • Super Glue
  • 5mm Acrylic sheet
  • CNC Milling/Laser Cutter/3D Printer
  • Micro Servo

Step 2: BASIC OVERVIEW

The heart of this machine is the Arduino working

with the CNC Shield and the Stepper Motors. The stepper motors are used to actuate the X and Y axes. Two gantries each consisting of one stepper motor is made and constructed using acrylic. Each axis is controlled separately by the Arduino running the GRBL Firmware which is free and open-source. The pen attached on the Z-Axis is controlled using a servo.

Step 3: MAKING THE FRAME

Download the given Illustrator file and use your respective Mill/LaserCutter/3D Printer to make the pieces for the frame. Also cut out the supports for the Stepper motor.

Step 4: CREATING THE ADAPTER FOR THE MOTOR

I 3D modeled the adapter for the model in Fusion 360 according to the dimensions of my rod and motor shaft. The stl and fusion files are linked down below. It can also be found on my TinkerCAD profile. Download the files and 3D print the Adapter.

Click here for the TinkerCAD file.

Step 5: ASSEMBLING THE GANTRIES

  • Assemble the CNC’d Acrylic pieces to match the shown image by mounting the vertical motor and rod supports as shown in the picture. Similarly, assemble the Y gantry using the acrylic pieces.

Step 6: MOUNTING THE GANTRIES ON TOP OF EACH OTHER

Slide-in nuts on both the threaded rods and the plain rods and fix them in place. Glue a piece of acrylic spaning over both the rods.

Glue the Y axis gantry to this piece of acrylic,

Step 7: MAKING THE PEN HOLDER

CNC out the required parts and put them together to form the mechanism shown in the images. Attach the Servo in the given spot using glue.

Step 8: WIRING THE MACHINE

Connect the male jumpers in between the Driver holders to enable micro-stepping.

connect the rest of the parts as mentioned in the wiring diagram.

Power the parts using a 12v supply

Step 9: REFER THE VIDEO BY CREATTIVE BUZZ FOR CLEARER DETAILS ON THE MECHANICAL CONSTRUCTION

I've done my Mechanical construction all in reference to this video, all credits to the owner.

Step 10: SOFTWARE

Step 11: FLASHING GRBL TO THE ARDUINO

The main Software running on the Arduino that controls the Motors is GRBL. TO flash it :

  • Download the Given Library
  • Add the Library to Arduino IDE
  • Open Examples
    • Under MIGRBL
    • open grblupload
  • Upload the sketch to your arduino.

Step 12: INKSCAPE FOR SENDING THE GCODE

Download Inkscape Version 0.47 from here. and install it.

Step 13: DOWNLOADING AND ADDING THE GRBL EXTENTION TO INKSCAPE

Download the below-given files

Refer to this video for details on how to install the extension in Inkscape.

Step 14: UNIVERSAL G CODE SENDER

Download the Universal G Code sender and unzip it.

FROM HERE.

Step 15: CALIBRATING THE STEPS PER MM FOR G CODE SENDER

Open the G-Code Sender aplication.

  • Connect the Arduino to the Computer
  • Select the right communication port
  • Hit Open to establish a connection with the arduino.

  • Enter Machine Control Mode
  • Make sure your machine runs in the right directions using the x y motions.
  • give each axis a motion of 1 inch and measure the actual distance travelle

  • Move to Command tab
  • Type in $$
  • note down values of $100 and $101 for steps per mm of x and y axis respectively.
  • Use “$100 =” to adjust the steps per mm on the x axis and “$101 = ” for the y axis respectively.
  • Repeat this untill the distance travelled is exactly equal to the command given.

Step 16: Creating the GCODE FILE

  • Open Inkscape
  • Import the desired image and convert it to path
  • In Extensions, Use the MI GRBL EXTENSION.
  • Press apply and create the GCODE FILE.

  • Open File mode in GCODE Sender
  • choose the file
  • hit send

SIT BACK AND LET THE MACHINE DRAW.

CNC Contest

Participated in the
CNC Contest