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.