In the final two weeks of the semester I focused on tying together the pieces of my T-Base lathe project. I first selected a spindle based on my estimated requirements for torque and cutting speed. I then compiled all of the assemblies from previous sections into a single CAD assembly and designed the tool post, machine base, and spindle mounts. I also built a comprehensive error budget that predicts and tracks errors due to both stiffness and geometrical misalignment for the entire lathe. I then manufactured a number of components that were previously made from plastic, assembled the lathe, and implemented CNC controls. Finally, I cut a few test parts, measured the performance, and compared to my error budget.


In previous weeks I made a developed a spreadsheet to calculate the cutting power required to face an aluminum blank. For a cut depth of 100 m with a feed rate of 152 m/min and a chip load of 0.46mm/rev my estimated torque required was 310 N.mm with a spindle speed of 3,800 RPM. The total power requirement was 140 Watts. The motor provided for the class was rated for 21 oz-in of torque (McMaster) at 3,000 RPM which equates to 140 N.mm of torque. A number of students and I searched for a similarly priced alternative and found that a trim router could meet my performance requirements at the same price point. I purchased a makita RT0701 router which comes with a 1/4” collet pre-attached. The router is rated for 900 Watts of power at 10,000 RPM (Makita) and I calculated a resulting 0.85N.m of torque below.

The calculations suggest the trim router is more than capably of meeting the performance requirements to enable my lathe to make small cuts on aluminum parts. The largest risk of selecting the trim router was its minimum speed of 10,000 RPM. Such high speeds would not be acceptable for ferrous alloys. Machining aluminum at such high speeds will require a similarly high feed rate.

Increasing Stiffness in Linear Stage and Rotary Modules

My first linear stage proved to be sufficiently stiff while the second, made of plastic components was not suitable for use as a machine tool. Thus, my first task was to rigidize the second stage. I accomplished this by replacing key elements such as the carriage plate and the base with aluminum plates with thickness of ¼” and ½” respectively. The elastic modulus of the plastic components was on the order of 3 GPa and replacing with aluminum (69 GPa) provides a stiffness increase of 23x for the replaced components. Because the plastic stage components were designed for manufacture on a laser cutter, it was easy to directly substitute water jet as the manufacturing process. The image below shows the modified linear stage. The rotary motion module includes the bearing, leads crew, and bearing block. Previously, the bearing block for the X-Axis was made of ABS plastic while the bearing block of the Z-Axis was made of aluminum. This week, the X-Axis bearing block was replaced with an aluminum block shown below. In last week’s analysis I identified the plastic block as a critical source of error.

Carriage plate, bearing block, and base plate manufactured from aluminum to increase stiffness

Tool Post and Spindle Mount

With the basic elements for rotary and linear motion complete and the spindle selected, I designed components to fixture the tool and the spindle. The tool holder and spindle mount were designed to be very rigid in order to minimize chatter. The tool holder was fabricated from a single block of aluminum and utilizes three set screws to fix the tool in the post. While it would have been desirable to implement an adjustable tool height, I decided to forego including an adjustment mechanism in favor of leaving a slight gap for shims between the tool and tool holder.

Milling the tool post

CAD Modeling

All parts to be fabricated were first modeled and assembled in a CAD assembly using OnShape software. I chose OnShape for its flexibility (you can model from any computer) as well as its robustness. I found that OnShape was highly capable of keeping track of a large number of components and assemblies and even allowed me to edit parts in place which was very helpful for generating bolt patterns. A rendering of the assembled model is shown below and clicking the link provides a direct link to my CAD assembly.

Final assembly rendered in OnShape


The lathe was designed from early stages to accommodate computer-controlled stepper motors for actuation of the linear axes. Each axis is controlled by a nema-17 stepper motor with each motor having 200 full steps per revolution. The motors are controlled by an Arduino UNO which controls the motor pulses produced by a CNCshield. The Arduino interprets GCODE via grbl g-code parsing software. Gcode commands were hand-coded and sent to the Arduino by a Raspberry PI computer which was chosen for its low cost and compactness.


Testing was carried out by facing a 10mm diameter aluminum spacer. The spacer was CA glued to a 1/4” dowel pin secured in the collet. GCode was hand-written to operate the lathe automatically. The code, shown below, commands the lathe to remove 0.5mm of material in five passes. Feed rate is set to 100 mm/min.

#GCODE Commands for Facing 0.5mm from 10mm aluminum rod 
#Note spindle control is manual
N1  G54
N2 G1 Z.1 F150
N3 X6 F100
N4 X0 Z0 F250
N5 Z.2 F150
N6 X6 F100
N7 X0 Z0 F250
N8 Z.3 F150
N9 X6 F100
N10 X0 Z0 F250
N11 Z.4 F150
N12 X6 F100
N13 X0 Z0 F250
N14 Z.45 F150
N15 X6 F100
N16 X0 Z0 F250
N17 Z.5 F150
N18 X6 F100
N19 Z-10 F250
N20 X-5 F250

Measuring Stiffness