How to make Mini CNC plotter machine at home using Arduino

How to make Mini CNC plotter machine at home using Arduino / DIY mini arduino CNC machine

 

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.

 

Step 2: Bill of Material ( Hardware + Software )

 

Following are the Hardware & Software list you want

Hardware

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

Software

  1. Arduino IDE (Version 1.6.3) (https://www.arduino.cc/en/Main/Software)
  2. Processing IDE (Version 3.0.2) (https://processing.org/download/?processing)
  3. Inkscape (version 0.48.5) (https://inkscape.org/en/download/)

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
1) ARDUINOArduino 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,https://cdn-learn.adafruit.com/downloads/pdf/adafruit-motor-shield.pdf  read this for detail technical knowledge.3) Servo motorBasically this motor is used here just to UP/DOWN pen servo is connected with motor shield4) Arduino IDEThis is used to upload code to arduino5) Processing IDEThis is used to stram G-CODE to arduino6) 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 

 

Download Adafruit motor shield Library

Then upload this CNC Code to arduino

Click to download arduino code

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 n

Sample G-code

sample 1

sample 2

sample 3

sample 4

How to add G-Code extension in Inkscape for MINI DIY CNC Machine

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

Click to download Makerbot unicorn G-code 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

Click to download GTRL

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

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

https://www.youtube.com/channel/UCsOFElmDD3e8l-RGC…

sandeep

Hobbiest Electrical DIY project passionate

143 thoughts on “How to make Mini CNC plotter machine at home using Arduino

  • February 11, 2017 at 11:02 am
    Permalink

    every stepper motor have four wires..of two windings so please say us how to know which winding wire in which port of motor shield

  • Pingback: How to make Mini CNC plotter machine at home using Arduino, L293 Motor shield & old DVD drive | Crazy 3g

  • February 13, 2017 at 2:27 am
    Permalink

    Very good information is given by you. Using this information any beginner can do this project.
    Thanks a lot

  • February 13, 2017 at 7:13 pm
    Permalink

    Hi thanks gor the great explanation! I did tge exact steps and now i have 2 questions! My printing size is 30mm W X 40 mm H how to adjust the printing size in GTRL , also how to set zero point on the table ?! Where the pen should be when the machine started ?!

    Thanks and I appreciate your help

    • February 15, 2017 at 10:45 pm
      Permalink

      No need to do anything in GTRL you just set the page size while making Gcode in inkscape in Document properties option

      • June 1, 2017 at 7:14 am
        Permalink

        Hello!
        How to calibrate it? And how software will find where is the pen when cnc is started?

  • February 14, 2017 at 12:32 am
    Permalink

    My stepper motor is not running on uploading gcode file……….
    What should i do please help me……

    • February 15, 2017 at 10:43 pm
      Permalink

      Have you wiring properly means wired stepper motors with shield correctly,
      Is there any software errors ?

  • February 22, 2017 at 10:40 pm
    Permalink

    Which power supply do you use for motor shield? Voltage & Ampere?

    • February 25, 2017 at 7:27 am
      Permalink

      i have used a simple mobile charger of 5V DC 1A

  • February 28, 2017 at 1:58 am
    Permalink

    Great tutorial Sandeep, but I am having trouble finding inkscape .48.5. Any suggestions or alternatives?

  • March 2, 2017 at 9:19 am
    Permalink

    I got this warning message after I save the file, then it tell me the saving is fail.
    Traceback (most recent call last):
    File “unicorn.py”, line 108, in
    e.affect()
    File “C:\Program Files\Inkscape\share\extensions\inkex.py”, line 283, in affect
    self.effect()
    File “unicorn.py”, line 102, in effect
    parser.parse()
    File “C:\Program Files\Inkscape\share\extensions\unicorn\svg_parser.py”, line 230, in parse
    self.svgWidth = self.getLength(‘width’, 354) * 0.28222
    TypeError: unsupported operand type(s) for *: ‘NoneType’ and ‘float’

  • March 4, 2017 at 10:53 am
    Permalink

    Not working processing 3.3 in new window GCTRL but not open uplode window Plz……Help?

  • March 4, 2017 at 5:03 pm
    Permalink

    Hey. Great work. Thanks for this tutorial.
    I built a cnc plotter with the adafruit motor shield v1. But there is one thing I don’t understand …
    Where or how in the cnc.ino file can I set the speed for the steppers. My machine runs very fast – I would like ro decrease the speed. But changing the setSpeed params didn’t change anything …
    Can you help me please?
    Thanks a lot and greetings from Germany.

  • March 5, 2017 at 7:13 am
    Permalink

    Hey Sandeep.
    I don’t know if my last post was sent … so once again: Thanks for your tutorial – great work.

    I built a cnc myself. Everything works fine – but I ‘d like to decrease the speed of the steppers and it doesn’t work by decreasing the „setSpeed“-params.
    I can put in any number – but nothing changes …

    The „StepperTest“ from the adafruit-library insted works fine – also decreasing the speed.

    In your cnc.ino-config you are using the „onestep“-command because you need to run two steppers simultaniously. I think this is the reason the setSpeed-command doesn’t „work“.

    Can you please help me? Thank you …

  • March 7, 2017 at 9:16 am
    Permalink

    i did all steps.But servo works one of motor is works but other one just vibrating i tried change the cables place but still vibrating.Motor is fine i tried other motor same result.

  • March 8, 2017 at 2:45 am
    Permalink

    Hey, Thank you so much for your tutorials… my question is if I don’t use DVD and I use another protocole with 2 stepper motors adn one servo motor with a stable platform and just the pen wich move in X Y and Z , tell me if is the same or almost the same ? and if that DVD is with stepper motor or what exactely? thanks before ur answer …

  • March 8, 2017 at 5:50 am
    Permalink

    My cnc drawing is not perfectly what should i do.. pls help me

  • March 12, 2017 at 11:58 pm
    Permalink

    hiii can u plz. email me (ajruslahcna1@gmail.com) i am having some problems with my UNO board

  • March 22, 2017 at 5:10 am
    Permalink

    i copy pasted the svr files still gcode files does not show up sandeep please help me with this

  • March 23, 2017 at 2:59 am
    Permalink

    I’m really impressed with your writing skills as well as with the layout on your weblog. Is this a paid theme or did you modify it yourself? Either way keep up the excellent quality writing, it’s rare to see a great blog like this one these days.

    • March 24, 2017 at 7:46 pm
      Permalink

      its a free theam in WP and thanks for acknowledge my work,
      this will motivate me alot

  • March 23, 2017 at 5:16 am
    Permalink

    I loved as much as you will receive carried out right here. The sketch is tasteful, your authored material stylish. nonetheless, you command get got an edginess over that you wish be delivering the following. unwell unquestionably come further formerly again since exactly the same nearly a lot often inside case you shield this increase.

  • March 23, 2017 at 12:52 pm
    Permalink

    Thanks for sharing your info. I truly appreciate your efforts and I will be waiting for your next post thank you once again.

  • March 23, 2017 at 7:48 pm
    Permalink

    Very nice post. I just stumbled upon your weblog and wanted to say that I have truly enjoyed browsing your blog posts. In any case I’ll be subscribing to your feed and I hope you write again very soon!

  • March 24, 2017 at 2:36 am
    Permalink

    My relatives all the time say that I am killing my time here at net, however I know I am getting know-how every day by reading thes nice articles.

  • March 24, 2017 at 10:11 am
    Permalink

    Hi! I could have sworn I’ve been to this blog before but after browsing through some of the post I realized it’s new to me. Anyhow, I’m definitely delighted I found it and I’ll be book-marking and checking back often!

  • March 24, 2017 at 12:59 pm
    Permalink

    Hi! I’ve been following your weblog for a while now and finally got the courage to go ahead and give you a shout out from Dallas Tx! Just wanted to say keep up the excellent work!

  • March 25, 2017 at 3:55 am
    Permalink

    Whoa! This blog looks exactly like my old one! It’s on a entirely different subject but it has pretty much the same page layout and design. Superb choice of colors!

  • March 25, 2017 at 7:25 pm
    Permalink

    Hi there, I do think your website might be having internet browser compatibility problems. When I look at your web site in Safari, it looks fine however when opening in IE, it’s got some overlapping issues. I just wanted to give you a quick heads up! Aside from that, wonderful blog!

    • March 26, 2017 at 7:35 am
      Permalink

      thank you very much for this i will look after it

  • March 27, 2017 at 7:16 am
    Permalink

    While varifying the gctrl code an error message generates showing “import does not name a type” marking the error on “import.processing.serial.*”. What to do with that?

  • March 27, 2017 at 11:22 am
    Permalink

    Hi there! This post could not be written any better! Looking through this article reminds me of my previous roommate! He continually kept preaching about this. I most certainly will forward this post to him. Fairly certain he’ll have a very good read. Many thanks for sharing!

  • Pingback: Tips on how to make Mini CNC plotter machine at residence utilizing Arduino, L293d Motor defend & previous DVD drive – 3D Printers For Sale | RAMPS 1.4, MEGA 2560, Megatronics, REPRAP

  • March 28, 2017 at 2:23 am
    Permalink

    This is really attention-grabbing, You are a very skilled blogger. I have joined your feed and look forward to looking for extra of your fantastic post. Additionally, I’ve shared your web site in my social networks

      • May 15, 2017 at 10:32 am
        Permalink

        Loading file…
        User selected C:\Users\Iconsys\Desktop\drawing-1.gcode
        (Scribbled version of C:\Users\Iconsys\AppData\Local\Temp\ink_ext_XXXXXX.svgRGN7ZY @ 3500.00

        after above step never to go forward gctrl and never start

  • March 28, 2017 at 9:39 am
    Permalink

    hi sandeep how r u , i hope u will help me for my project . in cnc ploter i have made changes use nema 17 small stepper for 150mm*150mm area .
    so what changes i have to make in cnc code file that adafruit motor sheild work with my machine. so kindly please help me.

    thanx

  • March 29, 2017 at 8:32 am
    Permalink

    After exploring a handful of the articles on your blog, I honestly appreciate your technique of writing a blog. I saved as a favorite it to my bookmark webpage list and will be checking back soon. Please visit my web site as well and let me know your opinion.

    • March 29, 2017 at 9:30 am
      Permalink

      and yes your site is very nice i must say keep it up this good work

  • April 1, 2017 at 3:23 pm
    Permalink

    Thank you for your great article.
    I made of your device.
    Everything is fine except delay time for Servo which causes inconsistency.
    When i disable servo in codes everything is Ok & exact, just lines from 1st polyline to next
    and when i activate servo, delay time makes, not-exactly printing.
    Would you please helping me.

  • April 4, 2017 at 12:55 am
    Permalink

    Good after noon dear how I can save file as .ino or pde help me thanks dear like your .

  • April 4, 2017 at 6:00 am
    Permalink

    Hi there! This is my first visit to your blog!
    We are a team of volunteers and starting a new initiative in a community in the same niche.
    Your blog provided us valuable information to work on. You have
    done a marvellous job!

  • April 5, 2017 at 2:11 am
    Permalink

    i made that cnc machine but having a problem motors are not working while arudino is blinking ,processing show all the reqired coridnates and all , the motor shiled is working fine as it is also glowing but motors are not working
    i have used same 5v 1amp for driver …

  • April 9, 2017 at 7:27 am
    Permalink

    the makerbot extension is not comming
    i followed your steps but it is not comming
    pls help me

  • April 10, 2017 at 11:50 am
    Permalink

    im not able to change the port name. it has a value of null and im not getting a window for changing it.

  • April 10, 2017 at 12:04 pm
    Permalink

    the gtcrl code isnt getting loaded. it says loading file but nothing after that. please help

  • April 14, 2017 at 2:46 am
    Permalink

    Hi Sir
    I have bought all material but problem is I don’t have DVD drives which you have I have drives in which all parts are same but instead of stepper there is simple motor so can I use it for cnc

    If yes please tell me in which place should I fit it’s wire in motor driver

  • April 17, 2017 at 5:28 am
    Permalink

    Hi..I followed all your steps to do the CNC machine..the problem is tht IC is getting heated up..wt to do?..please help me

  • April 17, 2017 at 7:03 am
    Permalink

    After downloading the gctrl code unzip the folder load the gctrl code to processing and press play button but not coming a new window. Pls send processing video

    • April 20, 2017 at 9:52 am
      Permalink

      your cable is not connected properly or you have not installed uart to usb driver

  • April 18, 2017 at 3:50 am
    Permalink

    I’ve installed all the necessary libraries required for the project. I’ve also installed the extension file of INKSCAPE. When I’m trying to save the processed image file with gcode extension, I’m getting the undermentioned error. Please help me out.

    Traceback (most recent call last):
    File “unicorn.py”, line 108, in
    e.affect()
    File “C:\Program Files (x86)\Inkscape\share\extensions\inkex.py”, line 283, in affect
    self.effect()
    File “unicorn.py”, line 102, in effect
    parser.parse()
    File “C:\Program Files (x86)\Inkscape\share\extensions\unicorn\svg_parser.py”, line 230, in parse
    self.svgWidth = self.getLength(‘width’, 354) * 0.28222
    TypeError: unsupported operand type(s) for *: ‘NoneType’ and ‘float’

  • April 20, 2017 at 10:01 pm
    Permalink

    I can’t transfer gcode to arduino via processing. There are errors “array out of bound” in red color. Also i can’t select port after running gctrl. Help

    • April 27, 2017 at 9:49 pm
      Permalink

      On u click run on the processing.u will see a gtrl popup window.u need to press the letter”P” in order to select the port.and then press g to stream g code file.
      In case u r having problems with the port’s then go to
      control panel
      Hardware and settings
      U will see Arduino under “ports”
      Click on the it
      Go to advanced settings change the port number
      Also click on update driver software.
      This should serve the purpose

    • April 27, 2017 at 11:17 pm
      Permalink

      Once u click run on the processing.u will see a gtrl popup window.u need to press the letter”P” in order to select the port.and then press g to stream g code file.
      In case u r having problems with the port’s then go to
      control panel
      Hardware and settings
      U will see Arduino under “ports”
      Click on the it
      Go to advanced settings change the port number
      Also click on update driver software.
      This should serve the purpose

  • April 24, 2017 at 9:20 pm
    Permalink

    I had completed my project but after streaming gcode to cnc it shows
    “M18 drives of ”
    And drawing is bad

  • April 27, 2017 at 9:41 pm
    Permalink

    Hi sir..this us naren…Sir I made the CNC as it is in ur tutorial .But my CNC is unable to draw clear drawings .Sir cud u plz help.
    Also as soon as I connect the servo motor to the motor shield it starts ticking like the hand of a clock and the CNC stops working.
    Tq for all the videos

  • April 27, 2017 at 9:41 pm
    Permalink

    Hi sir..this is naren…Sir I made the CNC as it is in ur tutorial .But my CNC is unable to draw clear drawings .Sir cud u plz help.
    Also as soon as I connect the servo motor to the motor shield it starts ticking like the hand of a clock and the CNC stops working.
    Tq for all the videos

  • April 29, 2017 at 8:28 am
    Permalink

    You really make it seem so easy with your presentation but I find this
    topic to be really something which I think I would never understand.
    It seems too complicated and very broad for me. I am looking forward
    for your next post, I’ll try to get the hang of it!

  • April 29, 2017 at 9:59 am
    Permalink

    This is a topic which is near to my heart…
    Thank you! Exactly where are your contact details though?

  • May 3, 2017 at 2:18 am
    Permalink

    Hello, everything is going well here and ofcourse every one is sharing data, that’s really fine, keep up writing.

  • May 6, 2017 at 5:39 pm
    Permalink

    Rx farmacia italia alla consegna scadenza erettile cialis farmacia levitra prezzo disfunzione brevetto vitamine
    comprare cialis
    comoprare viagra
    comprare sildenafil
    comprare vardenafil
    vendita cialis generico in italia
    acquisto viagra generico in italia
    dove acquistare cialis generico in italia
    http://senzaricettaonline.com
    comprare cialis generico in italia in contrassegno
    dove acquistare viagra generico in italia
    acquistare cialis generico online italia
    acquisto cialis generico sicuro

  • May 8, 2017 at 8:28 pm
    Permalink

    Hi to every one, as I am truly keen of reading this website’s
    post to be updated regularly. It includes nice data.

  • May 9, 2017 at 10:13 am
    Permalink

    I am new to web designing and it made me more confused when I stumble into this content-management-system thing. I’m planning to update a site that is not designed using JOOMLA and was wondering if I can use Joomla to update it..

  • May 9, 2017 at 2:20 pm
    Permalink

    I’ve been thinking of moving from Joomla to WordPress because it’s much easier to use and much more convenient. But the problem is I have many posts, and I don’t know what to do… since I’m not a programmer or anything.. . How can I migrate from Joomla to WordPress?.

  • May 12, 2017 at 4:36 pm
    Permalink

    “An interesting dialogue is price comment. I feel that it’s best to write extra on this subject, it might not be a taboo topic but usually persons are not sufficient to talk on such topics. To the next. Cheers”

  • May 13, 2017 at 9:21 am
    Permalink

    I am facing a problem uploading gcode file with
    some error related to java
    plss do contact me through mail

  • May 20, 2017 at 3:29 am
    Permalink

    Nice post. I learn something more challenging on different blogs everyday. It will always be stimulating to read content from other writers and practice a little something from their store. I?d prefer to use some with the content on my blog whether you don¡¯t mind. Natually I¡®ll give you a link on your web blog. Thanks for sharing.

  • May 21, 2017 at 12:32 am
    Permalink

    The following time I learn a weblog, I hope that it doesnt disappoint me as a lot as this one. I mean, I do know it was my choice to learn, however I truly thought youd have one thing attention-grabbing to say. All I hear is a bunch of whining about one thing that you possibly can fix in case you werent too busy in search of attention.
    montre cartier homme santos faux

  • May 23, 2017 at 3:54 pm
    Permalink

    Ahaa, its pleasant conversation concerning
    this paragraph at this place at this web site, I have read all that,
    so at this time me also commenting here.

  • May 23, 2017 at 10:18 pm
    Permalink

    Excellent beat ! I would like to apprentice while you amend your website, how could i subscribe for a blog web site? The account aided me a acceptable deal. I had been tiny bit acquainted of this your broadcast provided bright clear concept

  • May 24, 2017 at 9:49 pm
    Permalink

    Magnificent goods from you, man. I’ve understand your stuff previous to and you are just extremely excellent. I actually like what you’ve acquired here, really like what you are stating and the way in which you say it. You make it enjoyable and you still take care of to keep it smart. I can’t wait to read far more from you. This is really a tremendous website.

  • May 25, 2017 at 12:07 am
    Permalink

    I was suggested this blog by my cousin. I am not sure whether this post is written by him as no one else know such detailed about my difficulty. You are amazing! Thanks!

  • May 25, 2017 at 6:33 am
    Permalink

    After study a few of the blog posts on your website now, and I truly like your way of blogging. I bookmarked it to my bookmark website list and will be checking back soon. Pls check out my web site as well and let me know what you think.

  • May 25, 2017 at 8:53 am
    Permalink

    It is perfect time to make some plans for the future and it’s time to be happy. I’ve read this post and if I could I want to suggest you few interesting things or advice. Perhaps you could write next articles referring to this article. I wish to read more things about it!

  • June 5, 2017 at 8:59 pm
    Permalink

    hi, very good job with that tutorial but i have 1 problem when i run the processing program with the gctrl and then press play it says me that size() can bu used here. and i dont know what to do, i tryied to make it as a comment but the window open so small and i cant see anything if you can mail me i´ll be joyfull thanks

  • June 6, 2017 at 3:18 am
    Permalink

    How do you do it??? I totally agree and i will be telling my buddies about this blog and sending it to my brother via instagram. Im such a watch fan……. Or anything push bike related!! lol

  • June 11, 2017 at 3:40 am
    Permalink

    Thank you, I have just been looking for information approximately this
    topic for ages and yours is the greatest I’ve found out so
    far. But, what in regards to the conclusion? Are you positive about the source?

  • June 18, 2017 at 7:47 am
    Permalink

    hi!,I love your writing so so much! share we keep up a correspondence extra about your post
    on AOL? I need a specialist in this house to unravel my problem.
    May be that’s you! Looking forward to peer you.

Leave a Reply