

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.
Timeline
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
- Hacksaw
- Metal File
- Debur Tool
- Sandpaper
- Hammer
- Clamps
Measurement Tools
- Digital Caliper
- Machinist Square [6″]
- Scribe
- Tape Measure
- Hole Punch
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!).
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.
Build
Bellows
Enclosure
Assembly
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
Code | Details | New Value |
F003 | Main frequency | 400 |
F004 | Reference frequency | 400 |
F005 | Max operating frequency | 400 |
F007 | Min frequency | 20 |
F014 | Acceleration time | 5 |
F015 | Deceleration time | 5 |
F072 | Potetiometer max freq. | 400 |
F082 | Potetiometer min freq. | 120 |
F140 | Motor wattage | 1500 |
F141 | Motor voltage | 110 |
F142 | Motor amperage | 6 |
F143 | Motor pole | 2 |
F144 | Speed @ 50 Hz | 3000 |