Introduction: Low Budget CNC

About: Electronics and Controls engineer with a passion for developing both electronics, control and mechanics! See more of my stuff on my webpage !

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.

Build a Tool Contest 2017

First Prize in the
Build a Tool Contest 2017