Picture of Building your own CNC router/milling machine

Already at the age of 12 I was dreaming of making a machine which could make things! A machine which would give me the opportunity to create products for in and around the house. Two years later I stumbled ont the words 'Computer Numerical Control' or more specifically the CNC milling machine. After I found out people were able to build one themselves in their own shed, I knew it! I had to build one, I yearned to have it!!
For three months I tried to find the proper parts (A dremeltool, drawer slides, pieces of wood, etc.), but I didn't really know how to build a CNC. The idea fell into oblivion.

In August 2013 the idea to build a CNC milling machine captivated me again. I just finished the first year of my bachelor in Industrial Design, so I was confident enough to start a build. The real difference between now and 5 years ago was, I learned to work with metal on manual milling machines and lathes and above all I had the right tools to design a machine.

This Instructable will show you how I built my CNC milling machine. I know a lot of CNC dreamers do not have the knowledge or tools to build a full metal machine. I still think and hope this Instructable inspires you to make your own machine. I include all of the necessary steps I went through in designing and building this CNC milling machine. All of the drawings I used to build my machine will be available.

Remove these adsRemove these ads by Signing Up

Step 1: The Design and CAD model

Picture of The Design and CAD model
Render front.JPG
Render back copy.jpg

It all started with a proper design, in my case a few sketches to get a good feeling for the dimensions and shape. Quickly after the sketching phase came the CAD model. I created my model in SolidWorks. If you plan to design your own machine I recommend a parametric CAD-modeling tool. Your machine will most likely have a lot of parts which have to fit together neatly, sometimes with some strange dimensions (for example pre-ordered parts). After all the parts were modeled, technical drawings were made. I used these drawings to machine all of the custom parts on the manual lathe and milling machine.

Since I'm a lover of good designed tools, I tried to make maintenance and the possibility to adjust things on the machine as easy as possible. Bearings could have been integrated in the machine, but I chose to place them in separate bearing blocks (in case it needs to be replaced in the future). Keeping your machine clean is very important too, so guiderails are all accessible (in case of the x-axis by detaching some cover plates)

De drawing above gives an overview of the main mechanical parts I will cover in this Instructable. I will of course also cover the electrical part of the machine. A PDF with the main dimensions is also attached.

Step 2: The frame

Picture of The frame

The frame provides the machine a rigid basis, not only to place it in your workshop but also for working on. To the frame the gantry will be mounted on sliding rails and later on a work surface. It also houses the stepper motor and spindle for the x-axis. I constructed my frame from 2 Maytec 40x80mm profiles, 2 endplates (both 10 mm thick aluminium), 4 corner pieces and a square structural piece.
All of the profiles are sawed right-angled and afterward milled exactly square. With the corner pieces a heavy (well relatively lightweight; it's all aluminium) frame was bolted together. The square frame made from the smaller profiles were mounted with 4 milled blocks (aluminium) on the inside of the Maytec profiles.

Since the frame sits beneath the worksurface dust could fall down on the guiderails (you want to keep them clean, more about that in step 5). To prevent this, dust covers were made and mounted around the guiderails. A angular profile mounted with brass milled t-nuts onto the may tech frame and 2mm aluminium plates mounted in the milled pockets on the endplates.

On both endplates bearing blocks are mounted for the spindle. They were hand milled and lathed to the right tolerances. On the front endplate mounting slots for the stepper motor were milled

All of the dimensions are documented in the technical drawings below.

Step 3: The Gantry

Picture of The Gantry

The gantry is the bridge between the x-axis guiderails and supports your milling motor above the workpiece. The higher you make it, the thicker the workpiece can be. There is however a disadvantage of high gantries. They work as levers on the guiderails and on the other hand the side plates tend to bend more easily by making them longer.

Most of the work I planned to do with the CNC involved milling aluminium parts. An average vise for the machine would be 60 mm high. Since the thickest blocks of aluminium easily available for me would be 60 mm high as well, I chose to space between the work surface and the piece of metal, which could hit the workpiece first, to be 125 mm. This gave me a starting point for the side plates. Since I wanted the center of an end mill hovering over the center of the runnigblocks (from the machines side view), the side plates had to be placed at an angle. Solidworks helped me to convert all of the measurements into the final parts. Because of all the complex dimensions I decided to mill these parts on an industrial CNC mill, this also gave me the opportunity to round all of the corners (would have been very hard to mill on a manual mill).

The part which supports the y-axis guiderails is formed out of an 5mm thick U-profile. It is mounted between the side plate with the help of two simple mounting blocks. On the inside the U-profile houses the y-axis spindle. Which is again supported by the same bearing blocks used for the x-axis. They are mounted on the outside of the side plates.

Beneath the main frame a plate was mounted on the underside of the gantry's side plates, giving a mounting point for the x-axis spindle nut.

All of the dimensions are provided in the drawings below.

Step 4: Last movement

Picture of Last movement

The last movement is what I call the Stepermotorhousing for the z-axis (plus the z-axis itself of course). It is constructed out of a frontplate mounted on the y-axis linear guiderails, 2 reinforcement plates, a motor mount and a backplate. On the front plate 2 linear guiderails were mounted for the z-axis onto which the Mountingplate for the milling motor was placed with the runner blocks.

The motor mount has the bearing for the z-axis spindle fitted into it. So I didn't use a bearing block for this spindle and is only supported on the top. he lower end is floating behind the mounting plate for the milling motor. The spindle nut for the Z-axis was directly bolted on the mounting plate for the milling motor.
The backplate provides a spot for the y-axis spindle nut to be mounted; it is mounted on the inside.

All of the custom mechanics are now ready. The CNC is assembled with the guiderails, spindles and a lot of bolts ;-)
De drawings are again provided below.

Step 5: Guide rails

Picture of Guide rails

Since your endmills need to move in 3 directions, the machine guides them with its guide rails. The guide rails provides the machine its rigidity in all directions except the one it moves in. You want them to let the machine only move in the preferred direction. Any backlash in other directions results in inaccuracies in your workpieces.
On my machine I wanted to use guideways supported on the full length of the rail, reducing the risk for deflections on the longer axes.
In my opinion some kitchen drawer slides are preferred above the hardened steel rods which are supported on the end (yes! they will deflect). Since you are constantly fighting the forces from the endmills against the material of the workpiece, a lot of support is recommended.
I chose the most expensive option; profiled linear guide rails with runner blocks. The are designed to receive forces in all directions. In the third picture you can see the looping bearing balls, they are positioned on both sides of the profile. All with a tangent 45 degree relative to each other, giving it the ability to handle high loads.

To get all guiderails perpendicular and parallel to each other they were all aligned with a dial indicator (with a maximum difference of 0,01 mm). If you spent your time on this part, the machine will perform very well in accuracy!

Step 6: Spindles and pulleys

Picture of Spindles and pulleys

The spindles translate the rotational movement from the stepper motors into a linear movement. When building your machine, you can choose between three different version; leadscrews or ball screws, either in metric or Imperial configuration. The main difference between leadscrews and ball screws is the accuracy and friction. Leadscrews tend to have a lot more friction and are less precise than ball screws. If your looking for a very accurate machine without any backlash, you should definitely consider ball screws. However, they are relatively expensive!

I chose to use leadscrews with a special plastic drivenut which reduce friction and are approach a backlash free system. You can order the drive nuts here:\

Both the ends of the x- and y-axis have to be turned to size to fit the bearings, pulleys and clamping nuts. Since the z-axis spindle is only supported on one and with a bearing, it is turned on only one side.

The pulleys are drilled to the turned shaft size (in my case 8 mm) and provided with a M4 setscrew perpendicular to the shafthole.

The drawings below show the dimensions

Step 7: Worksurface

The work surface is the place you will clamp your pieces of material on. On a lot of professional machine a T-slotted bed is used, giving you the option the use T-nuts and bolts to clamp your materials or vices. I chose to use a square piece of 18 mm birch-plywood on which a screw the materials and replace it when needed. An affordable work surface! You could also use Mdf with anchor nuts and bolts. Try to avoid screws and nails in Mdf, it doesn't grip them as good as a plywood board.

The work surface could be milled flat by the machine itself after you've completed it. Your first project :-)

Step 8: Electrical system

Picture of Electrical system

The main components in the electrical system are:

-Stepper motors

-Stepper drivers

-Powersupply (or 2)



-And last but not least: Safety first; a emergency stop ;-)

I chose to buy a complete set on Ebay with 3 Nema 23 stepper motors, 3 suitable drivers, a breakout board and a 36 V power supply. I use a step down converter to convert the 36 volt DC into 5 Volt DC. You can of course also put together your own set. Since I could not wait to sartup the machine I temporarily mounted all the drivers and power supply on a open board. The enclosure is in the making.

Since a few years it is also possible to connect a CNC very easily via USB. The UBS-breakout boards on the market generally come with their own software. I chose to use the parallel printer port found on most older PC's. I do not intend to use a new computer in a room full of dust, oil and aluminium chips

Since I had a lot of difficulties in finding a proper scheme with the needed components, I tried to make everything clear in the infographic above (you can also download the PDF and zoom in on the different parts)

Step 9: The milling motor

Picture of The milling motor

Since we want to remove material from the piece we clamp to the work surface, we need something that drives the cutting bits; i.e. the endmills. The milling motor will spin the cutters at low or high speeds. From a simple Dremeltool to a High frequency Spindle of several kWatts. For our machine size a Kress spindle is very convenient to start with. If you want to improve your machine, a reliable Hf spindle will please you. It all depents on the amount of money you can afford to spent on it.

Try to find something with the ability to use different sized collets.

Step 10: CNC software

Picture of CNC software

In the topic CNC software I'll discuss not only the program me that controls the machine, but also the software which produces code the machine will understand.

When we make a workpiece on our computer, either flat or a 3D CAD (Computer Aided Design) model, we need to convert it into something the machine will understand. With CAM (Computer Aided Machining) we can read vectors and 3D models and create an output suitable (Gcode) for the software which controls the machine. I'm allowed to use the professional software offered by my University

The software that controls the machine is a Gcode interpreter. When you use a USB-hub, as discussed in Electrical system), it will have it's own software. If you use the parallel printer port on a older computer, you can choose your own. I chose to use Mach3 since it it used by most hobbyists. You can find a lot about it on forums and google. Since Mach3 has many options and functions, I won't explain them. Just play with it and you'll discover its secrets :-)

Step 11: It's Alive!!!

Picture of It's Alive!!!
2014-04-26 22.43.25-1.jpg
2014-05-29 19.49.57.jpg

Ones connected properly, hookup the power supply, it just works!! Start with some pieces of wood or foam and you'll get used to the speeds and properties of your machine. The work above shows some of the pieces I'm working on in aluminium. As you can see the machine is able to work very intricately.

Search for proper parts and take your time. I could have build the machine in a month, but because I had to search for parts on Ebay etc., it took me half a year. This keeps the costs down of course, I was able to build the machine for less then €1000,-

I hope the story encourages you to build your own CNC milling machine. Please feel free to contact me or give a comment if you think something is missing.

1-40 of 152Next »
jiaziqian3 days ago
I am Chinese, your work is so cool, you can provide some type linear guide for you, three axes. There are some I can not buy in China, hoping to be able to find your model substitution, thank you ..
ForrestC1 month ago

I'm attempting to do something like this currently, but with 6 axes. It's still in the CAD stage, being planned in SolidWorks. Thinking about using plasma-cut 1" aluminum plate cleaned up manually on a mill, automotive wheel hubs as joints, ball screws for x, y and z axii, worm gears between the stepper motors and their individual axes (both to increase resolution and torque, as well as prevent weight from spinning the motors,) and 2.5HP water-cooled spindle to handle heavy cuts on steel. Would like it to have a 4'x4'x4' machining area, but that may be hard to accomplish.I would also like to make it modular, being able to go from 6 to 3 axes by simply unbolting the extras from the table.

WALLY_VINAM2 months ago

God, everything is in this tutorial, my friend you are the real MVP

lnr06263 months ago
I'm thinking of using this as a base for my cnc machine, just had a few questions.
What sort of resolution and repeatability have you managed to get on this?

Are there any changes you want to make to the design after a few months of use?

Did you manage to find the time to make a bom?

With this design, how complex would it be to switch out the spindle in the future? On that note, what are you using as a single currently? I'm on mobile, so i may have missed it in your description.

Thanks for posting this, it looks to be a very well made cnc.

@inr0626 just my 2 cents here: It's a pretty ok design. The accuracy depends upon a lot of factors. To name a few. First of all good supported rails get used here for the gantry - that's very positive as majority of DIY gantries and chinese junk are built without supported rails which is a bad idea.

Accuracy of the X-axis is heavily dependant upon just using 1 carriage each side here. They have been designed to use with 4 at the same time whereas here there is just 2. So that's giving a wobble here simply that shouldn't be there if you use 4. With for in fact it's micrometer accurate (under 0.01mm) those hiwin type carriages. In fact smaller rails can be used, pretty huge rails gets used here which can drive hundreds of kilo's and here it's just a few kilo's that are on top of it.

That would be improvement 1.

The weakness of this design is stiffness because of the cardhouse type construction of the bridge. This to large extend gets corrected in this design by using very thick aluminium for the sideplates. 60 mm thick if i read it correctly. That really helps remove the weakness of this design a lot!

Question is whether, especially in Europe, you can find such thick huge plates cheaply. I doubt it. Easy way to use thin aluminium is by constructing a T or U or angle shape. Also simple manner is just put a small thick plate on the 2 carriages (instead of 1 here) and then use some angle iron say 70x70x7 mm for example. Might add some weight yet that's not a problem at all more weight!

For the same stiffness reason the underplate in this design would be interesting to use angle iron or U shaped or T shaped iron/aluminium.

As for the spindel. This entire design has been made for a lightweight spindel. The chinese watercooled spindle as i have got here is 9 kilo. So that would be way way too heavy for this design and as also up to 13 mm (1/2 inch) mills can be put in such watercooled spindel, which generates too much forces - you'd want a far stronger gantry and bridge weighing way more - the heavier the better for that. At least 40 kilo bridge.

So this kress of say 1.5 kilo or so? (never bought one myself as that 90+ decibel it produces is too much for me to nonstop endure) so that's a great weight. Yet there is also a lot of other brands. You want a lightweight nevertheless.

Note that the advantage of such kress would be a great runout. It's made in Germany and under 0.005 mm runout (it really is). For watercooled spindles (which would require a heavier design) to get such or even better runout you'd need to buy from China a GDK series spindel which even in 2.2 kilowatt version is over 600 dollar to get at home. All the spindles in between that are the GDZ's either watercooled or aircooled which have very bad runout.

So overall this is a pretty well designed gantry, especially if we look to the age of its creator, my compliments!

Trochilidesign (author)  vincent.diepeveen2 months ago
@inr0626 and @Vincent.diepeveen.
Both of you thanks for the comments.
Coming back on the resolution; Vincent gave a very clear story about the stiffness and it's results on the accuracy! Can't make it clearer.
The good thing about making such a machine at a University is that we, as students, are provided with some very good stock material at for reasonable price (both 7075 and 6082 series, 7075 is extremely though and give great results on those gantry sideplates). The sideplates were actually milled from a solid slab of 7075 aluminium, both with a thickness of 20 mm. Partly sponsored by my university, that explains why I was an affordable option for my machine.

Starting on the 4 carriages on the x-axis. What a coincident! I've just started with a redesign for new sideplates to be mounted on 4 carriages. We a started design de machine 2 years ago, I already knew I should have implemented those extra carriages from the beginning. As a student cutting costs on expensive materials and carriages (plus extra length of the machine, because you loose some with 4 carriages) was necessary in those days. I've gathered some money to tune the machine now :)

As for the spindle; same story, just a matter of cutting costs. Would have been a lot nicer for the ears to have a small (german made) watercooled spindle ;)

I didn't manage to find the time to create a BOM so far....sorry

Yeah you finished a job and did well! That's an accomplishment! Now it's interesting to improve upon it and document carefully online what you did do and show lots of pictures and design documents.

I'm designing some stuff here in FreeCAD. The CNC mill and CNC surface grinder i am busy building i probably will put the CAD and design online.

Yet plans are to produce everything from steel. For 4 reasons. Most important reason is cost. Steel even newprice is under 1 euro a kilo (aluminium 6-10 euro a kilo) and the cnc mill will easily weigh 500 kilo or something as CAD seems like now. Secondly steel is 3x stiffer than aluminium whereas it weighs 2.89x less. Third, this is something most overlook - is the expansion. At each celcius higher or lower away from the assembling temperature of the machine, materials expand. Steel expands simply 2x less than aluminium, roughly spoken. Fourth is that i have a very heavy spindel which i bought because i also want to have the option to mill steel - though for robots and 3d printerdesign i mostly will be milling the expensive aluminium. If i want to mill steel and have a spindel because of this of 9 kilo which is watercooled, you simply know for sure you are looking at a heavy steel / concrete / granite type machine where every kilo extra is nice to have, as long as it doesn't disappear through the floor :)

Argument 4 simply implies that for this gantry you CAN keep a much lighter design. Yet redesigning its stiffness and especially torsional problems up to a level that the torsion and stiffness you can expect can rival the quality of the rails.

If we take for example hiwin rails, those are 90 euro a meter for 20 mm rails (excluding 21% tax) and even cheapest offer from China for the carriages is 100 dollar for 4 carriages.

there is not really ALTERNATIVES for this for a good gantry. I'm toying a bit with SBR20 and SBR16's here yet those are horrible toythings.

So the rails you can write down with capitals as something you need for sure, though a bit lighter rail might possible so i guess. You can CALCULATE by math what you need by the way :)

Now accuracy. 4 carriages very optimistically lowest grade hiwin i've seen claims of up to 0.007 millimeter or 7 micrometer error of the carriages. The rails itself at 1 meter distance could have parallellistic error 22 micrometer, which is a lot.

Basically you can get rid of all sorts of errors, the real big issue is HOW STRAIGHT IS THE RAILS if you want higher accuracy. Yet let's not go further there as that's beyond the scope of this project.

Now let's expand upon that 7 micrometer and just note that:

"Paper supports everything"

If we then take a look to the structure of the bridge, i wouldn't be surprised that if i touch it with 1 finger from the left or right that it swings a few millimeter.

Now i've heard different opinions and estimates on how much force a kress at full rpm with the largest size mill it can handle, can generate at its structure, yet let's round it up to about 20 kilo for now.

That means that priority 1 really is to make the gantry stiffer especially the bridge, without adding too much of a cost.

*that* would be very interesting. Like moving back to 10 mm aluminium for it yet introduce ridges that make it a lot stiffer than it is now.

bubbo7 months ago

Hi Trochilidesign,

first of all, great design! I'm thinking of using your design to make my own, i was just wondering: do you think it's possible to use the same dimensions and make the working area bigger? Let's say 60cm x 60cm. Or would i have to change the structure?

If you just mount a lightweight Kress it's not a problem. You do want to make the bridge more stiff though as the current design is not so stiff and have it rest at 4 carriages at the expensive rails rather than at 2.

Easy way make it wider is by using T shaped sideplates for the gantry and the overhang make it a wider U-shaped plate. So the horizontal part you especially want to make wider of the U shape, so instead of [__] it becomes then [_____] which is longer and vertical mounted that's stiffer. Maybe bit thicker as well. Can use steel there as well. More weight is not a problem. If gantry has been positioned level even small motor can move huge weight.

Stiffness of something goes by the power of 3. So U shape of 30 x 60 x 30 mm U length 2 feet versus 30 x 120 x 30 mm length 2 feet, that 30x120x30 U-shape is 8x stiffer when the 120 mm hangs vertical in the bridge.

Trochilidesign (author)  bubbo7 months ago


Of course you can, you just need to find the longer guiderails for the gantry and make the whole gantry and the frame wider. So, yes, you would have to change the structure

bubbo7 months ago

can i ask what is the thickness of the Gantry sideplates? Looks like 20mm thick aluminium?

Idea: use something thicker than 20 mm or simpler: make it a T-shaped plate. That's easy to do and adds lots of stiffness to this design and avoids the bridge to get torsional problems.

Trochilidesign (author)  bubbo7 months ago

Indeed, they were milled out of 20mm thick aluminium

tom.buyvoets3 months ago


Ik ben ook van plan een freesmachine te maken en vindt jouw ontwerp erg interressant. Mijn vraag is dan ook of u de solidworks bestanden nog hebt en of ik deze van u mag ontvangen.



ICareP3 months ago

I love this. I'm a mechanical/manufacturing engineering student in my first year aswell. I think this project is brilliant, but how long did it take to complete the DIY CNC MILLING MACHINE and when did you find the spare time lol. I would like to embark on this project because CNC machines tools and 3D printers are expensive to buy, they make life easier and are a means to and end. Milling, drilling, turning and lathe machine tools haven't been DIY or hand built since World War 2, BECAUSE THEY'RE BEING BUILT BY multinational corporations. But thanks to bringing this revolution back to life

hemant06013 months ago
Can you provide drive nut details of all three axis.

do you have any of the files in a format google sktechup can open?

also I was glad that you included the wiring (most don't) also what did you use as a microcontroller/ computer

crr095254 months ago

Could you post the link to where you got the guide rails and the lead screws?

JohnR324 months ago

I've looked at a few of this type of machine and yours is definitely one of the best designed and presented. I think I'd like to have a go at making one based on your design. I might need to make it a little smaller though (600x400mm workspace).

woodbutcher535 months ago

Very nice machine. I love the clean and simple looks of it. I think you have a design I would like to duplicate. Its beautiful. Thank You.

Trochilidesign (author)  woodbutcher534 months ago

Thanks! I look forward to your version, maybe even and improved one!

jaythenarwhal7 months ago
How much money would this cost to make?

How much money would this cost to make?

Trochilidesign (author)  mosbahbnsad4 months ago

It all depends on your chosen parts and where you buy them. If you manage to source your parts from eBay (second hand), you can keep the costs low

mosbahbnsad6 months ago

Is it possible to know the price of each piece alone

Trochilidesign (author)  mosbahbnsad4 months ago

It all depends on the price you can get on the raw materials, so it's impossible to give you a price of each piece alone

znipe5 months ago

Nice work!

noticed that there are no thickness on sideplate gantry can u specify what you used?

Trochilidesign (author)  znipe4 months ago

I used 20mm 60-series aluminium plate

LazyH5 months ago

Awesome looking build, the only thing is that you have the steppers labeled as spindles where as your spindle would actually be the dremel rotary tool.

Do you have a YouTube video of this running?

th3-1nonly7 months ago

I will make this when the opportunity arises, however, the guide is really comprehensive and thought through. Thank you for the great information, I will post pictures when this project is done :)

Trochilidesign (author)  th3-1nonly7 months ago

Great, I'm looking forward to that!!

phippsy277 months ago

wow thats pretty cool. im just at where you were about 7 years ago, a dreamer. Its amazing to see how far you can come (encouraging actually).

Trochilidesign (author)  phippsy277 months ago
Cool, that's the goal :)
fabiort9 months ago

Awesome proyect I am really interested in built it, but I would like to request to you the cad files

Me too

Too bad bruh

chessuraya7 months ago

Hey are the cad files for the cnc mill open source? :(

glogothetidis8 months ago

This is an awesome build ! Great job dude ..

1-40 of 152Next »