Introduction: How to Make Arduino Based Mini CNC Machine a Complete Tutorial

About: Electrical engineer by profession

Hello friends previously i was uploaded a CNC machine instructables you peoples very much appreciate it some of you have many issue and confusion its obvious, reasons are little amount of knowledge is there.

So i came up here by collecting all necessary instruction to minimize your queries and questions regarding how to make and run successfully a CNC Machine.

Many makers contact and comments some common problems like

# My stepper is not working but its working in test Run

# Machine is plotting very small image

# Arduino or processing showing errors while launching codes

# Unable to make G-code files

# How to install libraries

So here i am posting a Complete guide of how to Make a CNC machine along in very simple and easy manner

If you have any question fell free to contact

Step 1: First of All See This Videos

As per Human Psychology Videos or visual content is the best and power full way to learn

So before proceed further first of all take a look to this videos so you will clear in your mind about what you going to learn in this instructables,

Information in following all videos is must to have to build a perfectly fine CNC Machine so watch then carefully.

1) Watch this to see how to assemble CNC machine, Wire & run

2) Watch this how to Connects Stepper motors with Motor shield + a test run

3) How to make G-CODE file of any image

4) How add libraries in Arduino

After watching this i hope you got understood about basic concept and working of CNC machine

Lets processed for Bill of Material

Step 2: Bill of Material ( Hardware + Software )

Following are the Hardware & Software list you want


Arduino UNO/MEGA---------------------------------------------Qty---1

L293D Motor shield-----------------------------------------------Qty---1

Mini Servo Motor--------------------------------------------------Qty---1

OLd scrap DVD Drives-----------------------------------------Qty---2

50MM long bolts with nut and washer------------------------Qty---8

A pen----------------------------------------------------------------Qty---1

Some hardwares & tools----------------------------------------Qty---1lot


  1. Arduino IDE (Version 1.6.3) (
  2. Processing IDE (Version 3.0.2) (
  3. Inkscape (version 0.48.5) (

Go to link to download the particular software select software pack according to you system

**NOTE:- Inkscape version must be 0.48.5 only other wise gcode extension will not work.

Step 3: Role of Hardware & Software in This Machine

It is good to know role of each component and software in CNC machine


Arduino is basically work as a brain of CNC Machine a CNC code uploded to arduino so that when Gcode stream to arduino Arduino commands motor shield to run stepper motors.

2) L293D Motor shield

This is dedicated shield to control verities of motor with arduino here this shield control two stepper motor(x-axis & y-axis) and one servo motor, read this for detail technical knowledge.

3) Servo motor

Basically this motor is used here just to UP/DOWN pen servo is connected with motor shield

4) Arduino IDE

This is used to upload code to arduino

5) Processing IDE

This is used to stram G-CODE to arduino

6) Inkscape

This is used to make G-CODE file of any image

Step 4: Assembling the Machine

How to assemble machine ?

I hope you have seen videos and pic uploaded here so you have idea about how to assemble machine so I am not going in depth of it

Just want to highlight some key point

Make sure your machine became vibration free like tightly mount axis on each other

Here I used DVD drive shutter opening mechanism to do pen up/down with the help of servo motor, if you don’t want to do much complication simple tie the pen with servo motor shaft and your purpose get solved

Step 5: Wiring Drawing

Do component
wiring accordingly shown in images,

Do cross check power polarity once before powering the components

Step 6: Programming Arduino

Now your machine is ready its time to give life to you machine

So we need to program arduino

Here we are using L293D Motor shield, so it need to add some library (AFMOTOR LIBRARY) to arduino IDE Software

so first download & upload this library to Arduino IDE to know how to add library watch video number 4

Then upload this CNC Code to arduino

After successfully compiling and uploading your arduino programming part is over now move towards G-CODE

Step 7: Preparing G-CODE

G-code is the format of file which your machine can understand and work acordingly

Suppose you have to draw some text with machine so you need its Gcode so what you do

Inkscape software provides you a facility to convert image or text into G-code

how to convert file in G-code watch video number 3

But when you download Inkscape software from net there is not a G-CODE save as option so you need to add a library Extension in inkscape for this download the following Makerboat g-code unicorn extension

How to add this extension to Inkscape

1) Unzip the file

2) Open the folder by double click

3) Copy all the sub folders & files

4) Right click to the inkscape icon from desktop

5) Go to Properties

6) Go to open file location

7) Open "SHARE" folder

5) Open "EXTENSION" folder

6) Past here all that file

7) its done

Step 8: Processing IDE

Our arduino is ready our machine is ready and our g-code is also ready to print

So we need something which can transmit g-code to Arduino, so here we have Processing GCTRL program

Download GTRL Code from below link

After downloading the GCTRL Code unzip the folder load the gctrl code to processing and press play button

a new window open from this window you can select your communication port,

By pressing "G" a browser is open select your g-code file and upload it

as soon as you upload the file Machine start drawing

Here is some ready made g-code file is attached

Step 9:

Thanks for your attention friends

I hope i cover every point of how to make CNC machine

hope you have appreciate this if you are trying to make this machine have a good luck friend

If you stuck anywhere in between feel free to contact i will surely help out my level best

If you have some new idea to improve any thing in this please most welcome you can share with us.

Thanks & bye

subscribe our Youtube channel

Arduino Contest 2016

Participated in the
Arduino Contest 2016