3 Axis CNC Router (under Construction!)




Introduction: 3 Axis CNC Router (under Construction!)

Here you will find my "polished" notes while I am building a CNC from start to finish. This includes everything from concepts to the actual fabrication.

Most of this is followed in my cnc template spreadsheet - found in the next step!


  • table size: 2' x 3' x 5"
  • structure: 8020 aluminum, steel and aluminum stock


  • x axis motors: 2 x Gear Ratio 15:1 Planetary Gearbox Nema 23 Geared Stepper Motor 23HS22-2804S-PG15
  • y axis motor: 1 x Gear Ratio 15:1 Planetary Gearbox Nema 23 Geared Stepper Motor 23HS22-2804S-PG15
  • z axis motor1: x 156 oz-in
  • linear sliders: Glacern SBR Kit
  • rack and pinion: automation4less
  • router: PORTER-CABLE 892 2-1/4-Horsepower Router RPM Range 10-23 kRPM


  • motor controller/driver: Gecko G540
  • motion controller: Ethernet Smoothstepper
  • software: Mach3

Step 1: Where to Start

The very first question to ask when developing a CNC needs to be "what do you want to cut?"

Before you can decide "how big, how fast, how accurate" your machine must be, you must define the material you want to cut because all of design decisions you make stem from the material properties of your working piece. Once you have the material(s) defined, we can explore the optimal cutting scenario for these materials.

Specifically, the chip load is where we begin. The chip load is defined as the thickness of material removed by each cutting edge during a cut. This is how thick the chips flying off your material are while the tool bit is spinning. For example, the chip loads for a 1/4" tool diameter are .10" for hardwood and .006" for aluminum (reference).

Now this value is dependent upon the diameter of your tool bit. The larger the diameter of your tool, the larger the chip load should be (in general). Since there is a limited set of standard sizes on the market for tool diameters, we can choose what is common as a starting point. We use these chip load values as our target for making "efficient" cuts. Our thought process will be, based on X size tool, we are "aiming" for a chip load of X.

The actual definition of chip load is:

(chip load) = (feed rate) / (RPM⋅number of flutes)

where feed rate is how fast your router is translating across your part, RPM is how fast your router is spinning, and flutes are how many "teeth" or cutting edges your tool has.

This can be rearranged to the following:

(feed rate) = (chip load) ⋅ RPM ⋅ (number of flutes)

Based on the value for chip load, the estimated RPM based on our router limitations, and the number of flutes from what tooling we have specified, we can determine the optimal feed rate. We don't have to pick a single RPM or a specific number of flutes, but we can set up a range of values to guarantee a variety of materials can be cut using a variety of tools.

For instance, if you wanted to primarily work with hardwoods, and maybe some light aluminum cutting and are using a common wood cutting router with RPM ranges from 10k-23k you would find the following results. 1, 2 or 4 flutes can be used based on common tooling

For example:

feed rate = (.003 chip load [inches]) ⋅ (15000 [RPM]) ⋅ (2 flutes [ ]) = 90 [inches per minute]

What does this tell us? The router needs to move 90 inches per minute in the XY direction (length and width of cutting table) based on our drivetrain and motor specifications.

Step 2: Power Requirements Preview

Based on the required feed rate(s) of the material, the power requirements and drivetrain design of our system can be explored.

In a simplified model, the forces resisting the motors that move the cutting head around are a sum of the forces from acceleration, friction in our drivetrain, and forces from the material being cut.

  • The force from acceleration is what it is required to take a stationary router head (mass) and move it up to a desired speed in a reasonable amount of time
  • The force from the material being cut is the resistance against the router head in the horizontal plane from the material, which translates back to the motors
  • The forces from friction are inherent in any drivetrain, usually the more money you spend, the more efficient your system is.

In summary, this is the sum:

(force required to move weight of carriage) + (frictional force of drive train) + (cutting force)

It is important to note that this equation will be at the maximum when the carriage is accelerating at the fastest rate. This is the 'worst case scenario', and what should be designed for.

For this build, a rack and pinion setup was used. The spreadsheet attached can be used as a design aid in determining what size motors are required for a simple rack and pinion setup. For other design solutions, the next step has a few great resources that outline the pros and cons of various solutions.

To add.. calculations

Step 3: Design Space for CNC Structure

First, I would suggested reviewing the following site.They give a great overview of the various main "elements" that go into designing a CNC.

CNC Router Source - Build Your Own

Before you find yourself too far ahead on designing the perfect CNC, a major constraint is the budget. We want to maximize the design parameters (accuracy, robustness) and minimize the cost.

After I reviewed the common suppliers and prices (many links of which are at the end of this and will be sorted someday..) this is what I settled on:


80/20 extruded aluminum is readily available (in So. Cal). One could have a custom and tailored steel or aluminum structure fabricated, but that would eat up unnecessary costs. 80/20 is designed to be modular, stiff, and lightweight - all characteristics we need.

Linear motion...

To guide the linear motion of the gantry in both the x and y I wanted a precision machined setup since these are the foundation of how 'tight' tolerances will be, so I researched what was available. Luckily I found the Glacern SBR Kit which are professional grade linear rails for a reasonable cost (and they were close).

Looking at the approximate working space I wanted, I chose an appropriate pair for the x and y. This in turn provided me the first constrain to start finalizing the CAD.

Rack and Pinion...

After speaking to a friend who is using automation4less' rack and pinon, I was convinced they were worthy products (and again reasonably priced). I went with the helical gear setup. This was a bit overkill, but this setup the CNC mill to scale to larger working spaces down the road.

Z axis...

After throwing a few ideas around, I ultimately found CNC4NEWBIE who had various 'ready to go' z axis setups for very reasonable prices considering typical machining costs. They also have great customer support and can customize parts. This decided how 'tall' the gantry should be, as well as defining the maximum depth I could machine through material.

Table and mounting...

Whichever table setup us used, it will inevitably be milled on accident. Therefor I went with thick plywood that was laying around.

To mount the table, Rockler T track was used because of the large assortment of accessories that go with the track.


The Porter-Cable 892 router had the speed range and power I needed for the the hardwoods (and light aluminum) I planned on cutting.


to be addded


Motor controller / driver: Gecko G540

Motion controller: Ethernet Smoothstepper software

Mach 3: industry standard

Limit switch:


In summary..

As decisions were made on key components, the design space started to narrow. By knowing the target materials, various router options could be explored in the design spreadsheet (from last step) to see what made the most sense. By knowing how much the gantry was going to weigh, the appropriate size of the motors and gear ratio could be determined. This was a very fluid process, with many iterations before anything was purchased.

Step 4: CAD

After scanning the forums and internet for inspiration, this was the design that was fabricated.

It was important to minimize any machine work that needed to be done for cost. Additionally, I had access to a laser cutter which also influenced the design.

A few key design considerations...

DXFs to be added...

Step 5: Electrical

Add wiring etc

Step 6: Current Status

To be discussed..

Step 7: Links and Resources (needs to Be Organized)

Load Bearing Axis, Linear Pillow Blocks

other recognized names INA, SKF, scheeberger, NSK, Hiwin, TSK, PVC Redi-rail, Misumi

Drive Method, Helical Gear

Z axis, Packages and Components


Steppers: cheap and work well if planned correctly
Servos: position feedback, more expensive

Router Options

other names: Kress, Hitachi

Physical Structure

Extruded Aluminum

Table Top material

Forum articles:

Programming Motion / Motor Controller

On Parallel Ports, smooth stepper, etc

Detailed info on stepper motor control

Examples for inspiration

Forum Questions

General How Tos






  • First Time Author Contest 2018

    First Time Author Contest 2018
  • Epilog Challenge 9

    Epilog Challenge 9
  • Paper Contest 2018

    Paper Contest 2018

We have a be nice policy.
Please be positive and constructive.