Desktop CNC Mill

Project Summary

The goal of this project was to build a desktop-sized CNC milling machine that I could use sustainably and quietly in my apartment to mill small parts from aluminum and plastic.

Originally, I planned on building my desktop mill using a full-sized, manual mill at the local makerspace. However, only a few months into the project, everything closed down due to Covid-19, forcing me to get creative. I then redesigned the mill to be built using only tools I had access to or could acquire easily.

Even after the makerspace reopened, I was determined to finish the mini mill using DIY / common tools, albeit with some skill and a not insignificant amount of time and money.


The project took ~11 months (May 2020 – March 2021) from first design to operational CNC machining.

  • December 2019 — Machining parts for version 1 design

  • May 2020 — Complete redesign for manufacture using DIY tools like miter saw, drill press, and Dremel

  • June-September 2020 — Making parts

  • October-November 2020 — Test assembly, enclosure build, making bellows

  • December-February 2020 — Final assembly, electronics wiring and installation

  • March 2020 — First cuts using CNC

Tools Used

Power Tools

Drilling & Tapping

  • Carbide Start Drill
  • Tap Guide
  • 13/64″ Drill Bit
  • 0.201″ Drill Bit
  • #21 Drill Bit
  • 10-32 Tap
  • 15/16″ Hole Saw
  • 1-1/8″ Hole Saw
  • 3-1/8″ Hole Saw
  • Countersink

Hand Tools

Measurement Tools

Total Cost

Quick summary version (TL;DR): the CNC mill cost me about $5k to build

The following is a rough estimate for what this project cost me to make. It covers the major component expenses as well as tools and material. It doesn’t take into account tools, scrap / unused material, local hardware store purchases, or the enclosure. The price could also be dramatically decreased by sourcing cheaper linear rails, cheaper stepper control boards, and by not ordering 90% of the mill from McMaster-Carr (but it’s so convenient!).

As much as I can, I try to withhold my purchasing power from China. I was able to do this for several components on the mill. I found old, USA-made Slo-Syn stepper motors on ebay, I bought stepper control boards from Gecko (claim USA made), and I tried to source linear rails from the USA, but I was tricked by a “USA manufacturing” claim and they were actually from Taiwan (albeit final grinding in the USA). My endeavor to buy USA-made greatly drove up the cost (linear rails 2-3X and stepper control boards 6X cost!).

ComponentPrice [$]Web
X-Axis Rail270.28
Y-Axis Rail457.78
Z-Axis Rail, Front309.02
Z-Axis Rail, Back457.78
CNC Controller200
Stepper Driver604 
McMaster May81.56
McMaster Jun967.37
McMaster Jul324.89
McMaster Aug266.44
McMaster Sept191.65
McMaster Nov254.59
McMaster Dec332.41
McMaster Feb74.35
Total Cost ~5,219.76 

Design Intent

The original design was done some time during 2019 and I intended the build to use both a manual and CNC milling machine at the local makerspace. After the surprise of Covid-19, I redesigned the desktop CNC mill in May of 2020 to be built using only common / DIY tools and a lot of patience.

I designed the mill with a tandem z-axis which moves the entire x-axis vertically, unlike a typical gantry CNC router in which only the spindle carriage is moved in the z-direction. My primary motivation for this change was the ability to fit taller parts on the build plate. I also thought that fixing the spindle to the x-axis rails would increase rigidity / decrease vibrations.

Other than the use of a frame-connected tandem z-axis, the rest of the mill works like a gantry CNC router, with the spindle on the x-axis and the build plate on the y-axis.





Electronics & Controls

Spindle & VFD

I purchased the spindle motor and matching variable frequency drive (VFD) from StepperOnline. So far it seems to be a good spindle for the price and what I expect from it.

Before running the spindle motor, several default parameters in the VFD interface needed to be changed. See the tables below for an example of the function parameters and a list of what I changed. I’ve also included the manuals for both the VFD I purchased and a more common and quite relatable CNC spindle.

VFD Functions Changed from Default

CodeDetailsNew Value
F003Main frequency400
F004Reference frequency400
F005Max operating frequency400
F007Min frequency20
F014Acceleration time5
F015Deceleration time5
F072Potetiometer max freq.400
F082Potetiometer min freq.120
F140Motor wattage1500
F141Motor voltage110
F142Motor amperage6
F143Motor pole2
F144Speed @ 50 Hz3000