Introduction: How to Make a Three Axis CNC Machine (Cheaply and Easily)

Picture of How to Make a Three Axis CNC Machine (Cheaply and Easily)

The idea behind this Instructable was to fulfill my desire for a desktop sized CNC machine. While it would have been nice to purchase an off the shelf unit the issue of price as well as size proved prohibitive. With this in mind I endeavored to design and build a three axis CNC machine with the following factors in mind:

-Use Simple tools (needs only a drill press, band saw, and hand tools)
-Low Cost (this kind of got away from me however with everything bought off the shelf the cost for all parts is under $600 (significant savings could be made by skillfully sourcing some pieces))
-Small footprint (30" x 25" footprint)
-Usable working envelope (10" X-axis, 14" Y-Axis, 4" Z-Axis)
-Relativly fast cut rate (60" per minute)
-Small part count (fewer than 30 unique parts)
-Easy to source parts (all parts available from 4 sources (Home Depot + 3 online sources)
-Ability to cut ply-wood (Succesful)

Lets get started...

UPDATE: - Coming soon the ability to order pre-cut MDF pieces from oomlout

Step 1: Others Who Have Finished

Picture of Others Who Have Finished

A salute to those who have laboured through to this point (and to demonstrate that it is reproducable) Here are some pictures of other peoples machines.

Photo 1 - Chris and his friend put together this unit; laser cutting the parts out of half inch acrylic. Not only does it look super it must weigh a ton. But kudos, anyone who's worked with acrylic knows laser cutting it is great but it is a very very unfriendly material to drill and there is a lot of side drilling in this design. Good job guys, check out more details (and photos including some testing with circuit boards) on Chris's blog I particularly like his work with making 3-d objects out of 2d cuts (here) .

Photo 2 - Sam McCaskill has finished his desktop CNC machine and it's looking really really nice. Super impressively he also resisted the urge to cheat and cut all his pieces by hand. I'm really impressed.

Photo 3 - Angry Monk's - With MDF pieces cut on a laser cutter and drive converted from toothed belts to threaded rod

Photo 4 - Bret Golab's - Bret has completed his and gone through the extra step of getting it setup to work with Linux CNC (a task I attempted and was foiled by complexity). If you're interested in his settings you can send him a message (Instructable ID: bretlyssii ) ). Great job Bret!

(If you have built one and would like it featured here, please send me a PM and we can arrange for the sending of photos)

Step 2: Specs.

Picture of Specs.

I'm afraid I don't have the space (or the expertise for that matter) to go into the fundamentals of CNC here but there is one websites in particular I found quite useful in my research. - A discussion forum which has a DIY machine section which is a wealth of knowledge ( direct link )

Machine Details:

Cutting Head: Dremel or Dremel Type Tool

Axis Details:

X Axis
travel: 14"
Drive: Toothed Timing Belt
Speed: 60" min
Acceleration: 1" per second2
Resolution: 1/2000"
Pulses Per inch: 2001

Y Axis
Travel: 10"
Drive: Toothed Timing Belt
Speed: 60" min
Acceleration: 1" per second2
Resolution: 1/2000"
Pulses Per inch: 2001

Z Axis (up down)
Travel: 4"
Drive: Threaded Rod
Acceleration: .2" per second2
Speed: 12" min
Resolution: 1/8000"
Pulses Per Inch: 8000

Step 3: Required Tools

Picture of Required Tools

The goal was to try and keep the tools required within the realm of an average handyman's shop.

Power Tools:

-Band Saw or Scroll Saw
-Drill Press (drill bits 1/4", 5/16", 7/16", 5/8", 7/8", 8mm also Q (5/16" closest imperial drill bit)
-Printer (seemed like the right category)
-Dremel or Similar Tool (to attach to the finished machine)

Hand Tools:

-Rubber Mallet (to provide "persuasion" when neccesary)
-Hex Keys (5/64", 1/16")
-Screw Driver
-Glue Stick (UHU) or spray adhesive
-Adjustable Wrench (or 7/16" socket and ratchet)

Step 4: Required Parts

Picture of Required Parts

The attached PDF (CNC-Part-Summary.pdf) provides detailed cost and sourcing information for each and every required part. Listed here is only a summary

Sheet Stock --- $20
-a 48" x 48" piece of 1/2" thick MDF (any 1/2" sheet stock can be used I have plans to make my next version out of UHMW but cost was prohibitive this time around)
-a 5"x5" piece of 3/4" thick MDF (this is used to make spacers so any piece of 3/4" stock found around the shop could be used)

Motors and Controllers ---- $255
-An entire instructable could be written on chosing a controller and motors. In short what is required is a controller capable of three axes of control (with pulsed step and direction inputs) and motors with about 100 oz/in holding torque. I sourced mine from they have worked well and the kit was quite easy to solder. ( direct link )

Hardware--- $275
-These parts can be acquired from three places. The conventional items can be acquired at Home Depot, the specialty drive products are easy to find at any industrial supplier, I used McMaster Carr ( (I chose them because they have a nice online store), and finally because of the large number of bearings required I found the best price from an online seller ( which sells 100 for $40 (leaves quite a few left over for other projects) ( direct link )

Software --- (free)
-What is required is a program to draw your designs (I use CorelDraw), and a programme capable of interpreting these files into pulses to be sent to your controller. I'm currently using a trial version of Mach3 ( )but have plans to convert to LinuxCNC (An open source machine controller which uses linux) ( )

Router Head--- (extra)
-I attached a dremel type cutting tool to my machine however if you are more interested in additive construction (like fab@home or RepRap) you may wish to look into their deposition tools.


-the metric components and especially the cross nuts aren't very popular and I had to visit several Home Depots in my area before I had enough.
-I couldn't find a way to link to parts directly on the MCMaster Carr site. To find them go to and search for the part #

Step 5: Printing Pattern

Picture of Printing Pattern

I had some experience Scroll Sawing pieces so I choose to use a glue on pattern method. What is required is to print out the PDF pattern files onto tiled pages, then glue on each pattern, and cutout each piece.

File Name and Material:

Summary: CNC-Cut-Summary.pdf
0.5" MDF (35 8.5"x11" tiled pages): CNC-0.5MDF-CutLayout-(Rev3).pdf
0.75" MDF: CNC-0.75MDF-CutLayout-(Rev2).pdf
0.75" Aluminum Tube: CNC-0.75Alum-CutLayout-(Rev3).pdf
0.5" MDF (1 48"x48" page): CNC-(One 48x48 Page) 05-MDF-CutPattern.pdf

(note: I've added a DXF version of the 0.5" MDF pattern to this step (DXF-05-MDF-SimpleDXF.dxf) I have removed the cross drilled holes and writing from this file to make it a manageable size, if anyone would like any of the drawings in a different format or including different information please just drop me a line and I'll do what I can)

(note: I've included the original CorelDraw format drawings in a zip file (CNC-CorelDrawFormat-CutPatterns(Rev2).zip) for anyone who wishes to do some editing)

(UPDATE: There is now a choice in patterns for the 0.5" MDF layer, you can download one file (CNC-0.5MDF-CutLayout-(Rev3).pdf ) with 35 8.5"x11" pages tiled, or you can download one file (CNC-(One 48x48 Page) 05-MDF-CutPattern.pdf) which has the entire layout on one 48"x48" page to print on a large format printer or tile yourself)

(Step by step)
1.Download the three layout pdf files
2.Open each in Adobe Reader
3.Goto the Print Dialog
4.(IMPORTANT) in the page scaling dialog select "none"
5.Check to make sure the file didn't accidentally get scaled to do this measure the printed ruler on page one of each pattern (make sure it matches up with a ruler you trust) (I didn't do this the first time and accidentally printed out a copy at 90% size more on this later)

Step 6: Gluing Down the Pattern

Picture of Gluing Down the Pattern

Next step is to Glue the pattern to the MDF stock and Aluminum Tubing

1.Glue the tiled pages to your sheet stock (MDF) ensuring the edges match up
2.For the aluminum tube the pattern must be glued to two sides. If the Tube is laying flat on a table and you glue the side A patterns to the top side B can be glued on either of the side faces.

-Use lots of glue
-Have something near by to help push down each piece
(if anyone else has tips on doing this I would love to hear them)

Step 7: Cutout Pieces

Picture of Cutout Pieces

Not too much to say for this step simply cut around each outline.

Step 8: Cheating

I must apologize at this stage I succumb to the desire to cheat. As mentioned earlier I accidentally printed out my initial pattern at 90% size. Unfortunatly I did not realize this until this stage. So left with a 90% scale set of pieces and having moved across country I was now within reach of a full size CNC router table. I gave in and cut my pieces using this machine. However it was unable to do the drilling of holes so back to the real steps (this is why all the pieces from here on out do not have paper patterns glued on them)

Step 9: Hole Drilling

Picture of Hole Drilling

I have not counted but this project requires a lot of holes. The holes which are drilled into the edge of the material are particularly important so just take your time, you'll appreciate it later when you need to use the rubber mallet only sparingly.

The areas with holes drilled overlapping are an attempt to create grooves if you have a table router that would work much better for this.

Step 10: Assembling

Picture of Assembling
If you've made it this far I must offer my congratulations and suggest it only gets better from here. Looking at the pile of pieces picturing how it manages to become a machine may be a tad abstract so I tried my best to create instructions as close to those produced by LEGO. (downloadable in the attached pdf CNC-Assembly-Instructions.pdf). But in the interest of amusing along the way here is a timelapse of me putting my machine together.

Step 11: Software, Wiring and Configuring

Picture of Software, Wiring and Configuring

Almost there. All that is required is to wire up your motors and controller following their instructions, and to set up your control software using the included instructions and the machine specific details included here in step 2.

Step 12: Finished

Picture of Finished
There you have it hopefully you are finished and ready to go into production. I hope I have not left out any crucial details but if you think of something you'd like to know which I have omitted please just ask. Finally to demonstrate that it all works a video of my machine cutting out a pattern in pink foam.


katzsplat (author)2009-12-24

A big thanks to the author, oomlout for this terrific instructable.  I read this about one year ago, and purchased a kit from outland86 soon after.  I now have a fully working CNC machine thanks to them!

I want to provide a 3D model of this machine that I made in Google Sketchup for everyone to use to help learn more about how this machine fits together.  I've checked with the author, and he's fine with me providing it to the community.  I wish I had something like the model when I was first assembling the machine; it took a lot of trial-and-error to figure it all out.  Hopefully this model will make the road easier for future CNC'ers. 

I made this model because I plan to expand the Y-axis to 36", so now I have a virtual copy of my machine to modify.  Enjoy!

iffoffo (author)katzsplat2016-12-15
dave.lawrence (author)katzsplat2016-09-19

the sketch up model link is not working does anyone have this model? i would like to convert it over to fusion360

JustinRSharp (author)katzsplat2016-05-25

do you have an updated link

DunstanM1 (author)JustinRSharp2016-07-25

I was also hoping for an updated link. Is there one?

waynerod (author)katzsplat2010-02-14

So is this the modified version or the original one? Please tell me...

katzsplat (author)waynerod2010-02-15

This is the original model, as designed by author.  I have not shared my expanded design with anyone else.

waynerod (author)katzsplat2010-02-15

OK Thanks!!
Just what I was hoping for... I wanted the original version...

Thanks a lot for sharing this!!

-Wayne Rodrigues.

stewartlab (author)katzsplat2010-01-05

do you  mind exporting this in a seperate format other than Sketchup???

katzsplat (author)stewartlab2010-01-23

Sorry, I can't do that.  The Pro version of Google Sketchup is required to export to other formats, but I only use the free version.  Anyone who has Sketchup Pro could do this very easily, any volunteers?

robotguy4 (author)katzsplat2010-01-23

"The Pro version of Google Sketchup is required to export to other formats..."
Not its not.  You just got to add some things to it.

Waddya want to export the file as?  STL?  DXF?  OBJ?.X?  Find the ruby script you want, download and install it.

By the way, Google Sketchup (free version) can also export COLLADA files (.dae or Digital Asset Exchange), which can be imported into a variety of other programs...

katzsplat (author)robotguy42010-01-23

Sounds good robotguy4!  

To the rest of you: now you've got an easy way to convert the sketchup model to whatever format your heart desires.  Enjoy!

jeff-o (author)katzsplat2010-01-05

Very cool, thanks for doing this!

Angry_Monk (author)2008-01-11

I started to build this over the summer. i had the parts laser cut at my college from the DXF file. i just completed it a week ago after modifying it for better precision on the X and Y axes. i replaced the belt dives with threaded rod so now i can step forward 0.001" no problem, i think i can even do 0.0005" fine.

modifying the X and Y axes for threaded rod control isn't that bad, the only hard parts were making the new motor mounts and controlling both sides of the Y axis with one stepper. i ended up controlling both the Y axis threaded rods (one on each side) by mounting the timing belt pulleys on the ends of the threaded rod and running a timing belt around the rods on the back of the machine.

the reason for all this is because i want to do very small precise machining. i already have milled a couple propeller molds, to lay carbon fiber over, that are 1" in diameter and need 6000 lines of G-code to mill. i actually have another being milled right now. they came over very nicely.

i have a video of my machine in action but its hard to see any details of the prop because of its size and because my camera won't auto focus during a video.

techdog (author)Angry_Monk2013-09-09

Nice build excellent instructions tried to find wiring schematic is there one ? ...Jerry

katzsplat (author)techdog2013-09-27

I bought a Probotix kit for this CNC machine, and the product webpage has a wiring diagram. Check it out:

tekenika (author)Angry_Monk2009-09-03

Hi I, like you, prefer to use threaded rods. Do you have a drawing of the modification? Thanks and best regards from now Hector Ushuaia

kardinal7 (author)Angry_Monk2008-01-13

I'm building one right now. The purpose of the machine is to mill PCB's i need the machine accurate to 0,001 . Did you try the machine with the standard building? How accurate it worked? Can you put images of the changes you have done?

Angry_Monk (author)kardinal72008-01-13

yes, i tried the machine with the standard planes. the Z axis is fine at 0.001" res, probably more. the X and Y belt driven axes were only good for about 0.002" res. note my micro stepping was at 1/4. i didn't want to increase micro stepping because that is more of a software way of increasing resolution, i want to increase resolution the hardware way so i know i'm really getting what i want. when i switched to threaded rods i did get a slower traverse speed on those axes but increased accuracy. i also needed a larger stepper for my Y axis because it was driving two threaded rods as opposed to one. a final note is that i used (2) screw in T-nuts to attach each threaded rod to the machine (and ball bearing at the ends for support and to reduce friction). the purpose of two T-nuts is so that they can both be attached to the machine but tightened against each other a little to help reduce backlash. this creates more friction on those axes but it greatly reduces backlash to near nothing. for this mod i just got a 205oz-in stepper from HobbyCNC, and a 77" timing belt (same type as the kind used here) from mastercarr. everything else: timing pulleys, 1/4" bearings, 8mm bearings etc.. i reused. i used the 8mm bearings to fashion some extra pulleys on the back side of the machine for the 77" timing belt.

oomlout (author)Angry_Monk2008-04-06

Wow, not sure I ever thought anyone would actually complete the build but your machine looks awesome (sorry grew up on ninja turtles). Would you maybe have a photo which includes the full machine I would love to add on another step to the Instructable showing other peoples versions. (could you send it to me in a private message along with any relevant info you'd like included about your machine (of course only if you'd like it to be there) Also very impressed with your conversion to threaded rod, there are a lot of applications where the toothed belt just isn't precise enough.

Dodgy (author)oomlout2008-11-02

In addition to my previous question, re rod vs belt drive, how does the tightly strung inox (stainless steel) wire compare? If I can get inox rod at a reasonable price, would that be the best thing to use? If I chose rod. I would like the highest amount of resolution I can get. I know that the finer the pitch of the thread is, the more resolution it will have, but what about the width of the rod? I thought originally that a thicker (M12) rod will be better, then I realised it would be heavier and harder for the motor to turn, and perhaps, give no resolution advantage, and perhaps, thinner is better! What's the deal? Thanks.

Angry_Monk (author)Dodgy2008-11-02

the pitch of the threaded rod is really what is important. you just end up creating a worm gear drive. for greater resolution use finer threads, it will amount to a higher gear reduction. its all about the gear ratio. the greater the number of turns the motor has to turn to get the machine to move a distance X the higher your resolution and also the greater torque the machine has (added bonus). you can get the same gear reduction using a belt system but you you will just need to gear the motor down before it drives the belt, which is a lot harder than just using threaded rod.

epo (author)Angry_Monk2008-05-26

Hi! Thanks for showing the details on the modifications you made of Stuart's instructable. I can see in your other image posted under "others who have finished" that you are using a ridgid laminate trimmer which have a variable speed feature. Let me pick on your brain and experience if you don't mind :) - How fast do you run the router? - where do you get your router or end mill bit? - what is the maximum depth of cut per pass do you subject your cnc? - Stuart indicated a feed rate of 60 ipm, do you have the same or you have another preference? - Have you used your cnc to cut mdf? I know that's a LOT of questions but will appreciate your insights. Thanks. Edgar

Angry_Monk (author)epo2008-05-26

its really not a lot of questions. sometimes you just have to ask, and i can answer. i run the router at close to max speed, i dont know the RPMs. i figure this CNC isn't exactly the most rigid one out there and if you cut at a decent speed things will flex a little, and i needed it to be very precise. so the higher the RPMs the less stress on the bit and such. you can get the cutting bits from Master Carr (they basically have close to everything, so if you ever need anything check there). for depth of cut.. again, i needed precision, so if you can sacrifice this you could cut lower. but i usually didn't go more than 1/8" deep per pass, and that would be a heavy cut rough pass. i think it got it to run good at 30-40 ipm, 60 is a little fast for the small parts i was cutting. when cutting i would go down to 3ipm. i haven't actually used the machine to cut MDF but i think it would do fine cutting it. i don't know how fast you would be able to go but you could cut it. a few things worth noting about this: when you pick a motor for this CNC make sure it has collets for 1/4" and1/8" tools. its a pain if it doesn't... but if you run into that (like i did) you can actually get a collet adapter from Drill Bit one major thing i noticed about this CNC was that although the I-Beam for the X axis traverse was strong in the Z direction (could take some weight) the carriage could rotate about the I-Beam (rotate about the X axis). this would make the carriage flex in a hard cut. if i were to redo these plans i would definitely do something to fix this. maybe add another I-beam about 4-6" away from the existing one to get more rotary support. i have to admin that after i built this it couldn't cut as precisely as i needed it to so i ended up buying a desktop CNC mill from Taig. since i already had the steppers and controller board from this i could buy the CNC ready version. but i do not regret building this, i will still keep using it as a CNC Router. it was great to build, it taught me a lot about CNC in general being that this was my first experience with it. but for those who just want to cut about good parts CNC style, then this works fine, plus its cutting area is huge (and easily scaled up.).

epo (author)Angry_Monk2008-05-26

Hi! Thanks for spending time to answer my query :) and your insights will prove to be very useful as I optimize the performance of my cnc. Fastest rpm assuming that you had what I have (i.e., ridgid laminate trimmer) should be 35000. Currently I'm running g ocde with feed rate of 12ipm and wow you did ramp it up almost 3x. That will save me time! But then the issue of precision is the downside. I did anticipate using 1/8 bits so got an adapter to fit into the 1/4 spec of the trimmer. I have no problem visualizing flexing problems you experienced. Like you, this is my first cnc encounter and the experience will probably serve me well in the future. Out of curiosity, where did you purchase your taig unit and for how much? Regards.

Angry_Monk (author)epo2008-05-26

i got the taig mill from , the guy that runs the site is really nice and helpful. i got the CNC ready version and that was about 1100$. i really like it, its very nice and precise.

just an FYI, i could run this CNC router at 30-40 ipm but that was only rapid traverse. when cutting i went much slower. and even on 30-40ipm you can miss steps, 12ipm is better, but i would only go up to 20.

epo (author)Angry_Monk2008-05-26


wizardrule (author)Angry_Monk2008-10-04

Got the dxf file around you can post?

Angry_Monk (author)wizardrule2008-10-04

He has the DXF for the parts under step 4.

Torito (author)2008-11-04

Are the y axis rails round or square? I couldn't find that out...

galaxyman7 (author)Torito2008-11-05

They are round. The only parts that needs square tubing are the "bearing blocks". These are what will have bearings attached to them so that they can slide along the rails.

Torito (author)galaxyman72008-11-05

Thanks GalaxMan7!! I understood the bearings system, kind of autocenter rail and hard to move perpendicular to the rail. Excellent drawing! :) Do you have/know/test the diameter of the rail? What is the material of the bearing blocks, aluminium or wood? Thanks for your time.

galaxyman7 (author)Torito2008-11-08

The diameter of the rod is .5" DIA (aluminum). The square tube is .75" square (also aluminum). The bearings are 8 mm ID and 22 mm OD. Also, I forgot to draw the nuts on the end of the bearings that keep them on. I hope that answers your questions ;)

qyy (author)galaxyman72010-05-18

 can u tell me the rpm and horsepower suitable for this machine.

galaxyman7 (author)qyy2010-05-19

I would suggest at least 100 oz-in torque for the stepper motors. I have 200 oz-in on my machine and they work great for pretty much everything.  As far as RPM and horsepower, steppers aren't usually rated like that. 

qyy (author)galaxyman72010-05-20

 can i have a schematic diagram for pic card to the stepper motor if iam using 4wyre stpper motor?

galaxyman7 (author)qyy2010-05-20

4 wire motors are bipolar steppers. The direction of the current must be switched back and forth for these to work.  Hobbycnc sells the driver board that works with unipolar or bipolar.  If you don't want to buy it, look for a circuit online. Google "Bipolar stepper motor driver"

Torito (author)galaxyman72008-11-10

Excellent, more than I expected. Thanks.

tekenika (author)galaxyman72009-09-03

ref:How to Make a Three Axis CNC... Hi I want to make this machine. I saw your post in youtube. I need some help. I have a question. What keeps the machine on the track? (Y axis) Only the belt? I, like you, prefer to use threaded rods. Do you have a drawing of the modification? Thanks and best regards from now Hector Ushuaia

galaxyman7 (author)tekenika2009-09-03

Ok, here is a few pictures.

tekenika (author)galaxyman72009-09-04

Thank you very much The diagrams are simple and clear. I follow with my questions. That keeps the machine on the rails? The threaded rods? Greetings

galaxyman7 (author)tekenika2009-09-04

Yes, the threaded rod keeps it on the rails. I recommend using a thicker threaded rod so that there is very little movement. 3/4" would be perfect. You can get a PVC pipe coupler from 1/4" to 3/4", then you can drill holes into the side and put set screws through to hold the threaded rod to the motor shaft. Here is a website for an adapter.

tekenika (author)galaxyman72009-09-05

Hello Thank you very much for your attention. I agree. The threaded rod should be thicker. My problem is I'm planning a mini-mini version of this machine, using printer motors, it is possible that 3 / 4 is too much for these little motor. A possible solution could be carriers for bearings rotate 90 degrees. I should change the table a bit. Greetings Hector

galaxyman7 (author)tekenika2009-09-05

Another way would be to add a seperate rod that the cart can slide on instead of relying on the strength of the threaded rod.

tekenika (author)galaxyman72009-09-05

OK. It could be a solution. It will take a bronze bushing or bearing. Another possibility I've seen is to use an angle as rail. Deputy quick scheme. Greetings

galaxyman7 (author)tekenika2009-09-08

The angle with the two bearings works only if you have a method to tighten them onto the rail. This means you either have two on either side of a track that can be tightened inward, or you have a track on both the right and the left, where the distance between the tracks can be extended. The best is a combination with both. Here is a pic

tekenika (author)galaxyman72009-09-09

We agree. For simplicity, I only showed one side. So the vertical line is dotted. In a small machine, the table itself could be angled to accommodate the aluminum angles. best regards

Rick_kap (author)2009-12-09


A big THANK YOU to the author of this instructable. Over the last 4 months, I have built this project, and it is up and running.
I did make some alterations as i felt it wasn't very solid enough but overall i would say this is the best instructable i've built.

These photos are a bit old now as i've have an additional attachment to be able to cut vinyl. I am also in the process of adding another attachment to be able to use the cnc as a plotter.

Thank you again


qyy (author)Rick_kap2010-05-18

 hye rick
can i know the specification of your stepper motor?
the rpm,and the horse power?

and cn u gve me a schematic diagram,electrical diagram and how do you modified it to be with emergency stop button

god bless u,,thanks

my email adress :

About This Instructable




More by oomlout:How to Breadboard Arduino Compatible.RGB LED Tutorial (using an Arduino) (RGBL)Solderless Breadboard Layout Sheets (plug and play electronics)
Add instructable to: