Introduction: DIY CNC Router

Building your own 3-Axis CNC router is both fun and educational. This Instructable shows all the steps I followed to make my DIY CNC Router. This is the second one I made, after learning a lot from building the first version.

This is a very good router that can be built at a reasonable price using readily available available materials. This design uses DIY linear bearings, threaded rod and plywood (or MDF) construction. No welding, no fancy materials.

This is not a mill designed to machine steel. It is not super-fast. It is a router designed to route wood, plastic and some aluminum. It is a low-cost, decent quality system that will teach you all you need to know about 3-axis routing.

If you take care during cutting and assembly, you can achieve very good accuracy. I also use mine to do printed circuit board isolation routing, and I can do surface-mount ICs with 50mil pitch. Not bad at all!

Through the end of 2016, a complete parts list, Sketchup drawings (just drawings, not sketchup files) and dimensions are available for only $2.50 USD at HobbyCNC.com. You need to register on the site and use coupon code Instructables at checkout.

See it in action: vimeo.com/166901487

NOTE: Rev01 of the plans have been released.

Step 1: Material Selection & Other Details

Material

This DIY CNC Router is made out of wood. I would strongly recommend high quality, furniture-grade plywood. It is both good looking and strong.

The other option is MDF (Medium Density Fiberboard). Not recommended is Particle Board or "regular old plywood".

  • Furniture Grade Plywood is constructed with many fine layers of alternating grain. It is typically free of voids and is surfaced with a clean veneer that looks great when finished. It is also damn strong and resists bending well.
  • MDF is made of very fine, evenly distributed material. It is heavy and dimensionally stable. It is easy to cut (but can dull blades quickly). It's mortal enemy is water.My first build was with MDF. It worked well and was perfect for experimenting. Build number 2 was with a high-quality furniture grade plywood.
  • Regular old plywood. I found local home-store type plywood to be too full of voids and imperfections to be worthwhile.
  • Particle board can easily be identified by the very coarse and uneven density. It is cheap and not strong. Do not go there.

Size

My build is 24" wide by 36 inches long. I’m not confident I’d go any larger as wood does flex under load.

Attention to detail

It is critical that all cuts are as perfectly square as you can make them. I was in a hurry for my first build and the problem became evident when I milled “mirror opposite” parts that did not line up to each other after milling! D’oh!

Holding it all together - Barrel (or Cross Dowel) Nuts

Barrel nuts provide for a super-strong joint that can be disassembled-and-reassembled many times without damage to the components. Drilling holes for these can be time consuming unless you make a jig first.

Step 2: Building the Base

A strong, sturdy base is requisite for quality results. For this, I recommend a torsion box design. A torsion box will provide a strong, stable yet light weight base for your project.

Take your time and ensure everything is P E R F E C T L Y square. If not, you will route parallelograms instead of squares!

I designed the linear bearing rails to be tucked underneath the replaceable bed to minimize dust and shavings getting caught-up in the mechanism. This made assembly a bit more complex, but the results are worth the effort.

For the linear bearing rail supports, it is critical that these are very carefully assembled so everything remains square and true. I used ¼” dowels and glue to hold everything together.

All joints are glued-up. You could use MDF for the torsion box – when it’s all glued, it will be very strong and will stay true as long as it stays dry. (water is death to MDF).

Two end-panels are added to hold the torsion box up off the work surface and allow space for the X-Axis assembly to slide and space for the axis drive screw.

The stepper motors are the same for all axis and will be covered one time, later on.

Sacrificial top board I added a second layer on top of the torsion box which is a replaceable 24 x 36” piece of MDF with “T” slots cut into it. This can be easily replaced if it becomes damaged.

Step 3: The Barrel Nut Jig

I went the extra mile and used a tongue-and-groove approach on all joints to be double-damn-sure everything went together square (the “belt-and-suspenders” approach).

After cutting all the parts, care must be taken to drill the holes for the barrel nuts. I carefully made a drilling jig using brass bushings the size of the bolt (1/4” in my case) and the barrel nut (3/8”) that would allow me to drill perfectly aligned holes without having to measure (a HUGE time saver).

In addition to drawing a center line, I also added ruler markings to the underside to speed the alignment process (for example, drilling 1 1/2" in from the edges)

To use the jig, carefully line up the parts to be drilled and mark where the holes are to go. Clamp the jig over the parts and drill both target parts at one time, without removing the clamps. Having two drill motors (one with a ¼” drill and one with a 3/8” drill is super handy).

Step 4: Linear Bearings

This is one big area where our simple plywood CNC Router design is different than "real" mills - the approach used here is a very inexpensive implementation that will still yield acceptable results for a Hobby CNC Router. This system uses a very simple and inexpensive linear bearings using 1” aluminum angle and skateboard bearings. If made right, it is quite rigid and durable. I would imagine you could substitute steel angle for the aluminum. Don't know for sure, didn't try it.

Care must be taken to drill the mounting holes E X A C T L Y the same distance from the corner of the angle. This will determine how well all four bearings ride against the opposing angle and distribute the forces.

Put the bolt thru the bearing and follow this with a nut. Tighten to secure the bearing. Then place the bolt/bearing/nut assembly into the threaded hole in the angle bracket.

If your 3/8" bolts are too long, you can offset the holes for the bearings, as long as you respect the identical distance from the apex of the angle. There are two 8” in length and four 4” in length. Other than the length, the construction is identical. Drill-and-tap 3/8”. Assemble as shown.

Step 5: The X-Axis

The X-Axis slides along the Base, front-to-back. As with all the parts, care in cutting and layout are important to ensure a quality output from your router.

Carefully align the X-Axis Linear Bearing Nut and anti-backlash parts perpendicular and on the center line of the X-Axis bottom.

Now bolt the axis together around the base. Test the bearings for a snug but free moving fit. Shim or trim as necessary to get a perfect fit.

Slide the axis forward and backward to ensure smooth movement with no binding. At each end of movement, mark the base where you will drill the holes for the drive screw.

Screw or glue the X-Axis Linear Bearing Mounts onto the X-Axis sides. Optionally attach the Linear Bearings (I put a small, flathead screw dead-center to hold it in place - not shown).

Thread the X-Axis drive screw (not shown) through one side of the Base, add the small square nut (part of the anti backlash assembly), then the spring, then thread into the Linear Bearing Nut, making sure the spring is well compressed. An electric drill carefully clamped on one end of the threaded rod will speed up this process.

Add bearings to both ends of the X-Axis drive screw and double-nut making sure there is some tension on the screw keeping it from "flopping around" at higher speeds.

In the drawings, the Y-Axis drive screw and anti backlash assembly are shown, but they are not installed yet.

The stepper motor mount will likewise be added later.

Step 6: Y-Axis

Assembly of the Y-Axis is identical to the X-Axis. The Y-Axis slides along the X-Axis, left-to-right. As with all the parts, care in cutting and layout are important to ensure a quality output from your router.

Carefully align the Y-Axis Linear Bearing Nut and anti-backlash parts perpendicular and on the center line of the Y-Axis back.

Now bolt the axis together around the base. Test the bearings for a snug but free moving fit. Shim or trim as necessary to get a perfect fit. Slide the axis left and right to ensure smooth movement with no binding.

Screw or glue the Y-Axis Linear Bearing Mounts onto the Y-Axis top and bottom. Optionally attach the Linear Bearings (I put a small, flathead screw dead-center to hold it in place - not shown).

At each end of movement, mark the X-Axis sides where you will drill the holes for the drive screw. Thread theY-Axis drive screw (not shown) through one side of the X-Axis, add the small square nut (part of the anti backlash assembly), then the spring, then thread into the Linear Bearing Nut, making sure the spring is well compressed. An electric drill carefully clamped on one end of the threaded rod will speed up this process.

Add bearings to both ends of the Y-Axis drive screw and double-nut making sure there is some tension on the screw keeping it from "flopping around" at higher speeds.

The stepper motor mount will likewise be added later.

Step 7: Z-Axis

The Z-Axis provides the up-and-down component of movement. As with all the parts, care in cutting and layout are important to ensure a quality output from your router. It is assembled-around and slides on the Y-Axis. The Z-Axis will hold your router or Dremel or pen or whatever you wish to move.

Carefully align the Z-Axis Linear Bearing Nut and anti-backlash parts perpendicular and on the center line of the Z-Axis back.

Now bolt the axis together around the base. Test the bearings for a snug but free moving fit. Shim or trim as necessary to get a perfect fit.

Slide the axis up and down to ensure smooth movement with no binding. At each end of movement, mark the Y-Axis top and bottom where you will drill the holes for the drive screw.

Screw or glue the Z-Axis Linear Bearing Mounts onto the Z-Axis sides. Optionally attach the Linear Bearings (I put a small, flathead screw dead-center to hold it in place - not shown).

Thread the Z-Axis drive screw (not shown) through the top of the Y-Axis, add the small square nut (part of the anti backlash assembly), then the spring, then thread into the Linear Bearing Nut, making sure the spring is well compressed. An electric drill carefully clamped on one end of the threaded rod will speed up this process.

Add bearings to both ends of the Z-Axis drive screw and double-nut making sure there is some tension on the screw.

The stepper motor mount will likewise be added later.

Step 8: Stepper Motors

Three of these assemblies are required.

Stepper motors need to mount straight-and-true to the drive screws. To minimize the potential for misalignment, I used a spyder assembly. There are several different variations of flexible couplers. You could even go with a non-flexible coupler. The spiders I used had too much "slop" in them that I had to shim out.

The motors mount via “T Nuts” to their associated panels.

The dimensions and design will need to be adapted to your specific motor and coupling mechanism.

I recommend using a connector on the motor wiring (red circle). This just makes assembly and disassembly (and troubleshooting) so much easier.

Make all the screw holes in the Spacer Block as tight to the screws as possible. This assembly is subject to constant back-and-forth torque, so keeping everything tight and close tolerance will help keep everything from coming loose.

Step 9: Electronics

You will need four main components:

  1. Computer (ideally with a parallel port)
  2. Stepper motor driver
  3. Stepper motors
  4. Power supply (to drive steppers)

Computer

Ideally with a parallel port

Suggestion: Get a small desk-side computer from a friend, yard sale or an electronics recycler and throw a parallel port card in it. The motherboard may even already have the connector installed, you just need a back plate with ribbon cable. Don't bring your laptop into the shop. It is dirty and generally not safe for delicate electronics. With a cheap-o deskside machine, you can open it up and blow it clean whenever you need to. CAM software is not terribly demanding on your PC, since the machine can only move so fast, which is not a challenge for any fairly current computer.

Stepper motor driver

I recommend to "keep it simple". I use and recommend the HobbyCNC board. One board, up to 4 axis. No break-out board and much simplified wiring and a much smaller footprint. Whatever you do, avoid eBay foreign-made driver boards. You want to be a CAD CAM expert, not a "fix the cheap import" expert.

You need a parallel cable with all pins wired straight through.

If you must use USB or Ethernet there are solutions (price goes up quite a bit, though).

Stepper motors

NEMA 23 motors are plenty big enough. Make sure you get the right type for your driver board. There are two main families: Unipolar and Bipolar. The HobbyCNC boards are unipolar - which means you need a 5, 6 or 8 wire stepper motor (4 wire is bipolar only). I don't know how to 'size' the motors. I went with a fairly 'beefy' motor. The tradeoff: More torque, more power (bigger power supply) slower speeds.

Power supply (to drive steppers)

For the HobbyCNC solution, a burly, unregulated linear supply is fine. Around 32 Volts DC and figure 2.5 Amps per stepper motor. You can use a regulated 'switching' supply too, no problem. I see lots of cheap ones on eBay. Caveat Emptor. I built my own.

Optional (but recommended) Emergency OFF switch

I purchased this at my local woodworking store (Rockler). When things to bad, they go bad fast, I want a large target. This will kill my motors and my spindle.

Optional - UPS
I have had a few jobs ruined by kicking a plug or my compressor turning on. The UPS stops all that stuff. No more interrupted jobs. This UPS only powers the PC. The power supply for the motors has enough storage to deal with transients.

Cabinet

I built a rolling cabinet for my CNC router so I have a place for all the tooling, wrenches, spindles, stock, keyboard drawer and a large drawer for the electronics. Yellow box is the HobbyCNC Stepper Motor Driver board. Red box is the linear power supply to drive the steppers. Blue box is an optoisolator board for my limit and home switches. Green box is my power distribution. Purple box is my small PC. Drawer is cooled by two fans.

Step 10: Wire Management

Although optional, all the wiring and cables will get in the way. It is very bad if your wiring gets jammed in the moving parts (for a whole bunch of reasons). There are a lot of ways to keep them out of the way, but I wanted something cool-looking that I could make from stock I had available.

This design is simple, inexpensive, fully functional.

X-Axis Wire Management

You can ‘futz’ with these dimensions. Make the angle sharper for a tighter turn, make the tray wider or narrower, whatever suits your design. I started by ripping two lengths of ½” plywood to a width of 1 1/2 inches. I ripped two equal length strips of 3/16″ hardboard (¼” would work fine too) to a width of 1 1/4 inches. I glued-and-clamped the hardboard strips onto the 1/2″ plywood, forming a U-shaped ‘trough’. In the drawing you can already see how the tray will fold.

Cut the other 1 ½” strip onto segments exactly as long as each of the tray segments (2 5/8″ in my case). These small segments are screwed to the “bottom” of the tray – this will prevent unwanted bending in the “wrong” direction when the tray is suspended upside down.

The idea is to end up with a ‘sandwich’ of parts, as demonstrated below. This is only one segment for example only, the orange “duck cloth” (bright orange, canvas like material) needs to be a continuous strip the length of the cable tray.

Cut a long strip of duck cloth 1 1/2″ wide, a bit longer than the total length of the cable tray. I lined-up all the cable tray segments and secured them between two boards so the wouldn’t move during the gluing step. I coated the underside of the tray and one side of the duck cloth with contact cement. Once dry per the instructions, gently stretch the duck cloth and glue it to the tray. Two people works best here.

The bottom piece is carefully lined up and held in place with a #6 x 3/4″ wood screw (no contact cement). A small bit of bent coat-hanger completes the assembly.

Y-Axis Wire Management

For the Y-Axis I just made a simple articulated arm. It needs to remain slightly bent when the Y-Axis is at it's most distant point.

Step 11: Software

This is where the next phase of your learning starts. There are so many options here that are much better covered in other places. Here's a summary!

You will need several bits of software. I won’t make any recommendations here, as there are so many options, from free to high cost, and everything in between. Typically you will need these three bits of software:

  • CAD. Computer Aided Design. This is where you design the ‘thing’ you want to machine. Shape, size, holes, slots, everything. All dimensioned.
  • G-Code converter. This takes the fancy CAD drawing you just made and converts it into the language needed by the CAM machine. This may be built-in to the CAD software, it may be external.
  • CAM. Computer Aided Machining. This takes the G-Code as input and converts it to the pulses needed to move the stepper motors.

Here Google is your friend.