Building a CNC Router




Introduction: Building a CNC Router

About: Mechanical Engineering student that likes robots, CNC, 3D printing and more.

Need parts for your project? Check out my Amazon Affiliate link below, thanks!:

This instructable will show you how I built my CNC router. I hope you can draw some inspiration from my build and that this instructable will be helpful for your future projects. This instructable shows all the steps I went through in designing and building this CNC router.

The main thing I like about a CNC router, is that it is so versatile. You can use it as a drilling machine, a router, a saw, a mill, and even as a lathe. Because my workshop is very small (it’s more like a shed), I didn’t have the room for all of these tools, but I still wanted to be able to make very precise parts for different projects. That’s why I started to think about building a CNC router.

After doing some research I decided to design and build my own machine. It took me almost 6 months to build and design the machine from start to finish. Before starting the actual designing of the machine, I did a lot of research on the web. I recommend taking a look at the following websites: and These websites will provide you with a ton of information and answer most of your questions on CNC-related topics.

Please note:
I built this CNC router as final project for school (also called 'profielwerkstuk' in the Netherlands). When I started the build, I was 16 years old and I finished it when I was 17. Although I have done a couple of larger projects in the past and have been doing FTC robotics for the last few years, I didn’t have that much experience with building CNC machines. This machine actually is the second CNC machine I built. The first one was a wooden test machine, which I built to gain some experience and learn more about CNC machines. I tried to build this machine as well as possible, with the tools, the knowledge, and the budget I had at the time. I think the machine came out pretty nice and I hope you enjoy reading about it.

Step 1: The Design - Tools and Material

Before starting to build a machine, you will always have to make some sort of a design. Sometimes it only have to be some sketches on a piece of paper, but for this machine a more precise three dimensional drawing was required. I made my design using google sketchup. Google sketchup is a free cad program, which you can download from the web. I found it was very easy to work with, although I had never worked with a cad program before. You won’t be able to draw as complicated designs as you can, by using other programs like Autocad, but for my purposes it worked just fine.
My main goal was to get all of the proper dimensions for my parts, so that I could order them online. I wanted to see if all of my parts were going to fit together. Because the machine consists of a lot of moving parts, I wanted to make sure that nothing would hit one another while running the machine.
When I started designing the machine I already had some parts like the linear rails and the ball screws. I bought these from someone who had built a test machine for his webshop. I used the same electronics for this machine, as I used for the wooden test machine I had built earlier.

These are the basic dimensions and parts used for the machine:
Overall dimensions
X: 1050mm
Y: 840mm
Z: 400mm
X: 730mm
Y: 650mm
Z: 150mm

The length of the rails and ball screws depends on the size of the machine you want to build.

-3x 3 Nm Nema 23 Stepper Motors

- 3x DM556 Leadshine stepper motor driver

- 36V power supply (for Stepper Motors)

- Breakout Board
- 5V power supply (for Breakout Board)

Better: Ethernet Smoothstepper (doesn't use old style LPT port).

- ON/OFF switch
- Shielded 18/4 Awg wire
- 3x Proximity sensor (limit switch)

You can also buy a complete Electronics Kit, that includes stepper motors and drivers. These work totally fine, but can sometimes be lower quality than real Leadshine drivers.

- Spindle: Kress FME 800 or Bosch Colt or Dewalt Compact Router

If you also want to cut aluminium and other non ferrous metals, a water cooled or air cooled spindle would be a lot better. You can buy a kit that includes everything you need. I have purchased this as an upgrade after finishing my CNC


- Electronics enclosure
- Energy chain
- Connectors


- Linear rails: X: SBR 20 Y/Z: SBR 16

- Ballscrews: X/Y: 16mm 5mm pitch

You can save a lot of money by buying a kit that includes linear rails and ball screws.

- Z - axis drive screw: M10 with homemade delrin nut, but a ballscrew would be better
- Aluminum profiles: 30/60mm Misumi 100mm
- Aluminum plates: 15mm thick
- CAD/CAM software: CamBam/Fusion 360
- Controller software: Mach3

The machine is almost entirely built from 15mm thick aluminum plate and 30x60mm aluminum extrusions. I built this CNC router using a very limited amount of tools. The main tools I used were a drill press and a lathe. Because I didn’t have the right tools to cut the aluminum plates to size, I designed the machine around standard sizes and ordered the plates online, already cut to length. The aluminum extrusions I used were also cut to length and I ordered these from misumi Europe.

When designing a CNC router it is helpful to ask yourself a couple of questions. Here you will find the design process I went through for my CNC router.

What type of CNC router do you want to build?
There basically are two types of CNC routers: the moving table design and the moving gantry design. Moving table style designs are often used for smaller size CNC routers. They are easier to construct and can be built more rigid than a moving gantry style machine. The downside of letting the table move instead of the gantry, is that the overall footprint of the machine in retrospect to it’s cutting envelope, is about twice as large as with a moving gantry design. Therefore it probably is better to make a moving gantry style machine, if your cutting envelope is larger than about 30x30 cm. Because I wanted to build a machine with a cutting envelope of about 65x65 cm, I used the moving gantry style design.

What do you want to cut with the CNC router?
This determines pretty much every answer to the questions below. I wanted to use the machine for plywood, hardwoods and plastics mainly, but also for aluminum. If you want to cut materials harder than aluminum, I recommend building a CNC mill, instead of a router.

What material will you use to construct the machine?
This is determined by the question above. A good guideline is that the material you use to construct the machine is stronger or as strong as the material you want to cut. So if you want to cut aluminum, you should use aluminum or even steel to build the machine. I have seen wooden CNC routers that can cut aluminum (you will find some on youtube), but this went very slow and the machines have to be very well constructed. Because I wanted to cut aluminum with this CNC router, I built it out of aluminum. I could have used steel, but this is more difficult to machine and I didn’t have the proper tools for that.

What length of travel do you need for each axis?
My first intention, was to build a CNC router that could handle standard size sheet goods, like plywood and mdf. In the Netherlands these are 62 x 121 cm. So for the Y - axis, I wanted a travel distance of at least 620mm. The machine is placed in a small shed in my backyard, with a very limited amount of space. I couldn’t make the machine too big, because then it would really get in the way and take up all the space. So the X - axis only has 730mm of travel. This is less than the full length of a sheet of plywood (1210mm), but I figured that if I wanted to machine something really large a could cut the first part, than slide the sheet forward and cut the last part. By using this technique you can cut pieces that are much larger than the normal X - travel distance. For the Z - axis I figured that 150mm would be enough to possibly use a fourth axis in the future.

What type of linear motion will you use for the machine?
There are many options to choose from for linear motion: drawer slides, ball bearings on V rail, V-groove bearings, unsupported round linear rail, fully supported round linear rail and profile linear rail. The linear motion system you use will to a large extent determine the cutting quality that you can achieve. I would recommend going for the best system that you can afford. After doing some research, I found that fully supported linear rails would be the best option, that I still could afford. If you search on ebay or Amazon for SBR12, SBR16 or SBR20 you will find a number of different sellers and sets to choose from. If you are building a 3 axis CNC router, you should buy a kit consisting of three sets of linear rails and two linear bearings per rail.

What kind of linear drive system will you use for each axis?
The basic options to drive each axis are: timing belts, rack and pinion and drive screws. For homemade CNC routers, drive screws are most commonly used. Screw drive systems work by placing the stationary nut on the moving part of the machine and holding the screw in place on both ends.The screw gets attached to the motor. If the motors starts to turn, the nut with the moving part of the machine attached to it, will move along the screw and set the machine in motion.
For the X and Y axis, I used ball screws. Ball screws provide very smooth motion, with virtually no backlash. Backlash is the amount of play between the drive screw and the nut and is something you don’t want in a CNC router. If you want to read more about backlash, I recommend taking a look at the website
Ball screws are more expensive than ACME screws (which are a good alternative), but will again highly improve the cutting speed and cutting quality you can achieve.
For the Z-axis I used high quality stainless steel M10 threaded rod, with a homemade delrin nut.

What type of drive motor and controller are you going to use?
Concerning the motors, there are two basic options: servo motors and stepper motors.
Servo motors are mainly used for high end CNC routers and are very expensive. They use encoders to provide position feedback and require more expensive controllers. Stepper motors are widely used on homemade CNC routers and there are many different types and sizes. The size of the stepper motor you need depends on what you want to cut, how fast you want to cut it, what type of linear drive and motion components you use, how large the machine is etc. I used 3Nm stepper motors for my machine, which is probably overkill.
The controller must suit the motor that you’re using. You can use individual drivers for each motor, as I did, or you can buy a 3 or 4-axis driver board. You can read more about the electronics I used in step 14.

What type of spindle will you use?
Most homemade CNC routers use a standard woodworking router or trim router as the cutting spindle for their machine. Mine is no exception. I used a Kress router, which is of slightly higher quality than standard wood routers, and it has a nice 43mm clamping flange. If you want to cut a lot of different materials, some sort of speed control can be really handy. The Kress router has a built in speed control but you will find this on most routers. If you are going to be doing a lot of really heavy cutting you might want to look into air or water cooled spindles. You can find these on Amazon/Ebay as well, but they will cost you a lot more than a standard router. They use a VFD for speed control and can be much quieter than standard routers.

What will be the total costs for the machine and do I want to spend so much money?
I estimated the total costs for this CNC router to be around 1500 euro. A CNC router is expensive but you can save a lot of money by building one yourself.

After I had found the answers to all of the questions above, I came up with the final design for my CNC router. As you can see, my design is not extremely detailed. You won’t see the exact hole locations on all of the parts for instance. It is difficult to determine how many bolts you should use to put two pieces together, if you have never held those pieces in your hands before.
For me, this design was enough to give me a good view on how everything was going to work out and which parts I should order.

After the design was completed and rejected/redesigned a couple of times, I could start ordering all of the parts needed. The 30x60mm aluminum extrusions and all of the aluminum plates for the gantry and Z - axis which I used for the X - axis were pre-cut to length. I also ordered some heavy duty anti-vibration leveling feet.

Step 2: The X-axis

The X- axis consists of a basic frame, made out of 4 pieces of 30/60 aluminum extrusions and two 15mm thick end-plates. There are two 6.8 mm holes in the end of the extrusions. I used a metal tap to create an M8 thread on the insides of the holes. After that I carefully laid out the positions for the holes on the end-plates. I actually clamped both plates together while drilling, to make sure that the holes would line up on both ends. I also drilled four holes in the middle of each plate to mount the bearing blocks. I drilled four extra holes in one of the side plates, to attach the motor mount.

I made 4 blocks to hold the leveling feet. The blocks are pieces of aluminum (50x50x20). I used four m5 bolts and t-nuts to mount them onto the outer extrusions.

The linear rails fit directly onto the aluminum extrusions. For the X - axis, I used 20mm diameter rails. The pre-drilled holes in the base of the linear rails line-up exactly with the slots in the aluminum extrusions. I could easily mount them using m5 bolts and t -nuts.

Step 3: Gantry Side Plates

The gantry side plates are almost identical. The only difference is that one of them has four extra holes for attaching the motormount. The whole gantry is made out of 15mm thick aluminum plates. Drilling the holes in the sideplates, was quite simple. Although I had to work very precisely. To get the holes in exactly the right spot, I carefully marked their locations, then I used a center punch, to create a little divot. Then I went over to the drill press and used a centre drill to create a hole that guides the actual drill bit. For the larger holes I used a smaller size drill bit first before using the final size drill bit.

Because of the way I had designed the gantry, I had to drill holes in the end faces of the side plates. I originally planned to do this on the drill press, but the parts didn’t fit under it. So I had to come up with a different solution: using the lathe. I made a special holder on the moving carriage of the lathe. I drilled two extra holes in each plate, to keep them in place on the carriage. Now I could easily drill perfect holes in the ends of the side plates. The only thing that was left to do, was to tap the holes for an M8 thread.

Step 4: Assembling the Gantry

The rest of the gantry is made the same way as the side plates. The most difficult part was getting the linear rails lined up correctly. The linear rails had to line up with the edge of the plate. When marking the exact hole locations, I clamped two pieces of aluminum profiles to the sides of the plate to line up the rails. Once I had marked the hole locations, I drilled and tapped them with an M5 thread. When attaching the rails to the gantry, you have to make sure that the distance between the rails over the entire length is completely even (the rails must be parallel).

I used the same method for drilling the holes in the end faces as I did with the side plates.

I made some corner brackets to add some extra stiffness to the assembly. On the final assembly of the machine, I actually left them out, because I didn’t felt like they were needed.

The plate on the bottom of the gantry is very simple. I drilled 6 holes to attach it to the side plates. In the middle I had to drill two holes for mounting the nut holder.

Step 5: Y-axis Carriage

The Y-axis carriage consists of one plate with 8 linear bearings attached to it. Drilling the holes was pretty straight forward, but again it had to be very precise. Both the linear bearings for the Y-axis and the Z-axis get attached to this plate. Because the bearings are so close together, even the slightest misalignment causes it to jam. I made the holes only 0.2 mm oversized, but I had to drill them out to 0.5 mm to align the bearings correctly. I had to do a bit of tweaking to get the carriage to slide easily from one side to the other. Both the rails and the bearings needed to be adjusted. I used high quality digital callipers to align them as good as possible. When I had made the drive nut mount for the Y-axis, I drilled two extra holes in the plate to attach it. I also tried to align the bearings for the Z-axis as good as possible, but I still had to adjust them when I got the rest of the Z-axis finished.

Step 6: Z-axis

The linear rails of the Z -axis get attached to the moving part of the Z - axis assembly. The rails needed to be offset a few millimeters from the edge of the plate. I used the same method as I did for the Y - axis, to align them. I found two pieces of plastic, of just the right thickness, which I could use as spacers. I knew the edges of the aluminum plate were parallel, so I clamped two pieces of aluminum to the edge of the plate and added the pieces of plastic to space the rails out from the edge. Once I had marked the hole locations, I just drilled and tapped them again. Make sure that you mark where the pieces go, so that the holes still line up when you put everything back together.

To mount the top plate to the Z - axis assembly, I drilled and tapped three holes in the end of the router mounting plate. I did this with the same setup on the lathe as I did for the Y - axis plates. I had originally planned to attach the Z - axis stepper motor directly to the top plate. So I tried to mill some slots in the top plate to attach the stepper motor. This didn’t work out so well, because I didn’t have a proper milling setup. So I cut off the part with the slots and fabricated a different motor mount out of plastic (see step 12).

I also made two bearing blocks out of the same plastic material, which got attached to the top plate as well. The drive screw is a piece of stainless steel threaded rod (M10). The drive screw is clamped between the two bearings with two nuts. I drilled and tapped the timing pulley for an M10 thread and just screwed it onto the top part of the drive screw. It is held in place by three set screws. The delrin drive nut gets attached to the Y - axis carriage (see step 10).

The router mount was pre-made and I ordered it from It has a 43mm clamping ring, which fits the Kress router that I am using.

If you want to use a water cooled spindle instead as an upgrade, a mount is often included in the kit. You can also purchase these mounts, if you want to use a dewalt or bosch router with a cylindrical body.

Step 7: Timing Belts and Pulleys

I did not want the motors to be sticking out of the machine. Because this would increase the overall size of the machine by about 15 cm in each axis. Normally you would mount the motors on the outside of the machine using a special motor mount or standoffs. This way you can couple the motors directly to the ball screws with a flexible coupler of some sort. This is how I did it on the first wooden prototype machine I built. For most people this will probably work out just fine. But what I found was, that because the machine was placed in a very small shop, the motors would really get in the way. Because they were sticking out by almost 20 cm (motor standoffs) I quite frequently would bump against them.

That is why I placed the motors on the inside of the new machine. By doing this I could not directly couple the motors to the ball screws, but I had to use a timing belt and pulleys.

I ordered the timing belts and pulleys from They have a big variety of types and sizes. I used 9 mm wide HTD5 belts and pulleys. When using a belt drive to connect your motor to the drive screw, you can use a gear reduction. By using a smaller gear on the motor you can use smaller motors and still get the same torque (although you will of course lose speed). Because my motors were pretty large I did not need any gear reduction to get more power.

To save some money I ordered the timing pulleys without the holes for the setscrews and with only a pilot hole in the centre. I used the lathe to drill out the bore to the correct size. For drilling the holes for the setscrews, I made a little jig out of some steel hexagonal bar using the lathe and the drillpress.

Step 8: Motor Mounts

The motor mounts are made from pieces of aluminum tubing. Mine were pre - cut to length when I ordered them, but you can also use a piece of steel tubing and cut it into square pieces. The motor mounts for the X and the Y - axis, had to be able to slide in and out, to tension the timing belts. If you use a normal coupler to connect your stepper motors, I recommend making or buying some standoffs. I used the lathe to make the slots and to drill a large hole in one face of the mount, but you could also do this on a normal drill press.

I started by making a large hole in one side of the mount with a holesaw. This allows the motor to sit flush with the surface and it also makes sure the shaft is centered. The motor is fastened to the mount with four M5 bolts. I made four slots, in the other side of the mount, to allow it to slide in and out. I clamped the piece on a special lathe attachment to mill the four slots.

Step 9: Bearing Blocks

The bearing blocks for the X and the Y - axis are made from 50mm aluminum round bar stock. I cut off four equal slabs, each 15mm thick. I then faced off each side of the blanks on the lathe. After marking and drilling the four mounting holes, I used the lathe again to drill out a large hole in the centre of the blank. I then made the cavity for the bearing to sit in. The bearings have to be pressed in and the blocks get bolted onto the end and side plates. I drilled and tapped a hole in the end of the ball screws to hold them in place. By inserting a bolt, I could tighten them against the angular contact bearings. The end of the ball screw was turned down on the lathe to 11mm. This is the part were the timing pulley gets attached to. The very end of the ball screw was turned down a little bit further to 10mm, so that it could be pressed onto the bearing. On the floating end of the ball screws, I just used standard ball bearings.

Step 10: Z-axis Drive Nut Mount

I didn’t use a ball screw for the Z - axis. Instead I used standard, but high quality M10 threaded rod. I made a nut out of a piece of delrin. Delrin is a very good material for this purpose, because it is self-lubricating and it won’t wear out over time. If you use a good quality tap to make the threads in the nut, the backlash will be very minimal (I haven’t noticed any). Inside the Z-axis assembly, there was very little room to mount the nut. And since my homemade nut was round, I needed to make a special mount. The mount consists of two pieces of 12mm acrylic. I was able to use the homemade CNC router of my school teacher, to make these parts. The round nut fits very snuggly inside the pieces of acrylic and is held in place by a small bolt. The bolt keeps the nut from spinning inside the mount. I drilled and tapped two holes in the little feet of the holders, to be able to mount it to the Y-axis carriage

Step 11: X- and Y-axis Drive Nut Mount

For the X and the Y axis, I made a different drive nut mount out of a piece of aluminum. The ballscrew nuts have two small flanges on one side, with three holes in them. I used one of the holes on each side to attach the nut to the holder. The holder is made from a piece of aluminum and is machined on the lathe. Because I didn’t have a mill, I used the lathe with a four jaw chuck. These pieces have to be machined very precisely. Once you have attached the nuts to the gantry and Y-axis carriage, you should be able to move these parts easily from one side to the other, by turning the ballscrews by hand. If the dimensions of the holders are incorrect, the nut will get jammed, and you won’t be able to turn the ballscrew by hand anymore.

Step 12: Z-axis Motor Mount

The Z-axis motor mount is different from the others. It is made from 12mm acrylic and was also cut with the homemade CNC router from my teacher. I had originally planned to make the mount out of a plate of aluminum, but machining that was too difficult. The belt tension can be adjusted by loosening the two bolts on top and sliding the whole motor mount assembly. The 12mm acrylic works just fine for now, but I might replace it with a piece of aluminum in the future. I found out that when I was tensioning the belt, the acrylic plate would bend a little bit.

Step 13: The Cutting Bed

The final part I had to make for the machine was the cutting bed. The cutting bed is a very important part of the machine, and often overlooked. There are many different types of cutting beds. Examples are: t-slot table top, perforated table top, vacuum table or you could just use a disposable table top and screw your stock right onto the table. An aluminum t-slot table top would probably be the best, but it will cost you a few hundred dollars, depending on the size of your machine. I choose to use the perforated tabletop, because it fitted within my budget and I would still have lots of clamping options.

The cutting bed for my machine, is made from an 18mm thick piece of birch plywood. I fastened it with M5 bolts and t - slot nuts to the aluminum extrusions. I bought about 150 M8 hexagonal nuts for about 4 dollars. Using a CAD program, I drew hexagonal shapes in a grid with a hole in the middle. Then I used the machine to cut out all of the pockets for the nuts. Instead of regular nuts you could also use T-nuts, but then you would have to flip the tabletop over to insert them. Another problem you can have is that they fall out.

On top of the piece of birch plywood, I installed a piece of 25mm thick MDF. This is the disposable surface. I used a larger router bit, to cut holes through both pieces. The holes line up exactly with the centre of the hexagonal shapes cut earlier. Then I unscrewed the piece of mdf and installed all of the nuts in the piece of plywood. I made the holes slightly undersized, so I had to use a hammer to pound them in. Then I reinstalled the MDF surface and checked if the alignment was still correct.

I also flattened the tabletop to ensure that the surface was parallel to the x and the y axis and perfectly flat.

Step 14: The Electronics

The electronics for my machine consist of the following components:

Main power supply - 48VDC 6,6Amp
3 drivers - Leadshine M542 V2.0
3 steppermotors - 3Nm hybrid Nema 23
Relay - 25A, 230VAC output, 4-32VDC input
Main power switch
Power supply for breakoutboard - 5VDC
Power supply for cooling fans - 12VDC
2 cooling fans (80mm)
2 power outlets - for Kress router and shop vac
E- stop - still needs to be installed
Limit switches - still need to be installed

This would be a good electronics kit:

3 axis Nema 23 stepper motor kit

If you don’t want to spend a lot of money on electronics you can buy a kit from amazon. There are a lot of different sellers with prices in the 200-400 dollar range. Before ordering a kit you should think about what size steppers you need. I you are building a small machine for cutting wood and plastics only 270 oz in or 1.9 Nm motors will give you plenty of power. I choose 3Nm motors, because the machine itself is quite large and heavy and I planned on machining some harder materials like aluminum in the future.

If your motors aren’t too large you can use a 3-axis driver board, although it is better to use individual drivers. Individual drivers can handle more amps and feature microstepping. They are more reliable and will give you better results. The drivers I use actually came with the kit I ordered. They can handle 4,2 amps max and up to 125 microsteps.

The main power supply is connected to the drivers with 14 gauge wire, which is mainly used in RC airplanes. These wires are very flexible, but of high quality and can handle plenty of amps. The 5 VDC power supply is connected to the main power inlet. For the cooling fans, I installed a power outlet inside of the enclosure, so that I could use a standard 12V wall adapter to power them. The main power gets switched on and off by a large power switch.

The 25A relay is controlled by the computer through the breakoutboard. The input terminals of the relay are connected to the output terminals of the breakoutboard. The relay is connected to two power outlets, which power the Kress router and shop vac to suck up the shavings. When the Gcode ends with the command M05, the machine will automatically switch of both the shop vac and the router. To switch them on you can either press F5 or use the Gcode command M03.

Step 15: Electronics Enclosure

Since I temporarily mounted the electronics on a piece of wood, to test the machine, I still had to make a good enclosure. I drew out the rough dimensions and places for all of the components on a piece of paper. I tried to arrange them in such a way that I could easily get to all of the terminals to install the wires. I also made sure that I would get a sufficient airflow through the enclosure. This is very important since the stepper controllers can get quite warm.

All of the cables can be connected in the back of the enclosure. I used special 4 wire plugs, because I wanted to be able to disconnect the electronics from the machine, without having to unscrew any of the wire terminals. I also installed two power outlets to provide power to the spindle and a shopvac. The power outlets are connected to the relay to switch the router on and off automatically in Mach3. I mounted a large powerswitch on the front of the enclosure.

Once I got all of the components arranged the way I wanted, I designed all the pieces to make the enclosure with a CAD program. I then used the CNC machine itself to cut out all of the sides and the base. I made a lid with a piece of plexiglas in the middle. I then installed all the components and tried to keep the wiring as clean as possible.

Step 16: CNC Software

To control a CNC router, you need 3 different types of software. A CAD program, to create a drawing. A CAM program to create the toolpaths and output the G-code. And a controller program which translates the G-code and controls the router. I am using CamBam to create most of my drawings and create the toolpaths. CamBam is a simple program and is very easy to work with. It has some basic CAD functionalities, so for most projects you don’t need a different CAD program. Before CamBam can create the toolpaths, you need to set a couple of parameters. Examples are: the diameter of the tool that you’re using, the cutting depth, depth per pass, cutting speed etc. When you have made the toolpaths, you can output the G-code. The G-code is the machining language, that tells the machine what to do.
For the controller software I am using Mach3. Mach3 sends out the signals through the parallel port of your computer to the breakout board. You use Mach3 to zero the cutting tool and start the cutting program. You can also use it to control the spindle speed and cutting speed. Mach3 has some basic wizards built in, which you can use to output simple G-code files. An example is the write wizard, which you can use to quickly write some text and output it to G-code. (See step 17 for an example).

Step 17: Using the Machine

After several months of work, the machine is finally finished. After the initial testing, the first thing I made were some hold-down clamps. The first ‘big’ project was the electronics enclosure, which you have seen in step 15. I have also been cutting some different types of gears and some signs. For some guitar pick boxes I made see my Etsy shop.
One thing I quickly realized was that a CNC router makes a lot of dust and can be pretty loud. To fix the dust problem I made a dust shoe, to which a shop vac can be attached. Reducing the noise level was more difficult. My parents were kind enough to pay for the material costs to build a full enclosure for the machine. So I made a large cabinet in which the CNC machine stands. I used noise-absorbing plates to cover the inside of the walls. The electronics and the shop vac can sit in two different compartments under the machine. The cabinet really cuts down on the noise level and makes using the machine even more fun.

Step 18: Conclusion

So that’s about it. Now you know how I build my CNC router and why I did it the way I did.
Although you probably won’t be building an exact copy of my machine, I hope you can draw some inspiration from my design and build. I have learnt a lot, by building this CNC router and really look forward to using it for future projects.

I would like to thank my school teacher, Nop Velthuizen, which gave me the opportunity to build this machine. He allowed me to come over to his own workshop and use all of the tools I needed to build this CNC router. He gave me a lot of information and inspiration and helped me where needed, to successfully complete this project.

If you have any questions, please leave a comment and I will try to answer your questions as soon as possible.

Benne is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means to earn advertising fees by advertising and linking to amazon(.com,, .ca etc) and any other website that may be affiliated with Amazon Service LLC Associates Program.

I Could Make That Contest

Second Prize in the
I Could Make That Contest

Build My Lab Contest

Fourth Prize in the
Build My Lab Contest

1 Person Made This Project!


  • Cold Challenge

    Cold Challenge
  • Baking Contest

    Baking Contest
  • Make it Glow Contest

    Make it Glow Contest



19 days ago

Wow, wow, and wow!!! Thank you so much for taking the time to write down what your process was. It is so helpful for me and I'm sure others. Cool that you had a mentor willing to help you along aswell. The pictures were also invaluable!!!


2 months ago on Step 12

Iam new on cnc. Have no experience.
Where do i get the software controler?


Question 1 year ago on Step 18


Great instructions and tutorial with regards to your CNC. I was wondering what is the best way to calibrate the CNC machine. I am using UCNC at the moment.

If you could share more information about your project it would be greatly appreciated.


Question 2 years ago

hi im building my own desktop machine right now when designing the z axis do i need to take into account the cutting bits height and if so what value should i use


Question 2 years ago

Hi, nice project! How much did this end up costing?


2 years ago


Looks very good. Can you share the project data with me? This is my email address:
Thanks in advance


Question 2 years ago on Introduction

Hi, I really like what you did. Its great works and can help a lot of people make router CNC by own. I am going to start my Router CNC project. Can you share the project data with me? This is my email address: (Appreciate that)


Question 3 years ago on Introduction

Hi Sir,
Can you please let me know the model of breakout board used in CNC router cutting machine..


Question 3 years ago

Great work . I am also working to make homemade lath but by using servo motors with thier drives. would you please send me advices and files about how to control hese motors. My EMail


3 years ago on Introduction

Great project! I’m building one similar. My question is: Did you counterbalance the Z axis? Should I? It’s pretty heavy.


3 years ago

What a great project, I love it and want to build it myself.
Is it possible to get the plans for this great machine, it would be so helpful to build the project.
My e-mail is and thanks in advance


Question 3 years ago

Hi, i really like what you have done. but just have a couple of questions. iv been reading about a 4th axis and see kits on amazon that have an extra drive for a 4th axis. is it possible to adapt your machine to use a 4th axis.

also i have a industrial Advantech ARK 3390 has 6 com ports 5 USB ports. can this be used as the brain and can the com ports be used to control the drivers ?

greatly appreciate your advice, very keen on building one of these following you amazing and detailed instructions


Question 3 years ago

I really like your build, and am in the process of collecting parts to build my own. I didn't see a detailed file of the whole project, if you have a full set of plans, could you please send it to me at Thanks, and I hope to see more instructables like this!


4 years ago

Very nice build!! Would you be willing to share you project data with me? I am wanting to build my own CNC due to budget costs and would really love to build something like this. Thank you for taking the time to input all this information on here. It really shows how much goes into building one of these. I would also like to ask where you got your aluminum from? I can’t seem to find any anywhere online. My email is:


4 years ago on Step 18

Great! A very nice work, congratulations! I just also finished my hobby cnc and I would like to ask you which software you use to process graphic designs and then to convert to G-code for Mach3