This is the third iteration of my low budget CNC router design, which I began working on when I was in need of a cheap CNC machine some years ago. The idea behind this machine, is that it should be cheap and simple, making it possible for people on a low budget (like me being a student) to build a CNC machine using only a few tools. For that reason most of the parts can be found in a regular hardware store, and the design is slimmed down to requiring only the truly necessary parts.

It should be possible to keep costs below 200 USD including everything from nuts, to cable sleeves and CNC controller.

In this instructable I will do my best to explain how I made this machine, so that you can do one on your own!

Detailed bill of materials, files for 3D printing and drawings are available in this instructable. I have spent some time on drawing the machine in Fusion360, making it possible to take a closer look on the construction.

A CNC machine is not a toy, be careful when building and using it! I can not be held responsible for injury you might suffer while building the machine or when using it. Nor can I be held responsible for damage that might be inflicted upon any hardware used in this build. Even though I have put a lot of effort and time into this, there might still be missing things in the BOM and faults in my drawings or descriptions - please write me if you find such things.

If you can agree to the terms above, feel free to build and carve!


  • Work area: 270 x 430 x 100 mm (X, Y, Z) approximately
  • Precision: Better than 1 mm (based on tests done by me)
  • Speed: Around 500 mm/min
  • Suitable materials: Plastics, wood and light aluminum work
  • The build uses affordable components available in many hardware stores, making it quite cheap!

Step 1: Bill of Materials

The BOM includes everything I used for this build! Details about the wooden and 3D printed parts can be obtained from the 3D model. Here stl files for printing can also be exctracted through Fusion 360.

Lengths of pipes are very dependent on how deep you drill the holes for them in the wood. Wire lengths are also dependent on how you wire the machine up.

Besides the parts listed in the BOM documents, you will need the wooden parts. They are made out of 16 mm MDF and painted before assembly. The details of these parts can be obtained from the 3D model.


For making the wooden parts I used a Table Saw, Jigsaw and a cordless drill. Holes for the plumping pipe was done with a flat wood drill, of an apporpiate size. As some parts are 3D printed, you will need access to such a machine. However, It is not strictly necessary to 3D print parts. You will be able to make alternatives without a 3D printer.

Step 2: 3D Model

I have spent some time on drawing the model in 3D. I have done most of the things myself, but I have used a couple of GrabCAD resources in the model:

USB Panel Mount

NEMA 17 motor

AC Plug

Emergency Stop

608 Bearing

And finally the Nut Covers are found here:

Nut Cover

And the Arduino UNO bumper here:

Arduin UNO Bumper

And finally the link for the complete model as shown, is found here:

Fusion 360 model

Step 3: Drawings and STL

After a few questions regarding the drawings, I have made a couple of technical drawings showing measurements. I have also added the STL files from the 3D model, to make it more convenient to 3D print them.

All measurements are in millimeter !

Step 4: Assembly

The pipes are both used as linear rails and for keeping the machine together. The pipes are located in holes drilled in the wooden pieces to fix their position. The holes are drilled approximately half way through the wood (i.e. 8 mm) and a center hole of 8 mm is drilled for the threaded rod. Threaded rod is located inside the pipes, keeping the machine together and partly fixing the pipes. This should be evident from the pictures. Measurements of wooden parts and holes in both wooden parts and aluminum angles, can be found in the 3D model. The aluminum angles are seated in the wooden pieces, where a 1 mm deep groove is carved as can be seen from the pictures below. The groove is also present in the 3D model, where measurements can be taken.

Step 5: GRBL Settings

For running the machine I use GRBL. It has a lot of features, it's open source, gives you an USB interface (in contrast to common CNC controllers) and runs on Arduino UNO.

I have only done light tuning of speed and acceleration, so there might be something to gain here. But it's a balance between current and speed. If you try to increase acceleration or speed, you might need more torque, i.e. you have to give the motors a higher current (thereby heating up the drivers). I have adjusted the current to a level where I do not have to add active cooling to the setup.

My settings you can see here.

Step 6: GRBL Shield Note

I had a bit of a struggle with noise on the limit switch channels of the cheap GRBL shield I bought. It didn't help to use the NC contact set of the switches, so it's a noise issue. Therefore I placed 100 nF caps between GND and each channel to get rid of this.

Step 7: Final Notes

A couple of fotos showing what I have used the CNC for is shown here. The two robots are made of 6 mm plywood, where the precision is better than 1 mm. Finally a video of the machine routing aluminium can be seen here. The important thing about routing aluminium is getting the right bit, spindle speed and routing speed. This is of course also true for wood, but wood is just more forgiving than aluminium or pelxi glass.

I hope it's possible to put together the pieces from the 3D model, BOM, pictures and this short instructable. Feel free to comment on the instructable and/or the design.

<p>Thanks for sharing! Very neat looking CNC, the dimensioned drawings are informative, and the addition of the 3D model and parts list make it easy to understand what's going on! I look forward to building this :)</p>
<p>hello sir, what you use lead screw in your awasome project?</p>
<p>Hi!</p><p>I use regular M8 threaded rod. With the long nuts, they barely have any backlash.</p><p>Best regards,</p><p>Mogens</p>
<p>I made a quick prototype of the z-axis to see how the linear rail works. I am having a problem with the bearing on the u-bolt twisting slightly because the bolt is so much smaller than the bearing bore, causing the carriage to bind. When it stays straight, it slides very smoothly. I noticed in your pictures that the bearing bore is larger than your u-bolts too so I was wondering if you had this problem and if you have any suggestions on preventing it. </p>
Hi. I have not had that issue. The bearings sits nicely on the u-bolts. It is of course important to align them properly before tightening the assembly. I guess it could be caused by the u-bolt not being totally perpendicular to the tubing. I could imagine that if one of the u-bolts was misaligned, it could result in what you describe.
<p>hello sir i was trying to built a cnc from three months and i also prepared a cad design for it but it was a really costy but after seeing your machine i am going to make a cheaper cnc machine </p><p>please tell me that you will help me in this project </p>
Hi!<br>I can only offer you the help given in the instructable. Everything you need to know, should be there. I cannot offer you personal support in the entire process of building and configuring the machine.<br><br>Best regards,<br>Mogens
<p>Hello, do you have any information on how to wire all the electrical parts? I mean the steppers, power supply, CNC shield.</p>
Hi, I do not have a diagram. But just Google &quot;grbl wiring &quot;. There are many examples to find, and they are all similar.
<p>Thanks, I've found a few examples, and a video on youtube, that made things clearer. One more question, what CAM software do you use for creating g-code?</p>
<p>Good to hear! I have paid for Lazycam some years ago, so that is what I use for simple tasks. There is also something like Camotics and a bunch of other open source CAM solutions that I have not yet tried to work with. At the moment I don't have a CNC (I sold it a year ago or so), so I am not up to date on the newest open source CAM software out there.</p><p>Best regards,</p><p>Mogens</p>
<p>Hi, first of all very cool project.</p><p>Secondly, I'm mainly interested in CNC for aluminum. Is it possible to work with aluminum of aprox 10 mm thickness?</p>
Thanks. I guess 10mm would be a bit much. But maybe it could be achieved with a good spindle and the right settings.
<p>I may have to try this, though I will probably have to adapt your design for imperial (non-metric) hardware since it can be tough to find metric hardware in local hardware stores in the US. Thanks for sharing. </p><p>Questions: I see that you have milled some grooves for the aluminum angle to sit in but there does not appear to be any screws or bolts holding it down. Is the aluminum angle simply held in place by the pressure from the bearing on the u-bolt? Also, what is the wall thickness of the steel pipe or tubing? Any thoughts on the minimum thickness needed if I decide to use tubing instead of plumbing pipe?</p>
<p>Thank you for the nice words. I can see the problem with the imperical vs metric units in the US. The grooves I just made with a table saw, and yes, the aluminum angle is held in the groove by the pressure from the u-bolt and bearing. The pipe wall thickness is around 2.65 mm. The gantry does weigh a bit, so I don't think you should go much further down in tube dimension. You might risk that it will bend a bit on the middle if the dimension gets to small.</p><p>Best regards,</p><p>Mogens</p>
Awesome build mate. Some very ingenious ideas. Thanks for the instructible!
Thank you for the nice words!
<p>this is very compact annawesome checkout my cnc too..</p><p>https://www.instructables.com/id/Homemade-Custom-CNC-Router/</p>
Thanks for the kind words. Your machine also looks nice - a bit bigger though :)
<p>Looks like a great entry point for those wanting to get into DIY CNC, especially on a budget. It won't be the fastest, sturdiest, most precise machine on block; but it will do the job as Nicengineering as shown with some of his other work...</p><p>Great job and great instructable, ingenius way of using off the shelf component to make a working CNC. Even better you have tested the design and shared it with all of us. </p><p>You got my vote.</p>
Thanks for the kind words and the vote! Appreciate it!
<p>Hello, why did you choose MDF board for this router design? Maybe laminated, water resistant plywood would be better, or it has some properties, which make it unsuitable for this task?</p>
Hi! I simply chose MDF because it was cheapest and it is easy to work with. I have done another machine in plywood, and that also works fine. The plywood is more sturdy, but this machine does not require it.
<p>Thanks for a quick reply. One more question. I can't access the fusion 360 model, I get such an error: </p><div> Unrecoverable exit code from extractor: -1073741831</div><p>Is it only me, or others also encounter this problem?</p>
<p>Strange! I got the same error... I read on the Fusion forums that some versions had a flaw that causes this - and that I could try saving it with the newest Fusion release. I have just done that, and now it works once again! </p>
are you sure there are 38 bearings needed for this project?
<p>Yea, that almost stopped this project for me, or at least budget wise, or called for another solution/ redesign. 30 ball bearings in Sweden (cheapest i could find) was more than 65$ plus shipping (low low quality). But ebay to the rescue, bought 50 (for skateboards) for 11$ shipping included from china..=) 12 for x 10 for y and 10 for z, and the 2 supports per screw (6) = 38? grtz Pelle</p>
I buy bearings at reprapworld.com They are not that costly. But ebay may be cheaper!
Yep. There are 6 alu angle pieces with 4 bearings each = 24. Then there is 8 u-bolts with one bearing each = 8. And finally there is a bearing in each end of the threaded rod used for lead screw = 6. So all in all 38 :)
<p>Ah, guess you call them limit switches from 3 from bom.ods?</p>
<p>Yes that is correct. I use 3 limit switches, or microswitches - so 1 per axis :)</p>
<p>Thanks for the reply, ordered synthetos 3axis cnc controller from adafruit. </p><p>https://www.adafruit.com/products/1750</p><p> How many micro switches do you use? two per axis? grtz</p>
<p>That shield should work just fine!</p>
<p>Will this work with any kind of gbrl shiel? Were did you buy yours and which one would you buy in an afterthought? =) GREETS Gabberpelle</p>
Hi! Yes it should work with any grbl shield having at least 3 drivers. I just found the cheapest on ebay. But that may also be why I had to modify it a bit. It wasn't an issue for me though...
<p>I want to thanks you for posting the details for the non-BOM units. This really helps, since I would have make my own my reviewing the 3D model. Thanks again. I have started obtaining the BOM parts and will start making the other parts.</p>
<p>No problem! I can see now, that of course not everyone is familiar with Fusion 360... I look forward to see your result!</p><p>Best regards,</p><p>Mogens</p>
<p>Thanks for this instructable. As it happens I am building a CNC machine as well and your design gave me some new ideas on how to proceed.</p><p>I do have 2 questions for you;</p><p>1) how do you keep the bearings from slipping on the u-bolts? It does not look like they are firmly attached at all.<br>2) have you had any trouble aligning the pipes so the various parts run smoothly without jitter? I'm asking, because I am currently using solid metal rods of roughly the same size, but making sure they are in absolute alignment is a bit tricky and when they are not, the machine jitters quite a bit.</p><p>Thanks!</p>
<p>Hi!</p><p>The bearings are not attached to the u-bolts. But they stay where they are, since the u-bolts sits tight against the pipes. The bearings are unable to move to the sides when everything is tightened.</p><p>The alignment has not been a problem - everything runs smooth. I have built 10 of these machines in the current design revision, to ensure that the design was okay. Essentially it all comes down to how much effort is put into building the machine (ensuring that all measurements are kept within a small margin). The machine design here is a bit forgiving though. The MDF is a bit soft, so some of the misalignment will be removed through this. </p>
Thanks for the info! Using MDF makes sense... most of the structure of my current machine is much harder wood and/or metal. Maybe I need to look for more pliable materials... Back to the drawing board!
How much is this project cost?
<p>I paid around 200 USD in parts for this machine. That includes everything, also the dremel (not a genuine dremel), controller and PSU.</p>
<p>Stupid me..........</p><p>Have i missed something, is there any drawings that shows the MDF-parts and that have measurements and places for holes etc. marked.</p><p>What kind of drill is used as the actual machine for milling ?</p><p>Programming, is that out of the scope of this article ?</p><p>Wille B.</p>
<p>I have just added drawings showing the MDF parts with measurements. Hope that helps!</p>
<p>Hi,</p><p>You should open the file in the provided link in fusion 360 (step 2). In there you can measure everything out :)</p><p>Question 2 I don't understand?</p><p>Software is just plain GRBL, and settings is shown in Step 4. There is not much programming to it.</p>
1mm accuracy? Must be a typo?
No, why should it be that? Based on the parts I have done with it, I have gotten an accuracy that is at least 1mm.
How to i get one? This cnc be nice to help job start my company...
Hi, <br>The idea is that you should be able to build it yourself quite easily. It is not available for purchase :)

About This Instructable




Bio: Electronic engineering student with a passion for developing both electronics and mechanics! See more of my stuff here: http://www.thingiverse.com/nic6911/designs
More by nicengineering:UStepper Robot Arm Flower Pot Watering System Low Budget CNC 
Add instructable to: