Useful links:
Parts list:
Mill parts list
Anti backlash build guide:
Narrow "anti backlash" setup
What are “thread inserts”:
Why what and who are thread inserts
Support removal tips (work in progress):
Support removal tips
Steel and aluminium tube build guide:
Mill additional build images
Other similar projects to look into:
soon
This document is intended to be used in conjunction with the build portion of the main video.
I Printed A Better CNC Mill
I've found build videos to be inconsistent in their usefulness, so for the sake of efficiency I'm
going to try a less detailed build video combined with a more detailed written document.
This is the second document i've written like this, still finding my stride! It's a surprising amount
of effort.
Final disclaimers, this mill is an experiment by someone who had never even used a mill
prior to designing it. Therefore its hard for me to judge a lot of the decisions I made when
making it, so make at your own risk.
To begin with, remove all support. The mill is designed with minimal supports but some places,
mostly nut and bolt holes, still have some support. See the “support removal guide” document
for tips:
Support removal tips
Anyways.
Step 1-
New components:
32x m3 nuts
Baseleft.stl
Baseright.stl
Press 32 m3 nuts into the
base that you have already
removed support from
Step 2-
New components:
Rearleft.stl
Rearright.stl
rearmid.stl
Rearcover_right.stl
rearcover_right.stl
Midconnector.stl
frontriser.stl
Take the 6 pieces of the
base and lay them next to
each other.
Using the mid connector
piece connect the front two
halves.
The gap between the front
and rear halves are
covered with
rearcover_right and
rearcover_left.
Into the front of the base,
two front riser pieces are
slotted in place.
Step 2-
New components:
M8 threaded rod, 1x mm
length, 2x mm length (red)
M8 nut, 11 (light blue)
10mm m8 bolts, 5 (orange)
M8 coupling nuts, 3 (green)
Front_connector.stl
(orange)
This step is starting to
create the frame of the mill.
Beginning with the front
connector plate and
coupling nuts, bolt the two
base halves together like is
depicted. The right and left
coupling nuts could be
replaced with regular nuts,
but I like to leave myself
options.
From the bottom install the
shorter lengths of threaded
rod, adding nuts as needed.
Pay close attention to both
images, these rods have 4
nuts on them but the lower
image hides one nut.
From the top install the
middle length of threaded
rod with its 3 nuts. It is
tightened into the middle
coupling nut.
Step 3-
New components:
M8 threaded rod, 2x 50
lengths.
M8 nut, 8 (light blue)
Mid_spacer.stl, x2 (orange)
Similar to the previous step,
thread in two more lengths
of threaded rod,
remembering the spacers in
the middle of the rods.
Step 4-
New components:
M3 nut, x4
10mm m3 bolt, x4
M3insert.stl, x4 (green)
Outercornerplate.stl, x2
Innercornerplate.stl, x2
For both rear corners,
connect with two plates and
two thread inserts. These
thread inserts are used to
add reusable threads to the
design, intended here for
cable management.
Currently unused so the
“m3 insert” pieces are
optional, but it can't hurt to
havel. More on thread
inserts:
Why what and who ar…
Step 5-
New components:
M4 nuts, x14
10mm m4 bolt, x14
M4 insert.stl, x14 (red)
Similar to the last step, 14
more thread inserts can be
installed into the rear of the
base.
Step 6-
New components:
M8 coupling nut, x2 (red)
10mm m8 bolt, x2 (orange
Into the rear middle of the
base are two holes.
Underneath, press in the
two m8 bolts, then thread
on the coupling nuts.
Step 5-
At this stage the base
should be mostly done and
looking something like this.
Now is a good time to take
a tube of super glue and
run along all of the seams
inside of the base. Refer to
the video for what this could
look like.
To make it clear this isnt
really a strength thing, its
just to keep the concrete
and water from seeping out
during the pour later.
Step 6-
New components:
Coverleft.stl
Covermid.stl
Coverright.stl
Rearcoverright.stl
Rearcoverleft.stl
Rearcovermid.stl
X14 M4 heated inserts
Install the needed heated
inserts for all base cover
pieces.
Step 7-
New components:
20mm m4 bolt x6
Install the 3 lower cover
pieces and secure from
underneath with m4 bolts.
Step 8-
New components:
Stepbezelleft.stl
stepbezelright.stl
20mm m4 bolt x4
10mm m3 bolt x10
M3 nut x10
Slide the rear middle cover
in place and secure from
the underside with 4 m4
bolts.
Place the left and right
cover pieces in place and
secure with m3 nuts. This is
a little fiddly, the second nut
from the middle on both
sides can be excluded if
you are having trouble.
Step 9-
New components:
2x m8 coupling nut or
2x m8 nut
Install a coupling nut or bolt
into the rear covers.
This is a somewhat
optional step, these nuts
are placed at a convenient
location to mount
accessories. I use magic
arms with a m8 thread to
hold a test indicator, or
other tools like lamps or
coolant hoses.
Step 10-
New components:
4x 20mm m4 bolts
Super glue.
Place the rear covers and
secure them with 2 m4
bolts each.
Go over all seams with a
small amount of super glue.
Again refer to video for
some examples.
Authors note:
This would be the easiest
time to install the 40cm
linear rails. I would
recommend installing these
during the concreting
process to ensure all the
holes are lined up prior to
the concrete drying.
I show installing the rails
later in this document, in
my mind its to keep them
clean till the last minute, but
really you can just do them
now.
Also dont worry about
aligning them till much later.
Step 11-
New components:
Prepared 40*40mm square
tube
1x m8 nut
2x 310mm lengths m8
threaded rod
Thread the lengths of rod
into the coupling nuts in the
base from earlier. Slide on
the 40mm tube with holes
drilled, see the
tubediagram.png included
in the files:
Mill additional build i…
Secure at the base with 1
m8 nut.
Step 12-
New components:
Collum.stl
6x M4insert.stl
6x m4 nuts
6x 10mm m4 bolts
We have covered thread
inserts earlier, prepare 6
more and install them
inside of the column.
Step 13-
New components:
3x tempspacer.stl
3x 20mm m8 bolts
3x m8 coupling nuts
At the top of the collum
install 3 more coupling nuts
that will later be used to
secure the headstock. The
spacer is important to
ensure enough space for
the thread of the headstock
bolts.
Just trust me dont skip the
spacers.
Slide this assembly into
place on the base.
Step 14-
New components:
inner_rod_spacer.stl
5x m8 nut
3x 150mm lengths m8
threaded rod
1x 190mm length m8
threaded rod
Slide the alignment piece
over the existing threaded
rod.
From the back insert the 3
150mm lengths of rod,
aligning them with the
spacer piece and tightening
them into the coupling nuts.
Secure with 3 m8 nuts.
Through the side of the
collum install the 190mm
length. Ensure that it is
centered and then fasten
with 1 m8 nut either side of
the collum.
Step 15-
New components:
32x 35mm m3 bolts
2x 40cm mgn12 linear
rails
If you didnt at my
footnote earlier, now
install the rails before
concrete begins. This
is to ensure
everything stays lined
up and to provide
some extra rigidity
during drying. The
base is now ready for
concrete, but theres
one more part that we
need to prepare first.
Step 16-
New components:
Xaxisbase.stl
16x m3 nuts
4x m4 nuts
The x axis is also full
of concrete, so its
best to prepare to do
the pours at the same
time. Or do them
separate if you want a
bit less stress, up to
you. Anyways.
Install 16 m3 nuts into
the red holes, and 4
m4 nuts into the
green.
Step 17-
New components:
4x 250mm lengths of
m8 threaded rod
8 m8 nuts
Install the threaded
rod lengths into the x
axis base, threading
on the inner nuts as
you go. Secure the
rods in place so they
all sit evenly at the
back, flush with the
print.
Step 18-
New components:
xaxiscover.stl
4x 20mm m4 bolts
(kinda optional)
4x m4 washers (kinda
optional)
2x 20cm lengths
mgn12 linear rail
16x 20mm m3 bolts
Install the linear rail to
secure the cover over
the x axis base. Using
glue or m4 bolts,
secure the middle of
the cover to prevent
bowing, an issue I had
in my own build.
Run glue around the
edges of the piece.
Step 19: Concrete time!
The most satisfying part of the process. Once you are confident everything is good to go its time
to prepare the form for concrete. A lot of this is copy paste from the lathe, im working on a
guide/ generic document with more tips. The video gives a good idea of how to prep both forms.
*wear PPE when working around fine powders*
Why concrete? I get a lot of comments suggesting two things, epoxy granite, sand or straight
lead shot. Epoxy granite is far superior to concrete for this application and i'd like to play with it
in the future but I am yet to for a few reasons. For one, it's expensive, and these tools are
already only just scraping by in how much they cost. Secondly, from what I've seen it doesn't
flow like concrete does, and I would have to completely change how I design these forms to
accommodate. But third and most importantly, epoxy sets so hot there is a very high chance if
not a certainty that it would melt or warp the plastic forms during setting.
Why not lead shot? While it is true that the concrete is used to add mass and reduce vibrations,
that is not its only job. The concrete is also the structure of the tool, it is a single physical mass,
thousands of separate lead balls would probably just warp the sides of the tool or cause other
breakage (remember, 1.5mm thick walls)
I cover around all the openings with tape to make for easier cleanup.
The concrete mix I use is something I really should take the time to look into and perfect, but
just havent had the time yet.
I use a simple pre-mixed bag of high strength concrete that I sift the aggregate out of.
That last part probably sounds really stupid to some reading, there is a good chance that it is.
But these forms are a lot of work for me to make, especially in print time, and I really never feel
like risking one with a new mix. Because of this i've stuck with what I know works for the time
being, even if it's not the most efficient. Sifting a 20kg bag takes around 10-15 minutes and only
costs $10 so it's not like I'm wasting much time or money doing this, but again, there's probably
a better way. Fibre cement seems to be a great idea that I want to look into.
I mix this powder with water via feel rather than a specific ratio (again, something to work on).
Watch the videos for an idea of the consistently to look for, but i've found myself using a wetter
and wetter mix as time went on, and haven't noticed any adverse results. The wet mix flows
much easier and saves a lot of headache.
Back to my previous comment about pouring, there's a lot of suggestions I receive and ive
experimented with several of them over time. “How the **** have you never heard of a funnel” is
one of the more common ones. Believe it or not, if someone isn't doing the most obvious
solution, there's probably a good reason for it. Larger holes (over 2 cm in some dimension) don't
need a funnel because I can pour straight from the bucket with no issue. Smaller holes ive tried
using funnels on before, but I find that the water tends to leave the narrow spout faster than the
solid component, leading to the concrete becoming just dry enough in the spout to cause clogs.
In short i've found funnels to almost always be more trouble than they are worth.
While pouring, a source of vibration is essential. I use a palm sander and find this works well to
settle the concrete. Always slightly overfill your forms and the vibrate, when the concrete doesn't
settle any further then you can be confident the form is properly filled.
I leave my forms slightly overfilled and then after a few hours, come back and scrape the the
excess concrete flat.
With that the concrete is done for this project and we can continue with putting the other axis’
together.
Step 20-
New components:
Xaxisnut.stl
4x m4 nut
4x 20mm m4 bolt
450mm length t8 lead
screw
2x flat lead t8 screw
nuts
1x spring.
The next step is to
mount the leadscrew
and anti backlash
setup to the underside
of the carriage. Rather
than explain this 3
times a document,
every time I use this
setup, forever, I made
a separate one
covering my current
solution in more
detail.
Narrow "anti ba…
Step 21-
New components:
4x mgn12 linear
blocks
16x 20mm m3 bolts
Install the 4 blocks
onto the x axis rails,
then add the y axis
carriage.
At this point, or later,
are both acceptable
times to align the rails.
Im sorry to say I dont
have great advice in
that regard. My
method for getting the
blocks to run smoothly
was pretty much to try
random adjustments
till something stuck.
Motion for both x and
Y axis can be
adjusted at any point
as all bolts can be
accessed.
Step 22-
New components:
Yaxisblock.stl (green)
Bedplate.stl (yellow)
20cm length 20100
2x 20cm lengths
mgn12 linear rail
(removed from y axis
carriage)
4x mgn12 linear
blocks
18x m3 t nuts for 2020
18x 10mm m3 bolts
16x 10mm m3 bolts
4x 16mm (or 15mm)
m4 bolts
4x m4 nuts
Following the process
of creating the anti
backlash setup again,
mount it via 4 m4
bolts (in pink)
Mount the linear
blocks on the rails,
then mount to the bed
plate using 16 bolts, in
green.
In the white holes
thread the m3 t nuts
onto the 10mm m3
bolts, not tight. Line
these straight and
place the 20100
extrusion over the
bolts, tighten in place.
Step 23-
New components:
16 20mm m3 bolts
(previously used)
2x 1mm_spacer.stl
Place the 1mm spacer
onto the y axis
carriage, then the
linear rails setup.
These spacers are
cautionary since I had
slight warping from
the concrete process
that blocked the
backlash setup.
Secure in place,
following the same
process to try and get
smooth motion.
Motion for both x and
Y axis can be
adjusted at any point
as all bolts can be
accessed.
Step 24-
New components:
Zaxisbottom.stl
Zaxisspacer.stl
2x 180mm lengths m8
threaded rod
4x m8 nuts
Place two m8 nuts
into the z axis bottom.
Hold in place under
the column with the
chamfer facing up.
Thread two lengths of
rod down and into the
nuts, then thread on
the z axis spacer.
Secure temporarily
with two m8 nuts.
Step 25-
New components:
zaxisplate.stl
12 m3 nuts
12 10mm m3 bolts
2x 150mm lengths
mgn12 linear rail
4 mgn12 blocks
3 16mm m8 cap head
bolts (**see sourcing
document**) (blue)
1 50mm cap head m8
bolt (blue)
1 m8 nut
Install the 12 m3 nuts
into the z axis plate.
To this mount the two
linear rails.
Place this onto the
face of the mill and
secure into the
trapped coupling nuts
with the 16mm m8
bolts.
Step 26-
New components:
Spindleplate.stl
Zaxisblock.stl
4x m6 nuts (blue)
4x m4 nuts (red)
4x m3 nuts (green)
4x 20mm m3 bolts
12x 10mm m3 bolts
(pink)
Repeat the anti
backlash process for
a third time, and
mount to the
underside of the
spindle plate.
Secure to blocks with
m3 bolts.
This plate should
ideally be printed with
a more heat resistant
material if possible. It
held up in PLA but
was the weakest link
in the machine. It
should hold long
enough to mill its
replacement but I just
want to comment on
this as many places
as possible that this is
the single most
problematic part in the
design.
Step 27-
New components:
Xmotorplate.stl
Ymotorplate.stl
Zmotorplate.stl
zmotorspacer.stl
12x 35mm m3 bolts
3x nema 17 stepper
motors
3x shaft couplers
Install motors onto all
3 plates using m3
bolts.
Step 28-
New components:
Xrightblock (orange,
image 1)
Y wire cover (green,
image 2)
10x m8 nuts
In order of x, y, z,
secure the motors to
the t 8 lead screws.
Each axis has the
same assembly
process of threading
onto existing m8 rod
and then tightening in
place.
Step 29-
New components:
Spindle bracket
Spindle
4x 65mm m6 bolts
Install the mill spindle
into its bracket.
Now is probably the
best time to calibrate
the machine to the
best of your ability.
All bolts should be
accessible by moving
the mill around, and
the spindle is
installed. Again im
sorry but its really out
of my league to
explain how to do this
properly, I barely did it
well myself. But a 123
block to get the
spindle square is an
easy place to start!
Step 30-
New components:
Spindlecover.stl
40mm fan
2x 50mm m8 bolt
2x m8 nut
Now begins the part
im less sure about.
The arms are a
counterweight system
and at that they do a
good job. It lets me
use a decently large
spindle for nema 17
motors.
What im less sure
about is overheating,
an issue I still havent
solved, and I doubt
wrapping the spindle
in plastic is helping.
But for now, its what
ive got.
To begin the arms
install the two m8
bolts from the inside
of the spindle cover,
along with the fan.
Step 31-
New components:
Leftarm.stl
Rightarm.stl
2xcabletrap.stl
2x cable nut.stl
2x 1m length 10mm
corrugated cable
shroud
4x 10mm m4 bolt
4x m4 nut
2x 608 skateboard
bearing
Into both arms, install
two m4 nuts (light
blue) and another two
in from the side
(green). Press in the
skateboard bearing.
Using two m4 bolts
attached the cable
guide in place.
The cablel for the
spindle and fan now
need to be run,
through the cutout
seen in image 1. I
would again refer to
the video to get an
idea of how this
works.
This is another design
decision im unsure of,
its a bit annoying to
work on and could
lead to cable wear.
Step 32-
New components:
2x Armspacera.stl
2x Armcover.stl
2x m8 nut
4x 25mm m4 bolt
4x 80mm m4 bolt
Add an arm spacer
(green) onto the shaft
on both sides of the
spindle cover.
Run the wires through
the hole to the front of
the arm shaft, then
add the arm pivots.
Add an arm cover to
both sides and secure
it with two bolts.
Using the 4 80mm m4
bolts (pink, image 4)
this whole setup can
cover the spindle.
Step 33-
New components:
4x armplate.stl (light
blue)
2x armcover.stl
2x midarm.stl
8x m4 heat set inserts
4x 10mm linear
bearings (green,
image 2)
8x 10mm m4 bolt
4x m4 nut
4x 25mm m4 bolt
2x armcover.stl
2x 608 skateboard
bearing
Install 4 heat set
inserts into both
middle arm pieces.
Insert a linear bearing
into each hole, then
cover and secure with
2 m4 bolts. Press fit a
skateboard bearing,
then cover (green,
image 4). Secure
each cover with two
25mm m4 bolts.
Step 34-
New components:
2x Midspacer.stl
(green)
2x m8 nuts
Install a spacer each
side of the collum,
then slide on the arm
pivot. Secure with a
nut each side.
Step 35-
New components:
2x armrear.stl
4x 16mm m4 bolt
10mm rod (see
preparation
document)
Mill additional b…
Into each rear arm
piece, insert the
longer end of the
10mm rod. Secure
with a m4 bolt.
These assemblies are
then threaded through
the middle support
and into the
headstock. The other
side of the tubes are
also secured with 4
15mm bolts.
Step 36-
New components:
Counterweightmain.stl
Counterweightcap.stl
1x 180mm length m8
threaded rod
2x m8 nuts
Spare change stolen
from the salvation
armys donation bin
(enough to fill the
tube)
Or
Lead shot
As shown in the video
the counter weight
needs to be filled. I
found loose change to
be the easiest thing I
had on hand, with
sand to fill in the gaps,
but any metal scrap
will probably do.
Concrete would also
probably do, I never
tested.
It is secured with a
length of threaded rod
and two bolts.
Congratulations! The mill is now done, for the moment.
Obviously stuff like wiring still needs to be done. I need to overhaul that on my own mill and in
the meantime I think its safe to say this should give people a lot to chew on.
Currently the mill has about 7500 words of supporting documents and over 100 images. To put it
bluntly I need a break from this damm project but I hope this should help people making it in the
meantime. Gimme a few weeks I need to do something new for a bit.
In case you were interested, you just assembled roughly
32+2+3+51+2+11+5+3+1+2+8+2+4+4+2+2+14+14+14+2+2+6+14+6+2+4+10+10+4+4+1+3+18
+9+5+1+3+1+2+16+4+4+8+4+4+2+16+8+1+2+1+4+16+2+4+16+1+2++18+18+4+4+2+2+4+12
+12+2+4+3+1+1+4+4+4+4+12+4+12+3+2+10+4+1+4+2+4+8+2+4+2+8+4+2+2+8+4+8+8+4+2
+2 +4 +2 +4+3+2
Or around 642 pieces assuming I counted right which I probably didnt.