loading

This instructable shows you how to build a cheap and easy, but very small CNC using Arduino UNO. You can use it to mill thin wood, different foams or you can use it for plotting different sketches and also can be used for engraving and etching purposes.Inspired by the Small Arduino CNC (thank you very much for your help), i made it easily.

PARTS YOU NEED:

For this project you will need:

3 old CD/DVD-Roms

1 Computer power supply

3 Easydriver boards

1 Arduino Uno

2 pieces of Wood

1 Soldering Iron

1 Soldering Wire

Step 1: Demo Video

Demo Video 1

Watch here

Thanks to everybody who voted me for the contest and I am very glad that i have won 2 contests :D

1. AUTOMATION CONTEST

2. 3D PRINTING CONTEST

UPDATE:

Watch the new video of this mini CNC plotter. I have increased the feed rate for sketching. I was using Deskengrave and many other softwares just to check the working of the machine, the results was not satisfactory because some Gcode generated codes were not supported by the GRBL library. After searching n the internet i found Inkscape software. Inkscape is a free and open-source vector graphics editor; it can create or edit vector graphics such as illustrations, diagrams, line arts, charts, logos and even complex paintings. By using this software i can import Dxf, Dwg, JPG, SVG etc files and can convert them into GCODE. You can download Inkscape by clicking below link.
Download Inkscape

I have import several image files which i had downloaded from the google, convert them into Gcodes and send to the GRBL software, it worked perfect :D. Below is the link of sample video i have just made.

Demo Video 2

Mini Arduino CNC Part 2

How to use Inkscape?

There are alot of videos on youtube which will guide you to how to use this software and generate Gcodes. For quick guidance see this link.
Inkscape and Serial Transfer

Step 2: Using the DVD CD-ROM, Get Stepper Motors

I took three wasted DVD-drives apart because we need the steppers (XYZ axis)

Step 3: Step 3: Assemble and Build the Structure

For this part just need a base platform and two pillars. I made the base from wood and pillars are of aluminum. Now simply screw the wooden base withe your Pillars as shown in first Figure.

Place the X axis across the pillars and Y axis onto the wooden base as shown in figures.I used glue to assemble all the axis. Just make sure that all the axis are exactly perpendicular to each other, they must be at right angle.

Step 4: Step 4: Soldering and Wiring

This is also not a very complicated step. You just need to solder wires with your stepper motor. Be careful while soldering and don't use high watt solder as it can burn the wires of stepper, mine was 30W and it was OK. After that, simply sold all the connectors in easydrivers and connect the wires as given in figure.

Step 5: The Software

1. Download and install the Arduino Software, the grbl library and the Grbl controller. or goto the link below

http://blog.protoneer.co.nz/quick-grbl-setup-guide-for-windows-arduino-g-code-interpreter/

2. After downloading the Grbl library, you have to click sketch --> import library --> add library in the Arduino software and select the zip file you just downloaded.

3. Upload the library to your Arduino.

4. After you installed Grbl on your Arduino open the Grbl controller and select the port to which your Arduino is connected. Press the open button.

5. A list of options appears in the command screen. You have to change a few of these options, by entering the number of the option (the numbers with a $) = and the new value (For example $130=35.000).If your motors are moving into the wrong direction, go to Tools --> Options --> Axis and click the axis you want to invert.

6.You can use any Gcode Generator software to make gcodes.I download DeskEngrave software which is also a gcode generator, here is a link deskEngrave

Step 6: Thank You, Instructables!!

It is really very easy project if you want any help you can ask anytime.

I really want to thank INSTRUCTABLEs and all the people here sharing their ideas. Following this platform i am really able to make my own projects very easily :D :D :D

<p>Hey i did all of this and when i load a gcode on grbl it doesn't work. It only moves slow in the air abou 5 mm. Do i need to fine tune the cnc or something ? If so how ? Please help. Thanks</p>
<p>HI..</p><p>Have to check/edit your settings in grbl software according to your belt/lead screw pitch as shown in figure?</p>
<p>can anyone send me grbl controller. the link given in disable. </p><p>uzairsamisoomro@gmail.com</p>
<p>Sorry for the late reply, I was really busy coudnt find time to reply early.</p><p>I have just sent you grbl controller setup in email. Check your email.</p>
<p>hi bro help me i am try to making this project but sam problem create my stepper motor not working but normal motor is working please help me</p><p>my whastp no is 9958589245 please contact me </p>
<p>what is your error/problem?</p>
<p>Well after about 3 hrs of searching and trying to find a solution, my last resort is to write here. The grbl library doesn't work fro me (as mentioned by someone else) I keep getting the folder does not contains a valid library, then I tried the GRBL-Arduino-Library-master that some one else suggested, that one does loads but when I try upload it to the board I get a compiling error. I just cant find how to run it. Any help is appreciated. Tnx.</p>
<p>Got to the link below and follow the steps. </p><p><a href="http://blog.protoneer.co.nz/quick-grbl-setup-guide-for-windows-arduino-g-code-interpreter/">http://blog.protoneer.co.nz/quick-grbl-setup-guide...</a></p><p>I think the new version of Arduino is not competible with the old files/library of GRBL because now for new CNC machine, I am also getting an upload error. </p>
nice instructable sar ... sar I have a small doubt can we make plotter draw images of us
<p>Yes it can plot Images too..</p>
<p>hey man i just got one problem ,whenever i used inkscape to convert g-code and upload or put in the grbl controller, its doesn't work always says, runtime error :scribbed version buffer size is too low and then it stopped , so what should i do now ? </p>
Change the baud rate
Nothing happens, same error. Now I'm thinking to change the windows 8 to may be 10 or 7 may be that help Hehe.
<p>hey man how are you I would like to ask if you are able to send the grbl controller on my mail the web page is giving error I already build it but I'm not finding the grbl controller I will be thankful to you if you are able to provide me </p><p>contact mail :s101142@ud.ac.ae</p>
<p>can you send me grbl controller. uzairsamisoomro@gmail.com</p>
<p>hi ,</p><p>very nice project. i would like to know if its possible to use the cnc shield instead of the 3 easydrivers.</p><p>Thanks</p>
<p>Yes it is possible. I am using it and it works well!</p>
<p>Best of the best</p>
<p>Hi, I'm quite new to CNC stuff, I have a small problem my Z-axis does not move when I start the G-code, only X and Y, The Z does work but not with the generated G-code from INKSCAPE, How do I generate so that my Z can drop down and lift when needed.</p><p>There is no Z control in the g-code and I can't find where or how to make this work.</p><p>please help? </p>
<p>Hi, sorry for double posting, I have found a fix around but it does take time, due to the Laserengraver plugin create the .nc file as a Laser engraver gcode with M03 (Laser on) and M05 (Laser off) I just edit the .nc file and change the m03 to G1 Z=15.000 F260 and M05 to G1 Z=13.000 F260, this works but is there a way to make this happen when creating the gcode. thanks and this is a great project. WELL DONE.</p>
<p>What gauge of wire did you use?</p>
<p>This is my cnc (will be done) :D</p>
<p>Genius !</p>
<p>This is my version.</p>
<p>Nice :)</p>
<p>There is another link to download your controller . Which you pointed out it is not working.</p><div><p>Thanks in advance for all!</p><p>Regards.</p></div>
<p>Hey there zain I followed all the steps to the wiring but my motors are rigid and don't move at all when i disconnected the power then they are no longer rigid and move easily if pushed by hand. I made sure the the wiring is correct do you have any clue whats going on ?</p>
<p>Hi</p><p>I had the same problem. connect the power pins of your easydriver to another power source. (dont use usb port of your pc because it cant suply enough current)</p>
hello thank you for this project but I want to ask you if I can use another stepper motor driver ?? and if its the same quality printing and the same code??
because I want to make it 3d printer :-)
<p>inkscape gcode tools </p><p>http://www.cnc-club.ru/forum/viewtopic.php?f=33&amp;t=35</p>
<p>Hey, i wanted to know if i could use that programming and grbl if im using L293Ds instead of easydrivers thanks :)</p>
<p>Go to this link. <a href="https://www.instructables.com/id/Mini-CNC-Plotter-Arduino-Based/" rel="nofollow">https://www.instructables.com/id/Mini-CNC-Plotter-A...</a></p><p>I am following that and I am 75% done!</p>
I think you couldn't use L293D for this project: this component is a quadruple H bridge, and you need a stepper motor drivers
<p>Hi , great instructable ..</p><p>guys i made a bigger device of this .. </p><p>but i changed a lot of thing , i use drmel shaft instead of pen ..</p><p>how to make it automaticly raise up the pen when moving to a new sequnce of dawing ? , so it doesn't make that extra lines .. ? <br>please give some help here or at my facebook ( Yousif A Hafiz ) , or my emails monster-kemo@hotmail.com</p>
<p>Mini CNC Arduino Based &amp; Adafruit Shiled Driver motor L293D v1 : <a href="https://www.youtube.com/watch?v=29AJXw6OhV0" rel="nofollow">https://www.youtube.com/watch?v=29AJXw6OhV0</a></p>
<p>hey how to connect arduino mega 2560 use this project. im difficult to connect grbl to arduino mega and pin output... </p>
<p>Ol&aacute; use a vers&atilde;o da biblioteca grbl em formato .HEX e fa&ccedil;a o upload via XLOADER</p><p>que pode trabalhar com o arduino mega 2560</p>
Problem :<br>Motor stuck as i connect.<br><br>Setup Details :<br>- GRBL v9.0j<br>- Arduino Nano<br>- DRV8825 set to (12v,250ma)<br>- DVD R/W Stepper Motor<br>- GRBL Controller v3.0 by ZapMaker<br>* Setup is working with other sketch<br><br>GRBL Default Settings :<br>$0=10 (step pulse, usec)<br>$1=25 (step idle delay, msec)<br>$2=0 (step port invert mask:00000000)<br>$3=0 (dir port invert mask:00000110)<br>$4=0 (step enable invert, bool)<br>$5=0 (limit pins invert, bool)<br>$6=0 (probe pin invert, bool)<br>$10=3 (status report mask:00000011)<br>$11=0.010 (junction deviation, mm)<br>$12=0.002 (arc tolerance, mm)<br>$13=0 (report inches, bool)<br>$20=0 (soft limits, bool)<br>$21=0 (hard limits, bool)<br>$22=0 (homing cycle, bool)<br>$23=0 (homing dir invert mask:00000001)<br>$24=25.000 (homing feed, mm/min)<br>$25=500.000 (homing seek, mm/min)<br>$26=250 (homing debounce, msec)<br>$27=1.000 (homing pull-off, mm)<br>$100=250.000 (x, step/mm)<br>$101=250.000 (y, step/mm)<br>$102=250.000 (z, step/mm)<br>$110=500.000 (x max rate, mm/min)<br>$111=500.000 (y max rate, mm/min)<br>$112=500.000 (z max rate, mm/min)<br>$120=10.000 (x accel, mm/sec^2)<br>$121=10.000 (y accel, mm/sec^2)<br>$122=10.000 (z accel, mm/sec^2)<br>$130=200.000 (x max travel, mm)<br>$131=200.000 (y max travel, mm)<br>$132=200.000 (z max travel, mm)<br><br>Please correct GRBL settings .....<br><br>Thank You
<p>Hi, </p><p>ola teste estas configura&ccedil;&otilde;es no seu arduino</p><p>Set step/mm to setup the correct motor distance to run (a common step/mm value for CD-ROM motor should 53.333):<br><br>$0=53.333 (x, step/mm)<br><br>$1=53.333 (y, step/mm)<br><br>Set the accelleration value to 100:<br><br>$8=100.000 (acceleration, mm/sec^2)</p>
Hello .please say which program drawing and convert Nc file?
<p>hi me zain i have a question about the configurations of the drawing before to become Gcode:<br>1) how do you know the correct dimensions of pictures in way to avoid incorrect functions of motors ( because you don't use end-switch ) ?<br>2) if i want to do more complicate drawings for example a gear, which programs can i use to draw it, and translate in Gcode ?<br>Thanks a lot for your time and for your work.</p>
<p>hi Hammer8195.</p><p>1. For exact dimensions, you must calculate the step/mm of your motor and the pitch of the coupled lead screw and then set the values in GRBL command settings panel. After setting it your picture dimension would be same as you feed in the program.</p><p>2. For complex drawing i am using inkscape software. I have mentioned all the procedure in the UPDATE portion above.. :D</p>
<p>hey i have been make the cnc but it is too slow like if you want to draw an H letter it will take a bout 30 Minutes so how can i make it faster.... thx</p><p>@me_zain</p>
<p>increase the feedrate generated in your G-Code..</p>
<p>can anyone please give me the link to download the library for this</p><p>whenever I upload the zip file it says Arduino: 1.6.5 (Windows 7), Board: &quot;Arduino/Genuino Uno&quot;</p><p>Specified folder/zip file does not contain a valid library</p><p>Is this the right place to download the library or not ?</p>
<p>Hi <a href="https://www.instructables.com/member/HarnoorS1">HarnoorS1</a></p><p>Sori for the late reply............Yes this is the right place and i also have downloaded them from this site. If still your facing problems then tell me. I will try my best to sort it out.</p>
<p><a href="http://blog.protoneer.co.nz/grbl-arduino-library/" rel="nofollow">http://blog.protoneer.co.nz/grbl-arduino-library/</a></p><p>use this one......</p>
<p>Help! How do you connect to that teeny-tiny tape-wire on the motor stage? I gave up trying to solder to the plastic tape-wire and have now ruined 2 motors trying to desolder the tape-wire from the motor itself to add my own wires (the posts themselves are held in place with solder!) :(</p>
<p>You don't need to solder wires with tap wire, just solder your wires directly on small PCB that is on stepper motor. I have attached a pic to make it clear :)</p>

About This Instructable

147,879views

1,519favorites

License:

More by me_zain:Automatic London Bascule bridge (Arduino based Student Project) Mini Arduino CNC Robotic Arm SolidWorks 
Add instructable to: