DIY Aluminum 3-AXIS CNC Router




About: Hi I'm Steve. I am a mechanical engineering graduate from Canada.

This is a CNC I built from scratch using mostly 3/4" x 3/4" x1/16" aluminum square tubing. I got the design by looking around for ideas on Google and mostly just improvised as I got to each phase.

The total cutting area is about 12" x 8" x 3" (X by Y by Z).

The rails and bearings required over 100 5/16" nuts.

I estimate that the whole thing cost approximately $650-$700 to build including Ontario taxes.

Note: I built the whole thing with a regular hammer drill (which has a switch to become a normal drill), a hack saw, and a jig saw. I had no drill press or chop saw that made perfect cuts/holes. Of course a drill press and chop saw would make the whole thing go a lot faster than it did for me.

In each step of this instructable, I will show what individual components I used.

If enough people (or any at all) want to build one like this then I will use SketchUp to create some plans. But for now, this is really just to give some ideas on how to build one yourself.


Step 1: Main Frame

The pipe is 3/4" galvanized steel pipe.

I spray-painted the frame matte white to make it look a little more pleasing. I am happy with how the finish turned out.

The length of the pipes are not so important so long as you have good clearance for all the axes.

It is important for the diameter of the pipe to be sufficient if the pipes are long. I have had to fasten the neck of the Z axis to the wall to restrict deflection.

Step 2: Bearings

I used bearings that have a 8 mm bore, 22 mm outer diameter, and are 7 mm thick.

Note the inner diameter of 8 mm is just slightly larger than 5/16" of an inch. When bolting these to the linear bearing assemblies, the nuts will tighten enough that the difference in diameters won't matter (i.e. the bearing is as tight as if an M8 bolt was used).

Step 3: X Axis

The X linear rails are approximately 26" long and are spaced 15" apart from the inside parts of the rails.

It may seem as if the whole "carriage" is only held down by gravity, but the bearings on the side actually squeeze the rail quite tightly and leave a black stain.

The X axis and Y axis are built together as one assembly.

The Y linear rails actually help the four X bearing blocks (I'll use blocks for the lack of a better word) stay square to each other.

Step 4: Y Axis

The Y bearing assemblies are turned sideways with respect to the X axis. I attempted, at first, to orient them the same as the X axis, however, the major issue was the length the  aluminum blocks had to be. Because of the design I chose to go with, the longer the Y axis assemblies are, less the actual cutting bed can travel. There is an advantage to this design, however, that I will reveal later on.

With the Y axis bearing assemblies being as short as they are, if I were to use the orientation I used for the X axis the table would tip if a force was applied to the edge of the cutting bed. The way they are oriented here prevents any play in all directions.

The 6" carriage bolts that run between the bearing assemblies force the bearings against the Y axis linear rails.

Step 5: Z Axis

The Z axis bearing assemblies are done the same way as the Y axis except, of course, the whole axis is vertical.

I used eight 6" carriage bolts to bolt in the bearings. This actually makes the whole assembly much sturdier.

The Z axis linear rails are bolted directly to the 3/4" flange.

Step 6: Router (Spindle)

There have been two types of spindles I have tried:

2013: Dremel 4200
2012: DeWalt DWP 611 handheld router. It is variable speed and is rated at 1.25 HP. 

The spindle is attached to the Z Axis using screw-drive hose clamps. The spindle is wedged in between 4 carriage bolts that are use to fasten the bearings to the bearing blocks.

Step 7: Lead Nuts

The "lead nuts" are made of 5/16" t-nuts with holes drilled through them. The t-nut is then screwed onto a piece of 1/8" x 0.75" aluminum angle. These were then fastened to the bearing assemblies.

There is barely any backlash with these t nuts. I don't have a dial indicator to find out exactly how much.

Step 8: Lead Screws and Screw Supports

The lead screws are cheap 5/16" zinc-coated steel thread rod. With these, the most consistent feedrate I can use is about 380 mm/min or about 15 in/min. This is when not  using the most optimal setting for the motors. 

The screw supports are very important. Looking at the couplings, they look essentially like springs to allow any sort of misalignment of the lead screw. This causes a problem because a force along the direction of any axis causes unwanted play.

With these screw supports installed on all axis, there is absolutely no play. The supports allow all of the torque from the motor to be transferred directly to the the lead nut.

The bearings are clamped from both sides using nuts. The bearings are fixed to the frame using 1/2" conduit clamps. With a bit of filing, they fit over the bearings perfectly.

Step 9: Couplings

I purchased the couplings on eBay as well for about $4 each from Hong Kong.

One end has a 1/4" (6.35 mm) bore for the stepper motor and the other end has an 8 mm bore for the lead screw.

Again, 5/16" is slightly less than 8 mm so in this case I filled the lead screw threads with epoxy and sanded it down to fit into the coupling.

If regular, cheap thread rod is your choice for the lead screw, I highly recommend the coupling in the main photo versus the one in the second photo. The one in the second picture requires a smooth shaft because the screws are tightened dig into the shaft in order to provide the clamping force. When I realized that it wouldn't work with a fully threaded rod I bought ones that clamp the rod circumferentially and clamp it from all sides.

Step 10: Motor Mounts

All the motors are connected to cross bars using only two of the 4 motor mounting holes. Two bolts seems to suffice to keep them secure.

Step 11: Cutting Platform

The cutting bed/platform is piece of Russian birch plywood. It is the highest quality of wood I found at the local Home Depot. It cost me $20 for a 2' x 4' sheet. The thickness is 11.5 mm.

As I said earlier, the cutting area is about 12" x 8" x 3". However, I cut the platform to a size of 14" x 10". The reason for this is that I can use extra length and width for clamping area. This is the advantage of this sort of design: it is easier to fix stock to the cutting bed.

The counter-bored carriage bolts are intentionally a little long which allow me to adjust the table to be square to the cutting bit.

Step 12: Limit Switches

Limit switches are your best friend when it comes to CNC (in my opinion). During some tests, before I installed my switches, I jogged the z axis too high and I almost stripped apart my Z axis coupling. The coupling got extended a little but it was no biggy.

I have installed a limit switch at each end of the X and Y axis. I also installed one at the top of the Z axis.
I wired these up all in series so if one of them is triggered. the machine automatically ceases. 

Step 13: Cable Management

There are a lot of wires so it is important to keep them from getting in the way. The wires that come with stepper motors are very short. I extended mine with the wires from an old computer power supply. I also sleeved the wires using some custom computer mod sleeving. They keep things nice and tidy. Finally zip ties were used to tie wires to the frame

I used some molex connectors so I can disconnect the machine from the driver board easily.

The aluminum tubing allows me to route wires through, tucked away from harm.

Step 14: Electronics/Driver Board

I used a cheap TB6560 driver board that I bought on eBay. These things are really CHEAP. I actually went through 3 different Toshiba TB6560 controllers. 1 was faulty out of the box, 1 became faulty after some use and one fried. The controllers are easy to replace if you're comfortable with soldering. The replacements have held on for quite a bit but I suggest buying a higher quality driver.

I installed the driver board and power supply into my computer case. The driver board is screwed into a piece of clear acrylic and the acrylic is screwed to the expansion slots on the case. I replaced the stock fan of the driver board with one that came off of an old graphics card cooler.

Sorry for the blurry photos.

Step 15: Testing

Here are things I have cut so far.

Let me know if there are any questions!

Step 16: Updates

February 17, 2013: I have made a separate instructable on a vacuum hose clamp I have designed for dust collection that also deflects the router exhaust air sideways. This ensures most of the dust isn't kicked around the shop.

Hurricane Lasers Contest

Finalist in the
Hurricane Lasers Contest



    • Trash to Treasure

      Trash to Treasure
    • Tape Contest

      Tape Contest
    • Arduino Contest 2019

      Arduino Contest 2019

    24 Discussions

    Vikram SinghR

    3 years ago

    Hello buddy, can i use 3.25Amp unipolar six wire stepper motor with TB6560 shield. Please replay fast its argent

    Vikram SinghR

    3 years ago

    Hello buddy, can i use 3.25Amp unipolar six wire stepper motor with TB6560 shield. Please replay fast its argent


    3 years ago

    Buddy, can you please tell me what CAM software you use


    3 years ago

    Hi friend, your project is good :)

    Can you tell me, do you know where I can find electrical scheme of driver Toschiba tb6506 ? Thank you in advance


    3 years ago on Step 2

    It is very interesting project. I wish to follow all the instructions & make a same CNC by own. Anyone can tell me, Does TB6560 three axis (Chinese) controller reliable?? Does it use for wood carving & plastic letter cutting?? Please make your kind advice..! My e-mail: - Indika from SRI LANKA


    Reply 5 years ago on Introduction

    Prob like $650-$700 CAN dollars with extra hardware when finished. Could be cheaper if you find metal parts for cheap (aluminum tubing at Home Depot is expensive). It's roughly the price you would expect to spend on a Shapeoko 2; I have had one of those, too.


    6 years ago on Introduction

    You asked so,

    What turned out to be the biggest expense of your project?

    What rapid travel speed can you achieve? What factors do you feel impede your performance? Please list negatives in descending order from most to least.

    What was the biggest unforeseen obstacle that you had to overcome in order to complete your project? What surprised you the most? What do you know now on the other side that you wished you knew at the outset? What would you avoid, or approach with the most caution today?

    What would you do differently if you were to set out and build another CNC machine today?

    An inquiring mind wants to know :)

    6 replies

    Reply 6 years ago on Introduction

    a. The biggest expense was the stepper motor, driver, and power supply kit. Definitely put in the extra $100 or so for a higher quality driver (I spent about $200 CND for the kit). I have replaced 4 Toshiba TB6560 controllers so far (about $3 each). Go for the kit that has a breakout board and 3 separate drivers instead of an all-in-one. However, I'm sure there are higher quality driver boards out there that don't use the TB6560.

    b. My feed rate is rather slow and I can't really give you a rough speed other than some numbers. I used 5/16" thread rod with a 1/16" inch pitch so for every rotation of the stepper motor, there is only a 1/16" travel.

    c. Impeding factors of performance (worst to least worst):
    1. The feed rate: With the thread rod of choice (chosen because cheap), the only thing to do is to increase the motor velocity if a higher feed rate is desired. However, there is a speed at which the stepper motors just jam up. Even at the fastest speed I can set them, it takes quite some time even to mill something that size of a standard letter-size paper.
    2. There is some play in the z-axis when milling with a larger drill bit: Due to the height of the z-axis “arm,” cutting stock with a ¼” bit causes a lot of shaking. The pipe deflects too much. The current configuration using ¾” pipe is only good for engraving so far but some modifications can be done.
    That’s all I can think of…

    d. The biggest unforeseen obstacle would probably be getting the bearings to stay in contact with the rails. This was mostly due to the lack of precision tools. A hole that is only a few thousandths of an inch off centre can cause the bearing to lose contact. I overcame this by slightly enlarging holes and forcing the bearings to come in contact with the rails. I did this by using very long bolts like in the y and z axis. The x axis carriage was heavy enough that it forced the bearings to contact the x rails.

    e. The thing that surprised me the most is that it isn't as hard as it seems!

    f. Again, the lead screws are definitely the thing I would like to have planned earlier. The choice of the ones I used was due to lack of immediate resources. It is expensive for me to get good, high quality parts. That is, most of the mechanical parts are bought from local hardware stores and not online.

    g. It is obvious that you really need to plan things out before you buy parts. I used CAD to plan out a good rail system (see rendering in X axis above).

    h. Finally, unless you have the resources and time, I would suggest buying a pre-fabricated kit such as the Shapeoko! If the Shapeoko was available for purchase (or had I known it was about to be released,) I would have bought it instead of designing/building my own. That being said, if you have the skills a CNC like mine has more power and has a larger cutting area. This one has a larger cutting area and a more powerful router, but I lacks speed and probably precision. In general, the total cost of either would be in the same range.

    I hope that covers everything.



    Reply 6 years ago on Introduction

    Thank you for your thoughtful and speedy reply! You confirmed my suspicions. I'm fairly well versed in TB6560AHQ motor drivers. I've made my own drives out of them from scratch.

    I also made my own break out board too

    High pitch threaded lead screws are indeed a limiting factor when it comes to rapid motion. Your CNC software should tell you exactly how fast your quickest rapid moves are. I don't use Mach3 myself though I use LinuxCNC. So I can't tell you exactly where to find the value in Mach3.

    Using 10 TPI 1/2" acme threaded rod I'm running 72 inches per minute. Which isn't too shabby. I was kind of hoping for 100 IPM though.

    I could tell you how to get some more performance out of your imported motor drivers. They're never setup correctly. Stock most of them are 1 amp maximum output. A TB6560 is capable of supplying 3.5 amps I believe. There is no switch combination that will alter this either. You have to change the current sensing resistors on your board. They're usually big bluish gray looking things. Although the mode you run in is critical to achieving highest performance too. 100% current 100% decay and the highest micro-step mode you can generate pulses for usually yields the best performance.

    Get the data sheet for the IC from Toshiba and it explains in great detail how the devices work. It is how I did it. Some videos of my motor drivers

    Over 2,500 RPM

    Reversing at 800 RPM

    My Z axis lift mechanism doing 72 IPM (I increase the speed in steps)

    Oddly the lift works even better when I load it down in the axis. Stepper motors are strange devices. My design I'm building is a bit different, I've sketched some of it but I basically know what I want so for the most part I'm just building it as I go. I consider my first a prototype model. Drawing it is too difficult. Easier to just make it. I'll draw it after I have something to look at :) Anyway you might be curious how the Z axis lift works, if you are it sits inside this

    They are nested Melamine square tubes. I do have dial indicators and it is accurate to 0.001 of an inch with no play. Moves pretty nice too.


    Reply 6 years ago on Introduction

    That is some interesting work you’ve done.
    The driver board I have is capable of 3A with the option of 100%, 75%, 50% and 25% using dip switches. I had all the axes set at 75% current. By recommendation from the manufacturer (LONGS MOTOR) I set all the axes to 0.5 micro-steps.
    I am currently waiting for some new TB6560s. Maybe you can help me with this question: In the past I have had problems where the motor would rotate in the wrong direction. For example, if I were jogging and hit the jog right arrow twice it would go right on the first command and left on the second. Another example is when actually milling, the gcode would state change in direction but the motor would continue in the same direction and ruin the whole operation! I used to just change the chip and that seemed to fix the problem, but maybe you know of another solution?


    Reply 6 years ago on Introduction

    The driver IC is capable of 3.5 amps but the current sense resistors those boards ship with limits the output to 1 amp. It is extremely unlikely your board is any different than the vast majority of them. You can change this if you change the current sense resistors. They are the big grayish blue hued ceramic power resistors on the boards I've seen. Those are your current sense resistors. Every driver IC should have a pair of them. They're connected to pins 11 and 14 of the driver IC.

    Have you measured your current draw so you can see what you are actually using? That is something I did a lot while I was making my own motor drivers. You shouldn't be playing with the current setting of the IC at all to adjust your current. That isn't what Toshiba put those lines on the IC for. They're there so the IC can be software controlled in systems that need that feature. Other than that you should be running 100% and adjust with the correct sense resistors. Based on what I know about those imported boards you're likely running at 75% of one amp, which is 750ma right now. In other words you're missing out on a lot of potential performance increase.

    One setting I found critical in achieving best performance out of a TB6560 is the decay feature. You want decay set to 100%. The best I could figure out what decay does is it  inverse feeds the H bridge. You want all of that you can get! I found 100% decay is double the power of 0% decay. It is that big a deal.

    Explaining why some step modes are better than others can be complicated suffice to say stepper motors suffer from resonance and microstepping alleviates that. I suggest once you've dialed in other factors you experiment with higher step modes to see if you can better your speed. Although there are practical limits to how high step modes you can run, half step is usually no where near that. In short try going higher, but work on other things first. Half works, but other modes could be better.

    As far as your direction issue goes my best guess is you are not meeting the setup requirement for your direction signal. There should be a place to set that value in your CNC software, increase that time. It is difficult to tell you exactly what to set it at because I don't know all about those imported driver boards but the TB6560 itself needs at least 5000ns, along with associated circuitry on your driver board the right value could be higher than that.

    The leading causes for blowing out TB6560s are over volting them (the claimed maximum voltage is deceptive it doesn't take back EMF into account I run mine at 24V and I have no problems), shorting them out (I killed one myself this way), and disconnecting motor leads while they are powered up. Always power down the drive before you disconnect the motor, or even make mode changes to the IC. It is a lot easier to turn it off, then back on, than it is to replace the driver IC.


    Reply 6 years ago on Introduction

    Thanks for taking your time with all these wordy responses. I looked at the connections of the CNC and it turns out one of the wires in the molex connectors was loose. When I fixed that connection, the X axis seemed to be behaving correctly. I am wondering if a loose signal wire can cause to motor to randomly switch its rotation?


    Reply 6 years ago on Introduction

    It depends on what state the input signal is, and what state a device floats to open (in a PWM motor driver electrical noise is a factor too) if a state change happens or not. So I would have to say there is a 50 50 chance. There is a 100% chance a loose signal wire will cause you problems though!


    Reply 6 years ago on Introduction

    For sure, if enough people leave a reply here I'll see to it that it gets done!


    6 years ago on Step 4

    I would like to make suggestion if I may ..
    You have some wooden dust on bearings , that can affect accuracy of the machine , perhaps if u mount some kind of brush before and after each top bearing to clear dust from path of bearing . Brush like one that people usual put on bottom of a door , most of them have metal bracket so it would not be problem to mount it to system .

    Just a suggestion ...

    1 reply

    Reply 6 years ago on Introduction

    You are correct. I have yet to install some dust covers or the brushes that you are suggesting. I found that for what I'm doing it doesn't really matter if the machine is a bit off on accuracy as I have just been making random signs (the videos embedded). I am planning to try some more precise cutting soon and will definitely look into it.