Ian Glen

CNC Goals

So I’m finally pulling the trigger on building a CNC mill. After ton of using other people’s 3D printers, laser cutters, and mills (both CNC and manual), it’s apparent that I need one I can call my own.

These machines are quite complex with many little details that have a big impact on functionality and end results. I’m aware that in order to get good results, there is a significant investment in quality parts and the time to figure out how they best fit together. As with everything else I’ve built, I’d like to not break the bank, but as the saying goes: buy nice or buy twice.

In this post I’ll try my best to outline what expectations I have for the machine and plan out the process I’ll follow through design, fabrication, and testing. My hope is that if I’m careful in planning and execution, I can eliminate having to redesign any components or replace any parts I’ve purchased.


After attending HackCRWU this year, I saw first hand what a difference it makes to have access to one of these machines while building a project. It was so convenient, as it made it much easier to iterate through a design. Being able to quickly prototype and test concepts reduced the amount of time it took to get something working. And in the case of PlaneBot, this resulted in the ability to fire planes really well.

With this machine, I’d like portability to be a key aspect of the design. Granted, the rule of thumb for CNC mills is that bigger and heavier is better. However, I think that by not going for all out performance along with some clever design, I can build a machine that is not too large or heavy.

One thing to think about, since this is a precision machine, is that the design needs to take into account being moved occasionally. This boils down to not relying on each part being perfectly aligned and incorporating a way to make testing and calibration easy.

The build volume can theoretically be whatever, but in order to be portable, I should limit it as much as possible. The largest material that I could see cutting probably is 12” x 12” (~30 cm x 30 cm) acrylic sheet, so maximum movement in the X and Y axes should not be much more than that. The travel in the Z axis can be significantly less, possibly around 10 cm, as I think most parts will be long or wide but not necessarily tall.


The most obvious feature is that this machine must be capable of milling materials that I have on hand and use regularly. This includes acrylic, FR4 PCBs, carbon fiber, and aluminum. The design should focus on the most difficult material to cut, which in this case is aluminum, and take into account the range of operating conditions the machine might see. I’ve considered adding ability to cut steel, but it’s not something I see myself cutting too often. Trying to incorporate it would most likely contribute to a much beefier and heavier machine (read: expensive).

I’ve considered building a laser cutter or 3D printer instead of a mill, as the capabilities of each overlap a little. For example, acrylic can be cut on a laser cutter, but it can be milled as well. Many of things I’ve 3D printed could have been milled from a block of aluminum. For me, I think that a mill would be more versatile than a laser cutter. Everything that I can make on a laser cutter can be made on a mill with the proper tooling, and it is capable of 3D parts which are impossible on a laser cutter.

When compared to 3D printers, mills can achieve much more precise parts, however 3D printers are able to make parts that otherwise cannot be easily made on any other machine. That’s definitely nice to have, but it’s not worth it if I have to choose between one machine. Mills and 3D printers are similar in design, so I can always just add an extruder to the mill and get the best of both worlds. If I design in a way to swap tools, it could be easy to switch between milling and printing operations.

Because this will be a portable machine, it would be good if I didn’t have to dedicate a computer to run it or always have to have it plugged into my laptop while it’s running. One potential solution might be to stick a Raspberry Pi on it, let it talk to the controller, and then make a control panel with some buttons and an LCD. This is something I’ve seen on a few 3D printers but not on many CNC machines and I think would be pretty handy. It would allow me to send it G-code over Bluetooth or print a model that’s on a flash drive. The physical buttons would make it easy to manually adjust the machine without having to use the virtual control panel on a computer.

There are some other features that I’m sure would be handy, but I don’t want to try to do too much at once. The focus should be on creating a very sound mechanical design and have it do one thing well: guide an end mill precisely through a material.


The level of precision will be the main impact on the cost of this machine. In one regard, I don’t need a machine that can make super precise parts, only parts that are more precise than what I can make by hand. However, there are a few aspects where precision is important. If I want to run carbide tooling, I need to minimize the amount of run-out on the spindle and the repeatability of axis movements so that the tool doesn’t break or wear out prematurely.

Since 3D printers and CNC mills have similar mechanical designs, it might seem like the same precision parts on printers can be used for mills. Unlike 3D printers, mills see significantly higher cutting forces and therefore require much stiffer mechanical setups to maintain precision and accuracy.

For this build I’d like to use the more precise linear rails and ACME leadscrews instead of precision rod and belts. The increased cost it worth the significant increase in precision. I’d like to avoid any belts in the design because I’m concerned about stretching that might occur under load. Really nice machines use ballscrews instead of leadscrews for even more precision, but they are cost prohibitive and there’s a good chance I’d end up buying cheap ballscrews that actually perform worse than leadscrews that cost the same.

Final Thoughts

A lot of people have done the hard work already to figure out what works well, and there seems to be vast amount of information available on the design and construction of CNC mills. There many details and they all matter, so the goal is to use as much off the shelf hardware as is practically possible. I still have to overcome the difficultly of determining what matters and what doesn’t so that I can effectively cut cost without too severely limiting the design.

My plan is to do a better job documenting the design and build process than I have done in previous projects. There’ll be a lot going on, so if I can keep record of what choices I make, then not only will it help me organize everything, but maybe it’ll help someone else out when they decide to go down this path in the future.

Look for future project updates as I progress through the design process, move to fabricating the parts, and finally test the end results.