Introduction: How to Make a Mini Milling Machine- Manual or CNC!

About: I'm a former bicycle industry designer turned professional jeweler. I like working with my hands and am happiest when I'm in the shop building my creations. If you need help with your project just let me know!
I think one of the best things about tools is that they can be used to make more tools! I decided to build a miniature milling machine for machining plastic parts, creating wax patterns and for drilling really small precise holes. I also wanted to design it so that I could convert it to CNC for machining circuit boards and for doing repetitive work.

The finished mill has a 11" x 18" footprint and is about 19" tall. Depending on the motor used it is capable of machining plastic, wax, wood and non ferrous metals. Right now my motor is a bit underpowered due to the power supply I had on hand. It's very quiet- I could use this inside the house at night and not wake up the little ones!

The X axis travel is 6 1/8"
The Y axis travel is 6 1/4"
The Z axis travel is 2 1/4"

If there are any questions about any of the drawings or something just doesn't make sense just ask! You can download larger images so the drawings will be much easier to read- just click on the "i" symbol in the upper left corner. I just added an exploded view sketch that helps show how all the parts fit together.

Follow along and build one for yourself!

Step 1: Tools and Materials

Tools used:

table saw (a miter saw would also work -they tend to be more accurate for precise cuts)
drill press
router w/ 1/2" straight cutter- needs to be mounted in a router table
jigsaw (or band saw if you're lucky enough to have access to one)
cordless drill
bench plane
bench vise
hack saw
assorted files (for cleaning up rough edges)
tap and tap handle ( I used a 4mm x .7 tap because I used metric screws but you could also use an 8-32 tap if you want to use 8-32 screws)
#10 countersink bit
wood glue
bar clamps
1 1/4" Forstner bit
5/16" Forstner bit (used for counterbores for 4mm bolts)

Materials/cut list:

3/4" thick Birch plywood was used for the following pieces-
11" x 18" -base plate
12" x 4" -Y axis base plate
8" x 4" -Z axis base plate
6" x 2 3/4" - motor mount base
12" x 9" (make four of these) -for the mill column
2 1/2" x 1 7/8" (make three of these) -for the anti backlash screw blocks

3/4" thick MDF (medium density fiberboard) was used for the following pieces-
6" x 6"- mill table
3 7/8" x 1" (make six of these) -rail end blocks

Aluminum channel- 57/64" x 9/16" x 1/16" wall thickness:
12" long (make four) -X and Y axis rails
8" long (make two) -Z axis rails

3/8" thick Delrin was used for the following pieces (Delrin can be purchased from Colorado Plastics):
4" x 3 7/8" (make three of these) -slides
2 1/2" x 3/4" (make three of these) - handles
3 1/2" x 3/4" (make six of these) -slide retainers

5/16" round Aluminum rod:
1 1/2" long (make three) -handles

1/4" round Aluminum rod:
3/4" long (make six) -inserts for anti backlash blocks

1/4"-16 ACME threaded rod: available from McMaster-Carr part#98935A803
12 3/4" long (make two) -X and Y axis lead screws
8 3/4" long -Z axis lead screw

6 each 1/4"-16 ACME nuts -for anti backlash screw blocks (McMaster part#94815A007)
3 each 1/2" diameter 1 1/4" long compression spring -for anti backlash screw blocks
3 each 1/4" locking collars -these help hold the ACME screw rod in place (McMaster part# 6432K12)
6 each 1/4" bronze flanged bushings (these fit a 1/4" shaft and fit into a 3/8" bore) -for the rail end blocks (McMaster part#6338K451)
3 each 1/4" washers (just about any thickness will do) -these are spacers for the handles

3/4" wide Aluminum or brass plate (1/16" thick):
1 7/8" long (make three) -for anti backlash ACME screw retaining plates

1 3/4" (45mm) long bolts w/ washers and nuts:
12 each- I used 4mm hex head bolts for all the bolts but 8-32 bolts will also work
-these go on the ends of the Aluminum channel rails

1" (25mm) long bolts w/ washers and nuts:
4 each- 4mm
-these go in the middle position of the x and Z axis Aluminum channel rails

3/4" (20mm) long bolts:
38 each- 4mm

6 each 4mm x 1/4" (7mm) long set screws -for the handles

8 each 2" long wood screws -for securing the mill column to the base plate and the Z axis base plate

1/2" diameter wood dowel:
4 each 3" long -inserts for mill column
6 each 3/4" long -inserts for rail end blocks

For the motor assembly/spindle I used a 12v electric motor salvaged form my junk box along with a Foredom #44 handpiece. The #44 uses 1/16", 3/32", 1/8" and 1/4" collets (it's also available in metric) so it fits a wide variety of cutting tools. I also have a #30 handpiece which has a standard drill chuck. Both are extremely durable and are very quiet. You could also use a standard Dremel tool if you want an all in one solution.

For the CNC conversion:

6 each 2 1/2" x 2/12" x 3/4" thick Birch plywood pieces -for stepper motor mounts
3 each stepper motors
3 each motor couplers -I made mine myself from old parts I got from a display but the ones I've linked to are identical
12 each #10 1" long wood screws
6 each #10 2" long wood screws
7/8" Forstner bit
CNC stepper motor controller- the HobbyCNC or Linistepper would be my choice

Some notes about using a router table and drilling holes for screws:

When using a router table you always want to cut in a certain direction- the cutting bit should try to force your work into the fence (see drawing.) If you move your work in the opposite direction, the bit will pull your work away from the fence and it will be difficult to get a precise cut.

On many of the drawings I specify a countersink or a counterbore. A counterbore has a flat bottom (it's best cut with a Forstner bit or end mill) and is meant for flat bottomed screws. A countersink is for flush mounting screws with a tapered head, like most wood screws. The other important thing is to always drill a pilot hole first, then a clearance hole and then the counterbore or countersink. If you don't drill a proper clearance hole, the screw will try separate the two parts you're trying to screw together. It'll also make it difficult when cutting threads for machine screws- see the drawing below.

Please use care and good judgment when operating power tools. Always keep fingers well away from cutting tools- use a push stick for cutting thin stock on a table saw and router table. Always wear eye and ear protection and a dust mask- especially when cutting MDF as the dust it produces is pretty nasty stuff.

Step 2: Design

This mill was designed so that it could be converted to CNC by adding stepper motors and motor mounts in order to make it as versatile as possible. If you only want to mount stepper motors and do not have the need for manual operation then feel free to modify it accordingly.

The design uses an anti backlash system. Backlash is when you turn the handle forward and back and the cross slide doesn't move- it's the bane of many a machinist and it makes it hard to make accurate cuts because you have to compensate for it. It's a bit trickier to build the mill this way compared to using a single ACME nut but it does work very well and it's worth the effort required.

I primarily used Birch plywood and MDF for the construction because it's stable, flat and it works well in this application (it's also what I happened to have on hand!) There are several parts that have wood dowel inserts- this is because when screwing into the end grain of plywood it doesn't hold screws very well at all (ditto for MDF.) The slides are made from Delrin because it works well in this application, it's easy to cut and it holds screws well. I wanted to construct this using materials that could be purchased at local hardware stores. There are a few areas where it can be built differently and I'll note them as I go along.

Here's some sketches of the most critical parts as well as an exploded assembly drawing- the drawing should be used as a general assembly aid (a lot of the bolts are left out of the drawing for clarity.) Many of these dimensions can be modified to suit the parts and materials you might have available. The most important thing is to make everything as absolutely square, straight and flat as possible.

Step 3: Make the Slides

For this step you'll need a router table- if you don't have one you can make one by screwing (or securely clamping) a 5/8" or 3/4" thick piece of MDF to a bench top. Bore a hole in it using a hole saw and mount your router from the underside (see drawing). Use a piece of MDF or plywood to make a fence by clamping it on each side of the table. The 1/2" straight router bit should just barely touch the fence.

Now take the three 4" x 3 7/8" Delrin pieces and cut a shallow track into the bottom of the 4" long end on both sides. The depth of the cut should match the wall thickness of the Aluminum channel exactly.

When assembling the mill, if you find that the slides bind on the Aluminum channel you can go back and adjust the fit by trimming the width of the track you just cut. This can be easily accomplished by loosening the fence, slide it away from the 1/2" router bit and sliding a piece of typing paper between the fence and the bit. Now clamp the fence down and remove the sheet of paper. This will allow you to cut a few thousandths of an inch off the Delrin slide at a time, enabling you to adjust the fit of the parts and get the slide to operate smoothly.

Step 4: Make the End Blocks

Take the six pieces of cut MDF blocks (3 7/8" x 1" x 3/4") and drill all the holes in them using a drill press. I drilled them in marked pairs- that way I would be sure they would line up correctly.

Glue 1/2" x 3/4" long wood dowels into the holes on the three pieces. These wood dowels serve as anchors for mounting the stepper motor mounts later on, so if you don't want to make the mill CNC ready you can leave them out. If you make the blocks from Delrin then you don't need to use the dowel inserts since Delrin holds screws just fine.

Tap in the bronze bushings into the 3/8" hole in each block. Check the fit of the ACME rod in each bushing to make sure it rotates freely. The bronze bushing isn't necessary if you make the blocks from Delrin- instead drill a 1/4" hole for the ACME rod (the Delrin acts as the bushing.)

Step 5: Make the Anti Backlash Screw Blocks

Take the three pieces of 2 1/2" x 1 7/8" plywood (you could also use Delrin or MDF) and cut them according to the drawing. Drill and counterbore the holes for the mounting bolts. Drill and tap the 1/4" Aluminum rod for the 4mm bolts and insert them into the blocks (make sure you can see the threaded holes.) If you use Delrin to make the parts you can skip the Aluminum inserts and just thread the holes in the blocks for the 4mm bolts that hold the metal plate that retains the ACME nut.

My blocks were cut by hand- and it shows! The best way to cut the 1/2" wide slots for the ACME nuts is to make a jig and cut them using the router table. Clamp the screw blocks in the jig and then run the jig over the router bit to cut the slot. Don't try to cut the slot to full depth in one pass- just slowly increase the bit height and make multiple cuts until you get the desired depth. Cut the slot for the non spring side first and then flip the piece over to cut the other slot- that way both of the ACME nuts are guaranteed to be in perfect alignment.

Now make some 3/4" x 1 7/8" retaining plates for the front by drilling holes for the mounting bolts and a 5/16" hole so the ACME rod can slide through.

Check the fit of the parts by assembling it as shown in the drawing. The spring should be 1 1/4" long ( or close to that) before being compressed.

Step 6: Make the Rails

Take the cut Aluminum channel and drill three 4mm holes in each one. One hole 1/2" from each end and one hole in the center along its length. If you use a center drill first then the drill bit won't move around on you when you try drilling the holes.

Deburr the holes using a deburring tool- this will get rid of any rough edges left by drilling. You could also use a file but it's not quite as clean.

Step 7: Make the Mill Column

To make the mill column take the four pieces of plywood that measure 9" x 12" and glue them together using wood glue and clamps. After the glue has dried overnight, check that it is square and that the ends are flat. If not, you can use a bench plane to flatten the ends.

Now I used a 1 1/4" Forstner bit to cut the radius on the inside edge and then cut the inside with my trusty jigsaw. Four 1/2" holes are then drilled and wood dowels are glued in.

The column then gets glued and screwed to the back center of the 18" x 11" plywood base using 2" long #10 wood screws. I always countersink the screw heads- do this using a #10 countersink.

If you don't want to go to the trouble of making a laminated plywood column you can make one from 1 1/2" plumbing pipe (see drawing.) You might have to shim the flanges to get it to sit square and level.

Step 8: Make the Z Axis

Begin by screwing (using 2" long wood screws and countersinking the holes) and gluing the 8" by 4" piece of plywood to the mill column. Make sure it is square/level relative to the mill base.

Now clamp the rails to the plywood base- use the cut Delrin slide as a spacer. Remove the Delrin slide and insert the end blocks. Slide the ACME rod through the blocks to make sure everything is lined up correctly and then drill through the holes in the rails. Insert four long bolts through the ends of the rails and secure them with nuts. Now insert a shorter bolt from the back of the plywood base through the center rail hole and secure it with a nut.

Step 9: Make the X Axis and Y Axis

These are done just like the Z axis. Make sure the X axis rails are mounted square to the milling column. The Y axis rails are mounted to the 12" x 4" plywood piece. The center bolts on the Y axis need to be counter bored so they sit flush with the bottom of the plywood base, so use the 3/4" long bolts.

Step 10: Assemble the Slides

Mount the anti backlash blocks in the center underside of the Delrin slides. Do this by using the 3/4" long bolts and drilling and tapping holes in the Delrin slides.

Now mount the 3 1/2" long by 3/4" Delrin slide retainers by drilling and tapping holes and then screwing them to the slides with 3/4" long bolts.

Mount the Y axis slide to the underside of the 6" x 6" MDF piece.

Mount the X axis slide to the bottom of the of the Y axis plywood base plate (the part that has the Y axis rails mounted to it.) It is VERY important to get this mounted centered and square.

File a 1/2" flat spot into one end of each ACME rod- this is for mounting the handles. Now assemble the anti backlash assembly. The side of the assembly that has the retaining plate faces toward the side of the mill where your turning handles will go.

Step 11: Mount the Slides to the Rails

Cut the ACME rods using a hacksaw- make sure to clean up the ends of the threads where you cut the rod. Use some wood blocks or a cloth wrapped around the thread when holding the ACME rod in a vise for cutting so you don't damage the threads. File a flat spot onto the last 1/2" of the ACME rod- this is so you can mount the handles (or stepper motors) later.

Mount the slides by removing each of the end rail blocks. Slide the slides onto the rails and fit the ACME rod into the bushing in the opposite rail block. Slip the retaining collar over the ACME rod. Now slide the end rail block into place and secure it with the bolts that were removed.

Mount the 6" x 2 3/4" plywood motor base plate to the Z axis slide using 3/4" long bolts. Make sure it is square!

Step 12: Make the Handles

Drill a 1/4" hole into the center of each of the 2 1/2" long Delrin pieces. Drill a 5/16" hole toward the end and drill and tap a hole for a set screw for each hole you just drilled. Insert a 5/16" Aluminum rod into the outer hole and secure it with the set screw. Slide a 1/4" washer over the ACME rod and then slide the handle onto the ACME rod and secure it with a set screw.

Step 13: Mount a Motor! (or a Spindle and Motor)

I used an old Aluminum block I had in my scrap box to mount the Foredom handpiece. The handpiece has a 1" OD and the block I had was for holding bicycle fork steerer tubes during cutting so it was a perfect fit. You could also use a hardwood block with a hole bored in it with a Forstner bit. The holes in the center of the block are for tightening/loosening the collet.

I drilled a couple of holes in the block and mounted it to the Z axis plate with two bolts. The motor mount was a piece of bent steel that came from an electrical box. The motor is connected to the handpiece with a small timing belt that came from an old copying machine, but I've found that large "O" rings do a good job as well- so do vacuum cleaner drive belts. The end cap of the handpiece is removed and a timing belt pulley is fitted to the handpiece shaft- the shaft is 1/4" diameter. I'm currently working on speed control for the motor and will post an update when that's finished.

I found a similar motor to the one I'm using here. It's a 12v motor like the kind used in a cordless drill. They tend to be very durable and have a wide voltage range. Miniature timing belts and pulleys are available here .

The other option is to simply mount a Dremel tool- no need to worry about belt tension!

Mount some rubber feet to the bottom of the mill and you're done!

I did add some stick on metal ruler scales to the Aluminum channel for each axis- it makes it really easy to get rough measurements. I also made a dial indicator holder that is positionable so I can get really precise measurements from each axis. The indicator in the photo measures in .0001" increments.

I'll be posting the CNC conversion soon along with several handy tools like an indexing fixture and milling vise so stay tuned....

Step 14: CNC Conversion

For converting the mill to CNC you need to make some stepper motor mounts and motor couplers. I made each motor mount from two 2 1/2" square 3/4" thick plywood blocks that are glued together (you could also use Delrin and make it as one piece.)

The mounts are very simple- just two 7/8" holes bored through them using a Forstner bit -one (on the end view of the drawing) is for the motor coupler to slide through and the other is so you can tighten the set screws on the motor coupler after the motor is mounted. There are four holes for mounting the motor and an additional two holes for screwing the motor mount to the mill.

The motor coupler is just a 5/8" diameter Aluminum rod with a 1/4" bore through it and a couple of set screws to fasten it to the stepper motor shaft and the ACME rod lead screw. Note that the dimension shown on the drawing for the length of the motor coupler is incorrect- it should be 1 1/4" long. You can buy the motor couplers here if you don't want to make them yourself.

The mounts are designed to accept a standard sized NEMA 23 stepper motor. These are very common and are easily obtained. I bought mine surplus for $15 each ( I don't remember where). The stepper motors shown are:
Superior Electric Slo-Syn
Model #M061-FD02
35oz in.
5v 1A
200 steps per revolution

I haven't yet decided what CNC controller I'll be using but I'm leaning toward either the Linistepper or the HobbyCNC ProDriver.

Both controllers are capable of driving a fourth axis (something I plan to add later on) and have had very positive reviews. The Linistepper is an open source controller and there are a couple of different versions of it floating around.

As soon as I can afford a controller I'll have a video of it making some cool parts!

Craftsman Workshop of the Future Contest

Participated in the
Craftsman Workshop of the Future Contest