3 Axis CNC Milling Machine




Introduction: 3 Axis CNC Milling Machine

About: Naval Architect and Ocean Engineer highly interested in CNC

For lots of projects a CNC milling machine is necessary for good and fast results. After some research about current available machines I came to the conclusion that all machines in a price frame of up to 2000€ can not fulfill my needs regarding working space and accuracy.

I want:

- 900 x 400 x 120 mm working space

- relatively silent spindle with high power on low rotation rates

- as much stiffness as possible (for milling aluminium parts)

- as much precision as possible

- USB interface

- to spend under 2000 €

With this requirements I started 3D construction as an iterative process, checking lots of available parts.

Main focus: The parts have to fit together.

Finally I decided to build the machine in 30-B type nut 8 aluminium frames with 16mm ball-circulation-spindles, 15mm ball-circulation rail bearings and 3Amp. NEMA23 stepper motors that fit easily to a ready to buy mounting system.

This parts fit perfectly together without the need of special manufactured parts.

Step 1: Building the Frame

good planning is everything ..

one week after ordering the parts arrived. And after few minutes the X-axis was ready. - Easier than I thought!

The 15mm HRC linear bearings have a very good quality and after mounting them you already feel that they will do a very good job.

After 2 hours the first problem: spindles do not want to get into the roller bearings. My freezer is to small for 1060mm spindles, thats why I decided to get dry ice which meant to pause the project for a week.

Step 2: Setting Up the Spindles

Friend with package of dry ice arrived and after few minutes of freezing the spindles fit perfectly into the roller bearings.

Some more screws and it already looks a little bit like a CNC machine

Step 3: Electrical Parts

The mechanical part is now finished and i come to electrical parts.

As I am very familiar with Arduino and want to have full control via USB, i selected an Arduino Uno with a GRBL shield and TB8825 stepper drivers at first. This setup runs really uncomplicated and after view settings the machine was controllable on the PC. Great!

But as the TB8825 runs on max 1,9 Amp and 36V (becoming really hot), it is enough to run the machine but i recognized step losses due to too less power. Feel also not very good when I think of long milling process on this temperature..

I bought cheap TB6560 from china (5$ each, 3 weeks delivery) and connected them to the GRBL shield. The voltage ratings are not very precise for this board, you find ratings from 12 - 32V for this board. As I already have the 36V power supply, I just tried to use it.

Result: two stepper drivers works fine, one cannot bare the higher voltage and one only turns in one direction (not possible to change direction)

So again searching for a good driver..

The TB6600 is my final solution. It is fully covered with aluminium cooling device and easy to setup. Now running my steppers on X and Y axis with 2.2amps and Z axis with 2.7 amps. I could go up to 3 amp, but as i have a closed box to protect circuits against aluminium dust, I decided to run on 2.2 what is enough for my needs and produces nearly no heat. Additional I do not want the steppers to destroy the machine in case of any mistake, when i give them too much power.

I was long time thinking of a solution to protect power supply for steppers and frequency converter against small aluminium parts. There are many solutions where the converter is mounted very high or in enough distance to the milling machine. Main problem is, that this devices produces much heat and need their active cooling. My final solution are fine tights of my girlfriend. Cutting them into 30cm pieces and using them as a protection hose is very uncomplicated and provide good air flow.

Step 4: Spindle

The selection of a suitable spindle needs a lots of research. At first I thought to go with a standard Kress1050 spindle, but as it has only 1050W on 21000rpm, I cannot expect much power on lower rates.

For my requirements of dry milling aluminium and maybe some steel parts, I need power on 6000-12000rpm.

Thats why i finally chose a 3kw VFD from china incl. converter for 335€.

The quality of the spindle is very good. It is quite, powerful and easy to setup. I underestimated the weight of 9kg but luckily my frame is really strong and there are no problems with the heavy spindle. (The high weight is the reason to drive Z axis on 2.7 amps)

Step 5: Work Completed

It is done. The machine is working very well, I just had few problems with the stepper drivers but in total I am really satisfied with the result. I spent about 1500€ and have a machine matching exactly my needs.

First milling project was a negative form in POM.

- Machine did a good job!

Step 6: Upgrade for Aluminium Milling

Already at POM i saw that the torque on the Y-bearing is a little bit to high and the machine bends on high forces around the Y axis. That's why I decided to buy a second y-rail and upgrade the gantry accordingly.

After this there is now nearly no movement due to forces on the spindle. Great upgrade and of course worth the 120€.

Now I am ready for Aluminium.

With AlMg4,5Mn I made very good results without any cooling.

Step 7: ​Conclusion

Building an own CNC machine is really no rocket-science. I have relatively bad working conditions and equipment, but with good planing there are only few bits, screwdriver, gripper and normal drilling machine needed. One month CAD construction and purchase planning and four month of building to complete the machine. Building a second one would be much faster now but without any pre-knowledge in this field I had to learn a lot about the mechanics and electronics in that time.

Step 8: Parts

Here you can find all main parts. I would recommend AlMg4,5Mn alloys for all Aluminium plates.


I bought all electrical parts on ebay.

Arduino+GRBL-Shield: ~20€

Stepper Driver: 12€/ pc.

Power Supply: 40€

Stepper Motors: ~20€ /pc

Milling Spindle+Inverter: 335€


Linear Bearings:


Linear Rails:







Fix-Spindle-Bearings+Stepper holder:




Spindle-Stepper Couplings:

Got china couplings for 2,5€ /pc.


Bottom profiles:


X-profiles for rails:


Y-profiles for X-axis Stepper/Spindle mounting



Profile on Linear X-Bearing:

100mm https://www.dold-mechatronik.de/navi.php?a=36863&l...

Backplate / Mounting Plate:

5mm Aluminium Plate 600x200.


2x https://www.dold-mechatronik.de/navi.php?a=36865&l...



Z-Mounting Plate:

5mm 250x160 Aluminium Plate

Z-Sliding Plate for Spindle mounting:

5mm 200x160 Aluminium Plate

Step 9: Software

Using CAD, then CAM and finally G-Code Sender is very disappointed. After long search of a good software solution I found Estlcam, what is a very user-friendly, powerful software and very affordable (50€).

It completely overwrites the Arduino and controls the stepper motors on its own. There are many, good documented features. The trial version provides a complete software functionality with only some waiting times.

For example edge finding. It is just needed to connect a wire to Arduino A5 pin and connect the wire to the workpiece (if not metal, then use aluminium foil to cover it temporary). Via machine controls you can now drive the grounded milling tool against the working piece. As soon as the circuit is closed, the machine stops and sets the axis to zero. -Very useful!

(normally there is no separated grounding needed, because the spindle should be grounded)

Step 10: Upgrade 2

Until now the Y and Z axis had temporary plastic brackets to transmit forces of the spindle nuts and move the milling spindle accordingly.

The plastic brackets were out of strong plastic, but i do not trust them.. imagine the Z axis bracket would brake, the milling spindle would just fall down (obviously during milling process).

Thats why I milled this brackets now out of aluminium alloy (AlMgSi).

The result is attached picture. This is now much stronger as the plastic version I made before without a milling machine.

Step 11: Machine at Work

Now with a little bit of practice the machine already produces very good results (for hobby purpose)

This pictures show a nozzle of AlMg4,5Mn. I had to mill it from two sides. The final piece is without any further polishing or sandpaper.

I used a 6mm 3 flutes VHM tool. I figured out that 4-6mm tools are making very good results on this machine.

Be the First to Share


    • Photography Challenge

      Photography Challenge
    • New Year, New Skill Student Design Challenge

      New Year, New Skill Student Design Challenge
    • Fix It Speed Challenge

      Fix It Speed Challenge



    7 months ago

    Hello Soren,
    I am thinking about build of such machine, and want to look into yours in more detail. Could you please send me cad files


    8 months ago

    Hi Sören.

    I'm just discovering your job. Very nice.
    Please could you send me CAD files?
    I'm using Inventor.
    Best regards.



    11 months ago

    Hello SorenS7
    Impresive construction. Do you share CAD files of the CNC or can I buy please.


    1 year ago

    This is a 4 axis cnc machine


    Question 1 year ago

    Hai SorenS7,
    Fantastic machine! Is it possile for you to send me the CAD-files?
    My e-mail is johanjandegroot@gmail.com
    Many thanks in advance.


    Question 1 year ago

    Hello SorenS7
    When looking for information about possible construction of a cnc machine I came across your design and I must say it looks perfect! I also consider building this CNC machine for my hobby purposes. Would you be so willing and able to share CAD plans? It would help me a lot in the beginning of the project.
    Thank you very much for your reply


    Question 1 year ago

    Hello SörenS7!
    Your project is real interesting!
    Could you be send CAD files to me?
    You have been using the equipment for several years. What problems did you encounter? What design redesign ideas do you have? Thank you!
    My e-mail is - ingvarik@gmail.com


    Question 1 year ago

    Hello! this is the project that I was looking for since lot of time. I have appreciated a lot!
    I want to build this project for my personal amatorial use.
    Could you be so kind to share with me cad files? I use solidworks (3D).
    Probably when I will be ready for electronic installation I will need further help!.
    Thanks in advance.
    Kind regards.
    my mail: albireo1982@gmail.com


    2 years ago

    Hi, great tutorial! I've been saving this link for some time waiting until I had time for this, and it's finally happening! So can I please ask you if you could share the cads with me? Thanks in advance! Patricio


    Question 2 years ago

    Very nice project!
    I would like to know if there is any chance to receive CAD files? :)
    Would like to repeat this project for personal use.
    - In case I'll use other material, for example stronger metal instead of aluminium, will it work?
    My email is :


    2 years ago

    Hi, this project is amazing! I would like to build a CNC milling machine like this one, could you send me cad files? I would be grateful :D


    2 years ago

    Amazing job. Can you share with me the CAD files.


    2 years ago

    Great Job :-)
    Can I also get CAD files please


    4 years ago

    Hello Sören,

    Very nice build, congratulations!

    Is there any chance you to get a CAD files of this project?

    And a few questions:
    1. How do you ensure that both Y axis motors work synchronously?
    2. What is the torque of the motors?


    Reply 4 years ago

    Hello Microchaos,

    see PM for CAD file.

    1. At first I was also worried about synchronized motors. Thats why I have small marks (cable ties) on each spindle. After approx. 20 hours of milling I cannot see a loss of steps on the rails. Both cable ties still parallel.

    For professional use or daily use, I would also think of a motor feedback or a connection of both spindles. But for my purpose I am very fine without that.

    2. I am using exactly this stepper motors:


    This are cheap Chinese motors, but they are really making a good job. (1,9Nm)


    Reply 4 years ago

    Hi Soren,

    Great job indeed !

    Would you mind sending me your CAD file too ? It would be of great help for me since I've a similar project, with different dimensions.

    Many thanks ☺


    Reply 2 years ago

    Dear Sören,
    Very nice build, congratulations! You are awesome.
    Is there any chance you to get a CAD files of this project or any drawing please? I sent you a PM.

    Thanks a lot for you.


    Reply 4 years ago

    Hello Sören,

    Thank you for the answers and for a CAD file!

    Do I understand correctly how Y axis motors are wired: you use two separate controllers, but the same control signal from GRBL shield, right?


    Reply 4 years ago

    Hi Sören,

    Could you please share what power supply do you use. Would be nice to know an approved component :)


    Reply 4 years ago

    Yes I am using 2 controllers. The GRBL Shield has got 4 outputs. 3 for X,Y,Z and an A Axis, which is a clone of one of the first axis.

    You just have to set a jumper to select which axis to clone.