Problem with Gantry

My first major problem with this build. After all the glue was dry on the gantry, I rotated it 90 degrees on my work surface (the machine base) to see what it would look like in its final orientation on the machine. One corner of the gantry sat above the surface by about 3/32”. I first thought it had warped after the glue-up, but back in the position where I constructed it the gantry laid perfectly flat against the base. After doing a lot of checks with a straight edge and feeler gauges I found that my base was not perfectly flat as I initially thought. It was flat along the edges in both length and width, but there was some variation throughout the center. So, between the 40 or 50 thousandths of twist introduced where I constructed the gantry, and another 30 to 40 thousandths in the final orientation, I ended up with the gantry having this 3/32” warp or twist in relation to the base.

The way I decided to fix this was to create a large planing jig for my router. Following some videos online, I mounted two long pieces of plywood (with the factory cut sides up) along the sides of my machine base and used a level and two wires running from corner to opposite corner to get the rails level and without any twist. Then I built a sled for the router that would slide along these two rails, allowing me to run the router over the whole surface with a 1 ¾” surfacing bit. I waxed the router sled and the rails, and used some clamps for stops. My wife helped out by holding the shop vac to collect the dust while I routed the entire surface of the machine base. I clamped one end of the base to my leveled workbench so that the corner with the twist would be up the air and would get milled down. If you want to see more details, this is one of the videos that provided inspiration:

flattening jig for work surface

flattening jig closeup

After routing the top, I flipped the base over and repeated the operation on the other side. In theory, these two sides should now be parallel and without any twist. This will hopefully get me back to square one for having a flat work surface to build the machine on.

Rather than re-constructing the whole gantry on this newly flattened surface, I decided to use the same planing jig to get the top and bottom of the gantry to be flat and parallel. This seemed to work well and now the gantry sits perfectly flat against the base.

Z Axis Progress

While the glue-ups were drying on the gantry, I went back and did some more work on the Z-axis. I finished the router mount for my smaller DeWalt DWP611 router. I glued a few pieces of wood to the carriage with threaded T-nuts driven into the wood. The two router mount pieces get bolted into those T-nuts so that I can install other mounts for my larger DW618 router or anything else I may want to mount in the future.

DeWalt DPW611 mounted on Z Axis

Next I started drilling and tapping the aluminum bar stock to accept the Z rail mounting screws. I decided to initially install the rails without any machining and see how it works out for this proof-of-concept machine. If necessary, I can always go back and have these machined flat, or have shoulders machined to mount the rails against. The bar stock is still not attached to the carriage in this picture. It is just a test fit prior to epoxying the bars in place.

Z Axis Rails mounted on carriage

Building CNC Router Gantry

Having a nice flat surface to work on, I decided to start building up the gantry. I printed out some screenshots from my solid model and wrote in the dimensions by hand, not wanting to take the time to create all the dimensioned drawings in the CAD software. Then I got busy cutting out all the pieces of plywood on the table saw. I used a dado set for cutting the slots in the top and bottom pieces.

Plywood parts laid out for gantry

I took this image to show how the pieces will fit together. The top is slid back slightly for better visibility:

Partially assembled gantry pieces

Next I cut out all of the web pieces from 1/2″ MDF. Here are all the gantry pieces laid in place for a test fit:

Once again, I glued the pieces together in stages to make sure I could keep everything aligned properly. The number of clamps available also limits how much can be done at once.

Build CNC Router Torsion Box Base

With the torsion beams completed, I laid them out across two sawhorses and used shims under the legs to get the torsion beams level in both directions. I placed a sheet of MDF on top of these beams and proceeded to build up the base for the machine.

Torsion Beams on Shimmed Sawhorses

As you can see below, the pattern of webs is not uniform. I was originally planning to have it filled with the square pattern seen at the ends. However, I changed my mind and decided to go with a sparser pattern. It should provide plenty of rigidity for this prototype.

Webs on interior of torsion box base

The glue-up was done in two stages, first to attach the sides and all the webs to the base, then to attach the top. Many clamps and weights were used to hold everything together while the glue dried. With the top in place and everything glued up, the assembly is very stiff and doesn’t flex at all when lifting up on a corner.

Completed Torsion Box Base

Z Axis Continued, Torsion Box Intro

Here is the Z axis carriage after unclamping from the glue-up and giving it a light sanding. I am using aluminum bar stock to mount the profile rails. I chose this method in case I wanted to mill a perfectly flat surface on these or to mill shoulders (the preferred mounting method for HIWIN rails). At this point the bar stock is just positioned for a test fit. They will be epoxied in place after drilling and tapping the rail mounting holes.

Z Axis with Al bar stock

After making this first piece for the Z axis, I noticed it had a very slight warp to it. I don’t think it will be a problem, since I can lay the bar stock on a flat surface, coat the carriage with a thick epoxy, and lay it on top of the bar stock, so that the rail mounts will remain perfectly flat and in the same plane. The epoxy should take up any space due to the slight twist.

I now realize that I will need a perfectly flat work surface to make the remaining parts on. I also will need a perfectly flat base for the machine, so I decided to go ahead and build up the torsion box base at this point. The machine base will serve as my assembly table for the rest of the build.

To build a perfectly flat torsion box, you need to start with a perfectly flat surface. Inspired by this article on, I made two small torsion box beams. This allowed me to practice the techniques for making a torsion box, and then I could use these to create a flat work surface for building the torsion box machine base. You will see later what I mean. Here is a picture of the two torsion box beams being constructed.

Torsion Box Beams Clamped

Start CNC Router Build – Z Axis

I started with the Z axis since the parts are small and if I make any mistakes, it will be easier to redo with less wasted material. Working with the dimensions and images from my solid model, I started by cutting all the pieces out of a sheet of birch plywood to make up the Z axis carriage, laid them out for a test fit, then glued and clamped them together.

This is the Z Axis design:

CNC Router Z Axis Solid Model

Gluing up the first pieces:

Z Axis frame clamped together.

It is starting to look just like the model :-).  It is fun to see something come to life that you have been working on designing for so long!

Close up of Z axis wood frame

Lots of clamps:

Top view of clamped z axis

My table saw left some burn marks on the wood. They will get sanded down later to make it look nicer. After these cuts I spent some time tuning up the table saw to align everything properly. Perhaps a new blade would help as well.

CNC Router Design Overview

Here are the major components, with the wood frame design as seen in the image below. I am using Fusion 360 for the modeling and design simulations. I’m very impressed with the capabilities of Fusion 360, being that it is free for hobby use. I do run into quite a few bugs, but I can’t complain for the price I’m paying! Also, they are continuously improving, rolling out updates, and they respond in a timely manner to inquiries on their support forums.

  • HIWIN HGR15 linear profile rails (X=1200mm, Y=800mm, Z=350mm)
  • HIWIN HGH15CAZAH bearing blocks on Y axis
  • HIWIN HGW15CCZAH bearing blocks on X and Z axis
  • Ballscrews: 1204 on Z Axis, 1610 on X and Y axis
  • BK/BF 10/12 supports for all screws
  • NEMA23 381 oz-in stepper motors (4 total, 2 on X-axis)
  • Gecko G540 stepper drivers
  • 48 vdc power supply
  • Mounts for DeWalt DWP611 (shown) and DW618 routers
  • Linux CNC control software

The frame components and the machine base use a torsion box design and will be made from birch plywood and MDF webs.

DIY CNC Router Prototype

Goals for the CNC Router Build

I was not happy with the performance of any of the CNC router plans currently available, nor with the prices of kits and commercial machines. So I decided to come up with my own design. Not to mention, it is more fun to design and build your own, right?

I laid out a set of performance and cost goals and then designed a machine to meet those goals. However, this series of posts is not about that exact machine. I am first building a proof-of-concept machine that is lower cost and easy to build (therefore the wood frame). This will allow me to learn and flush out any issues with the design before building a more expensive and time consuming version of it. I did however attempt to design the wood frame to be as strong as possible so that it will have enough performance to make parts for the originally designed machine.

My rough goals for this wood framed version of the machine:

  1. Working area of 37″ x 25″ x 6″ (940 mm x 635 mm x 150 mm).
  2. Accuracy and precision in the ballpark of 0.001″ over 12″.
  3. Performance – will leave this for later discussion.
  4. Learn and test the concepts needed to build my originally designed machine.
  5. Have a machine to start making parts for the next machine.
  6. Have fun!

I will give some design details in my next post.

Introduction to CNC Router Project


I have always enjoyed learning new things and thinking about innovative solutions to a wide array of problems I encounter in life.  Many of the ideas and subsequent solutions have seemed viable, but would require resources that were not available to me to implement the idea.

In the back of my mind, I’ve always been intrigued by the thought of having a CNC machine at my disposal. This would help me to bring my ideas to life.  Seeing stories of other people building their own low-cost machines tempted me over the years to do the same.

After years of reading/dreaming about it and gradually learning, one day I decided to seriously research the options.  I looked at buying one of the hobby machines that have been popping up on the market in recent years, buying a diy kit, buying plans, or following one of the free open source projects to build my own CNC router.

In usual fashion, I spent a few months studying all of the specs, pricing out each option, and reading hundreds of forum threads, articles, and reviews.  It was quickly apparent that I could not afford to buy a machine, or at least a machine that had the performance I required.  Kits and open-source machines were not much better for affordability, but plans offered a lot of bang for the buck.

Researching CNC Router Plans

Quite a few plans were available, so I dug in to comparing them all.  In the process, I read many accounts of people who built machines based on the plans, those who modified the plans and those who upgraded their machines after not being satisfied with the initial results.  In addition, I happened upon people who designed their own machines altogether, which planted an idea in the back of my mind.

Once I had gained enough knowledge to evaluate different designs, features, and the resulting performance, I realized that none of the plans would satisfy my needs as-is.  However, they could probably be modified to do what I wanted at an acceptable price point.  After a lot more research (see the trend here?) I got to the point of feeling comfortable looking at any CNC machine, including the commercial models, and evaluating the design decisions and understanding their weaknesses.  It was then that I realized I could design my own machine and probably end up with a better product than anything currently available at a given price point.

A New CNC Router Design is Born

To confirm my thoughts, I made up a quick Bill of Materials and researched the prices of all the individual parts and raw materials that would be required.  This further cemented the idea that I could design and build a machine that would come in at the right cost, and likely with great performance too.

For the next 3 months, I researched CNC design, studied mechanical engineering, compared products, part manufacturers, parts suppliers, and started formulating a design.  I also knew that once I had a working CNC machine, I would have to learn CAD software to create the designs that the machine would produce.  I decided to jump in and learn solid modeling to design the CNC machine.  I compared all the CAD options and settled on Autodesk’s cloud based Fusion 360 software.  It was offered free to hobbyists and small businesses, and has comparable functionality (at least from a beginners view) to the industry standard SolidWorks, which I couldn’t afford.

In December 2015, I installed Autodesk Fusion 360.  Through reading the educational materials and following the tutorials I was able to quickly learn the software.  By the end of the month I had a rough conceptual model of a CNC machine, rendered beautifully and quickly in the cloud by Autodesk’s servers.  Over the following 6 months I went through many iterations of the design, gradually refining it and converging on an optimal solution to match my budget and performance requirements.

Once I felt the design was getting close, I learned to use the Simulation functions in Fusion 360 to perform stress analyses and deformation tests in order to find the weak points of my design.  It was a relief to see that the results of the stress analysis and cutter deflection simulations were in line with the calculations I performed during the initial design stages.  A few more tweaks to the frame components yielded a design that should meet the design goals and performance requirements.