In this tutorial we will learn how to build a CNC machine with a step-by-step guide so you can easily build one on your own.
This is a Fully 3D Printed CNC machine or a CNC router that I designed with two specific goals in mind, to be as rigid as possible, and to be as simple as possible to build.
Overview
Being rigid directly affects the performance of the machine and besides engraving and cutting wood, I wanted this CNC router to be capable of engraving and cutting aluminum. It turned out it can do that quite confidently.
Here’s an example of machining a propeller out of aluminum. With just a little bit of sanding the propeller surface finished turned out super smooth.


I also did some accuracy tests by cutting various shapes out of aluminum. If we use appropriate feeds and speeds, we can get the aluminum parts within 0.05mm accuracy.
I think that’s a descent accuracy considering it’s a 3D printed CNC machine, using a trimmer router, and an Arduino UNO and GRBL for the motion-control.
Engraving aluminum is a breeze. I did a few keychains engravings with very small details under 1mm, and they came out great.


I also tried engraving brass which also turned out great.


This 3D printed CNC router is even capable of cutting steel.
My second goal for this CNC machine was to be as simple as possible to build, which meant that I didn’t want to use any power tool for making the machine, no cutting aluminum extrusions with a saw, no drilling, no tapping…. Nothing.
Literary, you can build this CNC machine with just a set of Allen keys, because I specifically designed it to utilize just standard components that can be easily sourced from sites like Amazon, AliExpress or any other store of your choice. So, it’s almost like a DIY kit that you just have to assemble it. Below you can find the complete list of components needed for this CNC build.
Though (there is a caveat of course), you need a 3D printer in order to make this CNC machine, but I don’t think it’s a big deal, as if you don’t have one, nowadays there are so many 3D printing services from where you can easily get the 3D printed parts for it.
I’m calling it a fully 3D printed CNC machine, as the entire CNC structure is based on 3D printed parts, including the X and Z-axis plates, the router mount and even the ball screw bearing blocks are 3D printed.
The design was optimized to get the most out of the fact that we can easily print complex parts with a 3D printer. In combination with some 20x40mm aluminum extrusions, 15mm linear rails, and 16mm ball screws, I think I managed to get a decent performance out of it. It’s capable of engraving and even precision parts out of aluminum, and the wood projects are a breeze; it can easily cut any hardwood, and the wood engravings are just perfect. Just take a look at this 340x340mm 3D relief in beech hardwood. It looks stunning.

The work area is 450x350x110mm, but the coolest part is that we can easily scale this CNC machine.
We can simply use longer components for some of the aluminum extrusions, the linear rails and the ball screws, and we instantly get larger work area while all other components and the assembly process itself remain the same.
Below can find details about which components define the work area of the machine, so you can get your desired work area by choosing the right components.
3D Model and STL Download Files
You can view the 3D model of this DIY CNC Machine directly on your web-browser with Onshape.

You can get the 3D model of this DIY CNC Machine, as well as the STL files for 3D Printing from Cults3D.
Bill of Materials
Below is the complete list of components needed for this DIY CNC build.
The given dimensions are for the exact same size as the CNC I demonstrated building with 450x350mm work area.
| Component | Quantity | Purchase Links |
|---|---|---|
| Aluminum Extrusion 2080 – 600mm (Y-axis, Custom Length) | 2 | Amazon | AliExpress |
| Aluminum Extrusion 2040 – 600mm (X-axis Base, Custom Length) | 3 | Amazon | AliExpress |
| Aluminum Extrusion 2040 – 700mm (X-axis Gantry, Custom Length) | 2 | Amazon | AliExpress |
| Aluminum Extrusion 2040 – 200mm | 2 | Amazon | AliExpress |
| Aluminum Extrusion 2040 – 100mm | 2 | Amazon | AliExpress |
| Linear Rail HGR15 – 600mm (Y-axis, Custom Length) & (X-axis, Custom Length) | 4 | Amazon | AliExpress |
| Linear Rail HGR15 – 300mm (Z-axis) | 2 | Amazon | AliExpress |
| Ball Screw SFU1605 – 500mm (Y-axis, Custom Length) | 1 | Amazon | AliExpress |
| Ball Screw SFU1605 – 600mm (X-axis, Custom Length) | 2 | Amazon | AliExpress |
| Ball Screw SFU1605 – 300mm (Z-axis) | 1 | Amazon | AliExpress |
| Angular Contact Bearings – 7001 P5-DB A-Pair | (4 pairs) | Amazon | AliExpress |
| M12x1mm Locknut | 4 | Amazon | AliExpress |
| Radial Ball Bearing – 6001 – 2RS | 4 | Amazon | AliExpress |
| Corner Bracket 28x20x28mm (with suitable T-slot nuts and M5 Bolts) | 18 | Amazon | AliExpress |
| Corner Bracket 20x20x20mm (with suitable T-slot nuts and M5 Bolts) | 8 | Amazon | AliExpress |
| M5 Sliding T-nut | 100 | Amazon | AliExpress |
| M5 Hammer Head T-nut | 100 | Amazon | AliExpress |
| M4 Sliding T-nut | 50 | Amazon | AliExpress |
| M4 Hammer Head T-nut | 50 | Amazon | AliExpress |
| Stepper Motor NEMA23 | 4 | Amazon | AliExpress |
| Bolts Socket Head M3x12mm – 10 M3x16mm – 5 M3x30mm – 5 M4x10mm – 5 M4x12mm – 5 M4x14mm – 60 M4x25mm – 10 M5x12mm – 50 M5x16mm – 40 M5x20mm – 40 M5x30mm – 40 M5x50mm – 25 M5x60mm – 35 M5x70mm – 5 | / | Amazon | AliExpress |
Disclosure: These are affiliate links. As an Amazon Associate I earn from qualifying purchases.
For the electronics components, the BOM will be in the next dedicated tutorial for the CNC control box which is coming soon.
Scaling the CNC – Custom Work Area Size
If you would like to increase the work area of the CNC you could just increase the size of the aluminum extrusions, the linear rails and the ball screws for the particular axis.
For example, in order to increase work area in the Y-axis, from 450x350mm to 450x750mm, we need to increase the length of the Y-axis aluminum extrusion, linear rail and ball screw. The difference is 750-350=300mm, so we need to add 300mm to the base lengths of this CNC machine for the Y-axis parts. That would be:
- Aluminum Extrusion 2080 – 600mm + 300mm = 900mm
- Linear Rail HGR15 – 600mm + 300mm = 900mm
- Ball Screw SFU1605 – 500mm + 300mm = 800mm
The same principle is used for scaling the work area of the machine in the X-axis. Though, there is one difference here as we would increase the gantry size, we would need to add another truss structure element.

Please note that increasing the size of the machine in the X-axis or the gantry would result in reduction of the rigidity of the whole machine, compared to the increase of the size in the Y-axis which almost doesn’t affect the rigidity of the whole machine.
Assembly
You can follow the following video for a complete step-by-step guide on how to build this DIY 3D Printed CNC machine.








Hi Dejan,
I’ve watched quite a few videos on DIY CNC machines on Youtube, but this one caught my attention. I am extremely impressed with the attention to detail and the accuracy of the finished product. Unfortunately my 3D printer does not have a big enough build volume to print the x-axis plate, but I have friends that will be able to assist with that.
I am definitely making this one of my next projects. Thank you for the excellent work and sharing it with us.
Greetings from South Africa!
Hey, I’m glad to hear it!
Have fun building one and of course, stay tuned, as this project will get improvements and more related content is comming.
Hello Dejan!
I was just finishing my long time CNC project when your video came out and you made me think about some aspects that i want to revise on mine. I am doing almost all in aluminium 10mm plates and 2040 / 2080 profiles but loved your way of doing this “3d printer friendly” and i wasn’t aware of the PLA carbon fiber capabilities. Contratulations for the project and the video, i simply love your projects and how you share everything with the world.
The most important thing i want to say is that some years ago i built your robot arm (with the hobby servos) and since then I am always trying to make my own interactions and trying to have 100% own mechanical designs in my machines. You and your robot arm (and other projects) were super important so i can feel i can do it myself from stratch, because you make us understand how and why you get there, so I feel very motivated to walk my on path “from scratch”.
Super Thank you for your work, it really makes a difference.
Greeting from Portugal.
Pedro
Hey Pedro,
Thank you! I’m so pleased and happy to hear that I’ve influenced and made a difference in some of your works that you do. It’s the ultimate satisfaction actually and motivation to keep on working it that direction.
Cheers,
Dejan
Please can you tell me the approximate finished cost of this project (not including the Makita router. I understand that it will vary considerably depending on the country, but just a ball-park please (or just what it cost you).
Thanks
Hey, I’m still working on the BOM, but yeah as you said it depends a lot of where you live because of shipping and taxes. It’s around $1000 without the router and without the electronics control box. When the BOM will be complete you will be able to calculate exactly how much it would cost you. Also in the next video I will explain the electronics and make a cost breakdown and options for it.
Cheers
Hello,
I’ve been looking for a new project and i came across
your video on this bad a%% CNC. This is my next project
I’m excited about building it and cant wait to get started.
Moneys tight like always and my main board in my printer is burnt. i will probably order the parts or depending on the price i may just go ahead and get a new board or new creality.
i just wanted to say thank you for keeping IT open source
i will send pics and let you know how things are coming once i get all the parts to start it. thank you.
Hey, glad to hear it. Have fun building one!