Wednesday, August 31, 2016

CNC Router Rotary Axis

This post documents adding a rotary axis to my CNC Router Parts router.

My router was a 3-axis machine. Adding a 4th rotary axis allows considerably more flexibility as the part to be machined can be rotated to expose different faces for cutting. I'd previously done some 4-axis router work at Stamps School of Art & Design - here's that post. I really wanted to add this capability to my router.

After exploring a few options - most of which were very expensive - I chose to go with an inexpensive kit from China. It was only $358 including shipping. I'd have to figure out how to get it hooked in to the electronics then build my own mount.

Rotary Axis Hardware

I ordered it and it shipped from Hong Kong the next day. It was ordered on Thursday June 30th and arrived in Michigan, USA on Tuesday July 5th. Not bad!

It includes a tail stock, a self-centering 4 jaw chuck, a Nema 34 stepper motor, and a 4:1 ratio belt drive. It includes both inside and outside jaws.

Electronics Hookup

To connect it to my setup I had to solder on a 4 pin XLR male connector.

Then using one of CNC Router Parts standard cables I could plug directly into my controller:

I had to set the dip switches in the electronics cabinet to match the 4.8 amps of the motor (the other motors I'm using are 7 amps). Then set the steps per revolution in Mach3 and it was ready to run.

Under Table Mount

I went through several iterations when designing how to mount the motor/chuck and tailstock. The requirements were:
  • It had to be always hooked up - never removed from the machine. I wanted to be able to use it without much hassle. 
  • It had to be moved out of the way when I wanted to 3-axis route using the entire 4'x4' bed. 
  • It had to be rigid when locked in place. 
  • And it obviously had to support a variety of part sizes including wide ones. 
I messed around with a lot of ideas. One was cantilevering the parts from one of the horizontal rails in the frame. But I thought this would be too much torque on the frame - the motor/chuck weighs 19 pounds.

In the end I decided to make it out of aluminum extrusions. I  choose components from 80 / 20 Inc. They have quite a few parts including sliding ones. And a great CAD library of their parts. So I could fully 3D model the design.

This is the final design, as seen from below the table. The existing frame is light blue. The new components are gray. The handles shown lock movable parts of the assembly.

Here's a front view of the frame in the lowered, beneath the table position, so 3-axis routing can happen over the full table:

Here's the frame raised up, slid up those verticals, ready to route. The center line of the axis is right at the top of the table. That's the lowest reach of the spindle:

Here's the tail stock moved forward for a smaller part. It slides along on the horizontal rail:

This configuration allows for a part that's 22" long and 14" in diameter.

After having 80/20 review the design they gave me a quote. The parts arrived at my house in just under two weeks.


The parts were easy and enjoyable to put together. The linear bearings as 80/20 refers to them work quite well. Things slide smoothly and lock solidly,

Loosen the four corner yellow handles and you can lower the entire assembly beneath the table.

In the up position the centerline of the axis is right at the top of the frame which is close to the lower limit of the reach of the tool.

Chuck Setup

The 4th axis has a four jaw self-centering chuck which has to be assembled in a particular sequence. If this isn't followed the jaws will not all line up correctly. This process is outlined below:

Identify the numbered jaws and the numbered slots. The jaws are labelled on their side. The slot numbers are stamped into the back face of the slot (you'll need a flashlight to see them).

  • Using the key, turn the scroll observing the number one slot until the outermost end of the scroll appears. You should see the edge of the thread just appearing to enter the slot. 
  • Next turn it back a little just enough to allow the #1 jaw to enter the slot. 
  • Then push the jaw down as far as it will go (which isn't very far). 
  • Next, using the key turn the scroll so that it engages the first tooth of the jaw and starts to pull it inwards. You can give it a light tug to make sure it's engaged. 
  • Rotate the chuck until the next slot is up then turn the scroll until the start of the thread appears in the next slot. 

Repeat the above with the #2 jaw and continue with jaws 3 and 4. This procedure ensures that all the jaws are synchronized with the scroll. Here you can see them coming together properly, and aligned with the point of the tail stock:

Alignment / Calibration

The rotary axis needs to be exactly aligned with the Y axis of the router. X needs to be zeroed over that axis. And the Z height needs to be zeroed on the centerline.

I bought an aluminum cylinder to use as a calibration tool. It was very straight and uniform in diameter (1.875").

As carefully as I could I marked the centerline, and used a punch to create a starter dent in the end.

Then I drilled a small hole which will accept the tail stock point.

This bar then gets chucked up between the centers. I put a dowel pin in the spindle and carefully jogged the axis to look for variations using a feeler gage. One end of the horizontal rail can be moved to level things out.

I had to tweak the tailstock location a teeeeeny bit in X to get it aligned. But this is really about as good as I can get it without a probing routine which touches off at multiple points on the bar and compensates for any axial deviation in software. If I can locate a Mach3 probing routine I'd certainly like to try it.

Toolpath Programming

There are several possibilities for how to program the cutting. A powerful, but very simple method is to simply rotate the part to a new face, then 3-axis mill it from that position.

I'm using my standard 3-axis router profile. I manually rotate the chuck using the MDI interface of Mach3. I just type in G90 G0 A90.0 and it rotates to an absolute rotation of 90 degrees. Then I run the toolpath from the side. Doing G90 G0 A-90.0 and it rotates to the other side. You can also rotate in a relative manner using code like G91 G0 A10. It's really easy, and of course keeps the simple 3-axis toolpath programming.

An alternative is to rotate the part as it is cutting much like a slow speed lathe.


I'm excited to finally have this running. First work will be some portrait sculptures much larger than I've been able to do in the past.

Here's a link to an early test of the system.

No comments:

Post a Comment