Introduction: Small Arduino CNC

Picture of Small Arduino CNC

This instructable shows you how to build a cheap and easy, but very small CNC. You can use it to mill thin balsa wood and different foams. Everything you need, can be found in old PC's or can be bought quite cheap (I paid ~30$). It was inspired by the Pocket laser engraver, but i added a third axis and now I am able to mill small 3D objects.


For this project you will need:

  • 3 old CD/DVD-Roms
  • 1 Computer power supply
  • 1 PC fan
  • 1 small DC motor
  • 3 Easydriver boards (can be bought on ebay ~2$ each)
  • 1 Arduino Uno (can be bought on ebay ~14$)
  • Screws, spacers, soldering iron, cables (old ribbons from PC's also work), some wood, a breadboard, screw terminals and some other supplies.

Step 1: Take Apart Your CD-Roms

Picture of Take Apart Your CD-Roms

Opening the CD-Roms isn't really hard. Just find yourself some old CD-Roms and follow the steps shown in the pictures. Even if your CD-Roms look a bit different, you shouldn't have many problems opening them.

Step 2: "Hack" the Power Supply

Picture of "Hack" the Power Supply

Before hacking the power supply, please make sure it isn't plugged in.

Hacking a power supply is easy. You only have to connect the green cable with a black cable (ground). Make sure not to solder the two, because in case of a short circuit you have to disconnect the two cables and reconnect them in order to reset the fuse in the power supply (It's a good idea to put in a switch).

The power supply will start running, as soon as the green cable is connected to the ground. Now you have a DC power supply!

To use the power supply, strip a red cable (5V) and a black cable (ground). It is also useful to strip a yellow cable (12V) or an orange cable (3,3V) for the milling motor and a cooling fan. Put the stripped cables into a clamp.

Step 3: Build the Structure

Picture of Build the Structure

This part isn't really complicated. You just need a platform (mine is 13,5 cm x 17 cm but other sizes are also ok) and two pillars (mine are 24 cm high). I made them from wood, as it is very easy to cut and i can put screws into it.

After you have your wooden parts, simply screw the pillars onto the platform. (Make sure that your slides fit onto the platform and in between the pillars, as some slides are a bit taller or smaller).

Step 4: Soldering and Wiring

Picture of Soldering and Wiring

You have to solder cables onto the stepper motors. It's a bit tricky, as there isn't much space for soldering, so you need patience and a calm hand.
You can simplify this step, if you solder the cables onto the ribbon cable, which is already attached to the steppers. Just cut in between the tracks, and you can solder the cables to the ribbon cable. To avoid short curcuits, insulate the connections.

To make the device look better in the end, i used a stapler and stapled the cables to the wood. It looks nicer and more organised.

Step 5: Build the Axis

Picture of Build the Axis

Since there isn't the possibility to put screws into your slides, you have to take a good glue (I used a two-component adhesive). Cut a wooden platform for the base axis (the Y-Axis) and glue it to the plastic on the slide.

After that, glue a piece of wood, which is as wide as your Z-Axis slide, to the X-Axis.

When your glue is dry, drill holes into the large piece of wood, which is attached to your X-Axis. The holes have to match the distance of the holes, which are in your Z-Axis slide.

Now that everything is prepared, you can screw the Y-Axis to the ground and the X-Axis onto the two pillars. When this is done, you can attach the Z-Axis to your X-Axis. Note: You will need spacers and washers, because the holes in the slides are too big for most screws. You also have to make sure, that the slides have no contact to the platforms and can move freely.

If you want you can add a metal platform to your base. You can take the metal from an old CD-Rom housing, and glue it to your platform (It's useful to have a metal platform, as you can hold your PCB's with magnets instead of duct tape).

Step 6: Attaching the Easydrivers and the Arduino

Picture of Attaching the Easydrivers and the Arduino

Now that the structure is finished, you have to wire your motors to the Easydrivers and the Arduino. There are two ways of doing it.

The easier and faster way is to put all your Easydrivers into a breadboard and connect them to the Arduino.You can wire it as shown on the image which was done with the Fritzing App.

The other way is to build a PCB. The disadvantage is, that you have to solder a lot, but you can build the PCB as a shield and directly attach it to your Arduino.

As mentioned in the picture, you should also add a fan to cool the Easydrivers and the Arduino (Espacially if you want to put them into a housing).

Now you only have to find out, which pin of your steppers, has to go to which pin on your Easydrivers. Again it is useful to look at your ribbon cables. Normalwise you have to attach the cables to your Easydrivers in the same way as they are connected to the stepper.

Step 7: The Spindle

Picture of The Spindle

The spindle consists of a DC motor and two screw terminals. It is important, that the motorshaft has the same size as the cutter, to decrease vibrations and increase precision.

Cut the metal parts out of the screw terminals. After you have the metal parts, attach one side of the metal part to the motor and the other one to the cutter. Tighten the screws and attach the second metal part 180° turned. Put it on top of the first metal part (the second metal part is needed as a counter weight, to minimize vibrations and increase precision).

When your spindle is finished, attach it to the Z-Axis. I used a metal part lying arond, but many motors also have attachment points on the front which you can use.

Make sure to use a light motor, as your Z-Axis can't lift heavy objects!

Step 8: The Software

Picture of The Software

The last step is the software. You have to download and install the Arduino software

the Grbl library and the Grbl controller.

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. Now send the library to your Arduino (your Arduino has to be connected via USB). There is also a more detailed discription on how to install Grbl --> Install Grbl

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.

Now 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). You may need to experiment a bit, but the options shown in my screenshot should work.

If your motors are moving into the wrong direction, go to Tools --> Options --> Axis and click the axis you want to invert.

Step 9: Milling

Picture of Milling

After you finished the CNC you can start milling. Just produce a file and transform it into gcode. Now send it to your mill and start milling (Keep in mind that your objects have to fit the small dimensions of this CNC).

Note: When starting Grbl controller it's automatically in alarm mode. Before milling, you have to switch it of by entering $X into the command field.

To produce files for your CNC, you can use Inkscape with the add on Gcodetools both programms are freeware. But you can also use any other programm.

In my example i milled a star into floral foam. The material is really soft and can be milled even with a drill instead of a cutter. I attached the foam with double faced tape.


If your bed is correctly leveled and you use a cutter, it could also be possible to produce small PCB's. PCB's can be attached with magnets, as I have a magnetic platform, which was made out of a CD-Rom case.


Comments

alihamzaonly (author)2017-08-27

Hi, Iam facing this type of error in running my machine,

actuall i uploaded G-code but machine is not working.. can anyone help??

Make it BIG (author)alihamzaonly2017-08-30

Did you use the $X command before milling?

alihamzaonly (author)Make it BIG2017-08-30

Yes I did.

media1328 (author)2016-05-29

his is the 1st project I could find to make and I did make it too. also made biggest one by Plexiglas. but one main point was made me busy for months and month. and it was the adjusting the code on the grbl witch was not explained anywhere. tile I could find an Italian video clip witch was explained in their own language that I didn't understand it but did as he was done and suddenly could see the difference on my cnc machine. my problem was that cnc could not give me the actual size in print and drawing. and after that I could solve my problem. and now I put my experiences here to help others like me if they want to make such a machine. in GRBL and command line you can add such these code and depend on your stepper motor to adjust them.(

$0=750
$1=700
$2=100
$3=15
$4=1500
$5=1500
$6=192
$7=253
$8=25
$9=0.050
$10=0.100
$11=25
$12=3
$13=0
$14=1
$15=1
$16=0
$17=0
$18=0
$19=25
$20=250
$21=100
$22=1)
hope this can help others too.

hamzaraziel (author)media13282016-10-19

hallo bro , do you use inskape to generate gcode for 3 axi cnc using grbl c and easy drivers ????

alihamzaonly (author)hamzaraziel2017-08-27

bro hamzaraziel i made my g code from inkscape but this error is in front of me ...

can you solve this error?

or please send me your G-code if you have anyone!

alihamzaonly (author)media13282017-08-27

hi dear i make smae cnc but i ma having this type of error and machine is not runing at all

alihamzaonly (author)2017-08-21

Hi #makeitbig, i have done all the conections and my motors are also working but i am facing a difficulty in writing a g-code, i used inkspace with gcodetools but still finding a difficulty. Can you plz send me your G-Code, which you used in this machine

Make it BIG (author)alihamzaonly2017-08-24

Hi,

I'm sorry, but due to the project being quite old, I can't find the files anymore. Nevertheless good luck in creating your own GCode!

alihamzaonly (author)Make it BIG2017-08-24

ok dear but what did you write on aurdino,

are the necessary to write,

DebojitK (author)2017-08-08

Hi Made the cnc xy plotter based on L293d motor controller. It is drawing small pictures fine but it seems the x axis (pen is attached with this axis) line plots are jerky, where as y axis plots are very smooth. How to deal with this?

mehmet_1234 (author)2017-08-01

how to make gcode?

Make it BIG (author)mehmet_12342017-08-02

To produce files for your CNC, you can use Inkscape with the add on Gcodetools both programms are freeware. But you can also use any other programm.

HazzyMan (author)2017-07-15

Great

MusaA11 (author)2017-06-03

hello

i need help. dude i made one of this plotter and i use arduino uno and 3 easydrivers to control the motors. but when i use grbl controller the only motor that move is the X axis .the Y axis only jogging and Z axis dont move at all. i measure the power pins on the easydrivers and its shows 4.6 volts. i dont know what should to do. pls help me.

Make it BIG (author)MusaA112017-06-05

Hi,

Make sure you connected the right cables to the right pins. And that you solderered erything correct and nicely. Also make sure there are no solder bridges between your contacts.

farealsiratama (author)2017-05-04

I want to ask, source code small cnc where?

justinrains (author)2017-03-30

Thanks for sharing! This is my next project. Just need 2 more cd-roms and time.

Mehadi_Saki (author)2017-03-08

Which software are use for generating G-code

AbishR (author)2017-02-20

Hi ,

Can any one suggest the arduino code for this project

Thanks in advance

Make it BIG (author)AbishR2017-02-20

Hi,

Please refer to Step 8 everything is explained there and the links are also still working.

techknowdroid (author)2017-02-03

Very Nice Project !!

Also Please check out this CNC machine that I have made. It has a Ball-Pen attached to it to enable it to print words and drawings. Here is the Link :-

https://www.youtube.com/watch?v=FMXUS5kp4pQ

karrarhaddad123 (author)2016-05-12

Hello , can i put pen , to print words and ?

Check out this CNC machine that I made. It has a Ball-Pen to print words and drawings. Here is the Link :-

https://www.youtube.com/watch?v=FMXUS5kp4pQ

yes you can and it depends on Gcode you inter on machine.

Designer Arthur (author)2016-10-13

I like it looking forward to build mine

mkrspark (author)2016-09-10

thank you

JoachimG2 (author)2016-08-14

Can I use a4988 instead of EasyDriver?

RishiY (author)2016-08-01

Please help me . My stepper motors are not working , i have used the same cd rom motors. PLEASE HELP ME.........

RishiY (author)2016-07-30

is there a way i can reset the arduino , i mean completely erase the firmware and re install it

RishiY (author)2016-07-30

hey, aweome tutorial!!

but i have alittle issue , actually i have done everything according to the instructions but the grbl controller isint moving my motors!! plz help me.

FrancoC28 (author)2016-07-11

hi ,

very nice project. i would like to know if its possible to use the cnc shield instead of the 3 easydrivers.

Thanks

Make it BIG (author)FrancoC282016-07-12

Hey,

you can basically use the stepper motors of the CD-Roms like normal stepper motors. That means you should also be able to use the Arduino CNC Shield, instead of easydrivers.

Best regards MakeitBIG

TronicFrenzy (author)2016-06-07

Hey, can i replace easy drivers with l293d motor shields!?

media1328 (author)2016-05-29

his is the 1st project I could find to make and I did make it too. also made biggest one by Plexiglas. but one main point was made me busy for months and month. and it was the adjusting the code on the grbl witch was not explained anywhere. tile I could find an Italian video clip witch was explained in their own language that I didn't understand it but did as he was done and suddenly could see the difference on my cnc machine. my problem was that cnc could not give me the actual size in print and drawing. and after that I could solve my problem. and now I put my experiences here to help others like me if they want to make such a machine. in GRBL and command line you can add such these code and depend on your stepper motor to adjust them.(

$0=750
$1=700
$2=100
$3=15
$4=1500
$5=1500
$6=192
$7=253
$8=25
$9=0.050
$10=0.100
$11=25
$12=3
$13=0
$14=1
$15=1
$16=0
$17=0
$18=0
$19=25
$20=250
$21=100
$22=1)
hope this can help others too.

media1328 (author)2016-05-29

his is the 1st project I could find to make and I did make it too. also made biggest one by Plexiglas. but one main point was made me busy for months and month. and it was the adjusting the code on the grbl witch was not explained anywhere. tile I could find an Italian video clip witch was explained in their own language that I didn't understand it but did as he was done and suddenly could see the difference on my cnc machine. my problem was that cnc could not give me the actual size in print and drawing. and after that I could solve my problem. and now I put my experiences here to help others like me if they want to make such a machine. in GRBL and command line you can add such these code and depend on your stepper motor to adjust them.(

$0=750
$1=700
$2=100
$3=15
$4=1500
$5=1500
$6=192
$7=253
$8=25
$9=0.050
$10=0.100
$11=25
$12=3
$13=0
$14=1
$15=1
$16=0
$17=0
$18=0
$19=25
$20=250
$21=100
$22=1)
hope this can help others too.

SaadI4 (author)2016-03-15

Hi,

I am having a problem installing the GRBL library on arduino. Below is the image of error code that I experienced. Can anyone please help me

Any reply would be appreciated :)

media1328 (author)SaadI42016-05-29

I had same problem too. please add grbl from Arduino Example to your machine not from Arduion library you added. for sure you can succeed.

karrarhaddad123 (author)2016-05-12

and cartoons

bruna.e.carlos.9 (author)2016-04-09

Hello , someone would have the installer Grbl controller ? The link no longer have the file. Thank you.

IrfanG6 (author)2016-04-06

hello, can i use laptop CD drives for this project?

Make it BIG (author)IrfanG62016-04-07

Hey,

Yes you can do that, but it's a bit more complicated. The sled is smaller and more compact. (This is what it looks like on the inside

http://elabz.com/wp-content/uploads/2011/04/Toshiba-TS-L462-bottom.jpg)

EricGozzer (author)2015-10-09

Can I replace the Easydriver board with A4988 stepper Motor driver Carrier or a shield motor driver?

avinashk (author)EricGozzer2016-02-12

the intructable is How to convert and mill your pcb......pls refer this one i followed it n it was very helpfull.

avinashk (author)EricGozzer2016-02-12

dear eric u can create ur own g codes.download the DIPTRACE. cteate ur shematic any simple one. in menu u ll find the commsnd CONVERT TO PCB. click it .save it to location of ur choice.now download COPPERCAM.open it an open ur saved files n follow the instructions. u will get gcodes of ur own schematic.try to refer tutorials for both softwares.there one good instructable about how to create ur own pcbs. pls follow it.goodluck.!!@

ggarcía-2 (author)2016-01-28

Well done!!, Correct me if I Wrong that means that If this project involves EasyDrivers to drive floppy's stepper motors. Its possible to use instead of this tiny motors use stepper motors from Printers and recycle the mechanism in order to CNC something bigger really??

Make it BIG (author)ggarcía-22016-01-31

Hi ggarcia

Yes you can also drive regular stepper motors with easydrivers. But they will get warmer, because the bigger motors need higher currents. So you should cool them.

avinashk (author)2016-01-24

THANKS DEAR,I WILL TRY TO SEE IN THE CODE , WELL I MA NOT SURE IF ITS THERE,SINCE ALL THE EXAMPLES WHICH I DOWNLOADED FROM VARIOUS SITES BEHAVE TH ESAME WAY.ANY WAY THANKS AGAIN FOR THE HELP.REGARDS

avinashk (author)2015-07-01

dear make it big thanks again. however please tell me how to map the screws of a cnc? i ve made my cnc out of dvd writer

slides

Make it BIG (author)avinashk2015-07-01

Sorry but I don't understand the question. What do you mean with "map the screws of a CNC"?

About This Instructable

359,399views

1,714favorites

License:

Bio: I am a german student and joined Instructables, because I like to build your projects and share mine with you.
More by Make it BIG:Gingerbread AT-ATEdible chess set3d printed Mixer
Add instructable to: