CNC Milling Machine

Updated 28 April 2012

I am in the process of building and refining two CNC controlled milling machines. I am also using one on a part-time basis as a 3D printer. Neither of these machines is entirely based on either a kit or a complete set of plans. They are both based on machines intended for a different original purpose that I have modified for CNC milling. I purchased two complete multi-axis stepper motor controller boards configured to be controlled by a PC through the parallel port running Mach3.

For me at least, learning to use the control software has been the most complicated aspect of this effort. Mechanical requirements for rigidity and freedom of motion seem intuitive; the stepper motor configuration has been relatively painless. Very basic machine motion is fairly obvious to configure, but I am still working on tool path adjustments for the radius of a bit, iterative cutting routines, G-code loops, and other programming details required to create successively complex parts. For the 3D printer, I am also progressing slowly on 3D CAD modeling, slicing models in to successive layers for extruder builds, and finding the right extruded plastic flow rates, starts, and stops to make successful plastic components.

I describe here the basic configuration of the two CNC tools that I have built so far. They each have significant limitations, but they are capable enough to keep me mentally and physically devoted and happily spending many hours in my garage. I have found that setting particular goals e.g. manufacturing specific parts has driven my tool development in a sensible way. So far I have not made any parts that could not be purchased commercially for a low price, but I hope to reach a point where I can dream up arbitrary components and turn them in to physical objects quickly and easily. The idea of making tools that improve other tools is also appealing.

Unimat-based 3-axis CNC mill and 3D printer

My 3-axis CNC mill with a fourth axis for an extruder is based on two Unimat machine tools, each converted to CNC and mounted to allow one machine to provide the X and Z axes, and the lower mill providing Y axis movement. I built a wooden structure to suspend the upper machine and to clamp the lower machine in place. I use a four axis stepper motor controller that I purchased on eBay, and control the system using Mach3.

This arrangement has a few advantages over other systems that I have noted. Since the lower machine moves only in Y, the width of the supporting frame only needs to be wide enough to accommodate any base plate or work piece as opposed to these objects plus their motion in X. Additionally, since the lower machine is independently a milling machine and lathe, by adding a stepper motor to its cross slide, I can use it separately as a CNC lathe. I made all of my stepper motors quick disconnect using PC disk drive power cables, so I can easily unplug the X or Z axis and move it to the cross slide motor to perform CNC lathe work.

By replacing a cutting tool on the Z axis with an extruder, I can also use this machine as a 3D printer. The fourth axis control is used to feed ABS filament in to the extruder. I am currently using a Dremel tool as my mill spindle. This arrangement certainly has limitations in both power and rigidity, but for making small wood, plastic and soft metal (aluminum and brass) parts, its performance is adequate so far.

One improvement for this milling machine is addition of an adjustable base under the lower milling machine (the Y axis platform) to allow tip and tilt of the work surface to be controlled to cause the working tool tip to touch down in Z at the same point across the entire working surface. The alignment without this adjustment is already pretty good, so this addition will probably wait until I need such accuracy. Since I am using a Dremel tool for machining, I would also like to try mounting the tool separately from the machine and operating a cutting or grinding tool using a flexible shaft. That way I can mount just the tool end to the mill and mechanically support the Dremel motor separately. That will reduce the weight supported by the Z-axis linear stage and also reduce the lever arm between the stage and the tool tip. That should reduce the play in the machine and improve cutting precision. Between play in the cutting tool head and motion of the working surface under force at the edges of my platform, I experienced a machine problem where a drill stuck in a 1/4” aluminum plate as I was drilling through. The machine kept moving, but the drill bit dragged its way out of the hole. If I can significantly reduce the tool lever arm, I may avoid this problem in the future.

I additionally plan to implement at minimum relay control of the Dremel tool through Mach3, and later PWM speed control that I can set within g-code. Currently I turn the cutting spindle (Dremel) tool on and off manually. I should be able to easily add a relay capable of turning the tool on and off through software control.

The minimum step size can be determined as follows. The Unimat lead screw moves the carriage 1 mm per turn. My stepper motors have 1.8 degrees per step, or 200 steps per turn. The stepper motor controller has ½ step operation selected, so I have 1 mm per 400 steps. A single step is therefore 0.0025 mm.

I set maximum tool speed by trial and error. If the motors ever skip steps, I reduce speed. I have been running the machine for some time now with no skips due to high motor speed, so I think the present value will remain.

Machine Specifications:

X and Y axis range of motion          184        mm
Z axis range of motion                     102        mm
Minimum step size                           0.0025   mm (0.098 mil)
Maximum tool speed                       400        mm per min
Maximum tool diameter (Dremel)    1/8          inch

Engravograph-based 3-axis CNC mill

The second CNC machine tool that I built is based on a Hermes Engravograph. I am not sure of the vintage of this machine, but it looks to be several decades old. It started life as a 2-axis stepper motor controlled engraver with a pneumatic third axis. I removed the original cutting tool form the machine and ordered a used linear axis again from eBay (again) to act as a Z axis controller. In retrospect, it would have been a good idea to find a way to keep the original cutting tool functional with the machine since it was well suited to circuit board milling. For now I have a more rigid 3-axis platform than what I was able to build using the Unimat machine tools and my home-made support platform.

This mill suspends the Z-axis on the X,Y motion controller so that the work area is fixed to the bench top. I built a platform to support the work piece using four 1/2”-13 threaded rods so that I could adjust tip and tilt to make sure the cutting tool touched down evenly across the whole surface. This is a feature that I do not have on the Unimat-based system.

In order to provide more cutting power to this second system, I purchased a 1/3 horsepower spindle motor attached to a flexible drive shaft. I mounted the cutting tool head to the machine Z-axis and suspend the spindle motor separately. This allows the machine to have the power of the larger motor without the requirement to support the motor bulk and weight.

I use another (3 axis) stepper motor controller purchased through eBay for this machine. I can switch from machine to machine simply by attaching the appropriate parallel port cable to my PC and loading the appropriate Mach3 configuration file.

I plan to use the spindle control available on the stepper motor controller to at minimum turn the spindle motor on and off. A fancier implementation would be to use PWM to control the spindle speed. I tested the effectiveness of this method using a light dimmer to control the motor speed (also a PWM circuit). I first tried a variac to lower the motor voltage to control speed, but the torque at low RPM suffered noticeably. Unfortunately, the PWM case is not much different. The spindle acts something like a very large Dremel tool.

The X and Y lead screws have 10 threads per inch. The Z axis has 8 threads per inch.

The machine calibrates well in X and Y to 2000 steps per inch in Mach3. If the stepper motor controller is taking full steps and the motors move 1.8 degrees per step, then they take 200 steps per turn or 2000 steps per inch. The Z axis takes 1600 steps per inch. I plan to change to ½ steps on the controller.

Machine Specifications

X axis range of motion                    10    inches
Y axis range of motion                    8    inches
Z axis range of motion                    5    inches
Minimum step size (X and Y axis)   0.5    mils (will be 0.25 mils)
Minimum step size (Z axis)              0.625    mils (will be 0.31 mils)
Maximum tool diameter                  3/16    inch (specified as 5/32, but the larger size fits)
Maximum tool speed                      400    inches per min

Here is a video of the Engravograph-based CNC mill drilling a large array of holes in a plastic plate.