When it comes to cutting wood or milling metal, CNC machines offer a level of accuracy that’s hard to achieve by hand. For makers, this has always been an attractive proposition, as the creation of carvings, engravings, and complex cuts is done quickly and automatically.
A professional CNC machine may be out of reach for most, if not already in terms of money and operational know-how, most certainly in terms of space for the average workshop or garage. That’s where a DIY machine comes in. But how to make the right decision on which plan to follow or even what materials or parts to use?
A DIY CNC machine is a unique and individual solution, but the options can be many and confusing. This article’s intention is to clarify some of the aspects of prospective CNC machine ownership and help understand decisions that have to be made before embarking on a DIY build project.
In addition to going over the various constituent parts, we’ll look at different controller and software aspects and ask a few questions that may help makers figure out what path is best suited for particular skills and possibilities.
Any machine with movement control via a computer is a computer numerical control (CNC) machine, and this includes 3D printers: If we were to attach a wood-cutting router instead of a hot end, we would have a CNC router, at least in principle. Therefore, for the purposes of this article, which is aimed at beginners interested in building a CNC router, we would like to clarify that we’ll be focusing on conventional rectilinear CNC routers (as in the below image).
In the next two sections is a rough outline of what a CNC router looks like and what parts are involved. That isn’t the entire story, though. The principles are always the same, yet there are variations in the theme. (For example, CNC mills and engraving machines that are usually aimed at machining smaller workpieces often have a moving bed and a fixed gantry with only the spindle moving along the Z-axis.)
There are many parts that make up a CNC router, so let’s start by taking a look at the basic components.
A good frame provides rigidity and serves as the base to which other components can be mounted. It can include a raised platform in the shape of a table, fabricated in such a way as to avoid distortions and vibration.
The frame needs to be level and flat to provide the best possible foundation to build upon. It can be made of any material as long as other requirements are met. It’s important to bear in mind that a heavy base can dampen vibrations and avoid unwanted micro-movements of the toolhead and therefore increases accuracy.
The frame can also be moveable or foldable, but it still needs to meet the basic requirements of rigidity, levelness, and flatness.
The bed serves as the surface on which workpieces can be placed and fixed. It can be made of wood or metal and be solid, grid-shaped, or simply adjustable bars. It needs to be sturdy enough to support the stock material while being able to fixate it securely during machining.
The spoil board protects the bed from damage if there’s a chance of cutting through the workpiece when machining. It may be necessary at times to ensure a clean edge finish.
The spoil board is meant to be consumable and needs replacing after a while. It can last a long time, though, and can be re-flattened repeatedly by a procedure called tramming.
Attached to the spoil board should be something that clamps down the stock material, and it has to be fixed securely to the bed. It tends to be made of wood or plastic, although the environmental impact should be considered given its substitution.
The gantry mounts the spindle holder together with the Z-axis stepper motor and lead screw arrangement above the bed and usually determines the maximum height of stock material that can be machined. Depending on the exact design, it can include guide rails (pictured above) that enable the spindle to move along the Z- and Y-axes.
The spindle is the actual router with a variable or fixed-speed electric motor with a tool chuck to hold cutting tools. There are many spindle options, ranging from conventional handheld routers to dedicated CNC spindles, the latter being already prepared for signals from a microcontroller. The main differences between the options are their power and size, which can be limiting in the context of a smaller DIY CNC machine. It’s worth noting that dust extraction nozzles can add extra bulk. Some spindles allow for air or water cooling.
When using woodworking routers, one’s also limited to using woodworking cutters, unless reduction inserts are used for smaller cutting inserts. The latter can on occasion cause problems, as they may not grip the cutter bit securely.
Stepper motors are used to move the gantry and the spindle motor along their guide rails via lead screws or toothed belts. Large machines may require larger stepper motors or even two stepper motors per axis.
Stepper motors used in smaller DIY CNC machines are usually NEMA17, while NEMA23 may be used for larger ones. NEMA is the short name for the National Electrical Manufacturers Association, which provides, among other things, a mounting and connection standard. The maximum achievable resolution in terms of movement is determined by the angle per step, which ranges between 1.8° to 0.9°. The latter comes at a price and isn’t usually found in DIY machines.
Lead and ball screws are normally precision-machined screws that, by rotating, move the spindle holder and sometimes the bed or the gantry along their respective guide rails in a defined manner. The difference between a lead and a ball screw is the way the carrier runs on the screw. The lead screw relies on gliding surfaces, while the ball screw carrier runs on ball bearings, thus having far less friction.
Some plans suggest the use of conventional threaded rods, which isn’t ideal but works. For smaller machines, lead screws are used on all axes, as they can be more accurate than a timing belt. There are a number of caveats, though. Lead screw arrangements differ in their accuracy and that’s reflected in their price. It’s often a matter of “you get what you pay for.”
Lead screws in the DIY market suffer from backlash, such as some tolerance when changing direction. Thankfully, there are some ways to reduce backlash in order to increase accuracy.
With the basic components out of the way, let’s focus on some more advanced ones.
The timing belt is an alternative to lead screws where gantries can be moved over longer distances. Longer distances induce a whipping motion, especially when moved at high speed, in the unsupported free length of a long lead screw, which in turn causes inaccuracies. Timing belts come in different sizes and qualities, but it pays to avoid the bargain basement to avoid quality issues.
Any timing belt pulley must be the correct match for the type of toothed belt, otherwise they won’t work as intended. A CNC machine that includes belts should have a simple way to re-tension the belts, as that may be necessary from time to time.
Toothed belts suffer from elastic deformation, which can lead to inaccuracies over time, and if not tensioned correctly, they can skip over a tooth or two.
The microcontroller board controls the stepper motors and spindle, monitors endstop states, and translates G-code input into machine movements. Boards range from the humble Arduino Uno to Esp32-based microcontrollers and offer something for every need. They all work, but not necessarily with every firmware and software combination.
For most new CNC machinists, even the most simple of boards, like the GRBL board based on the 8-bit Arduino Uno, should be sufficient, but it all boils down to personal choice. More modern boards based on more powerful processors provide a smoother and often quieter experience in terms of stepper motor noise, but it’s not something to unduly worry about. Just keep in mind that larger stepper motors with higher current draw might push the more basic boards to their limits.
Endstops are momentary safety switches that limit gantry and spindle movement to safe limits. They can be simple mechanical switches, which is preferable compared to optical switches that can be affected by dust. The main requirement is to be easy to adjust and install with a defined switching point.
Guide rails, as per the name, guide the moving parts with as little friction and with as much accuracy as possible while remaining square to the machine. Guides can be square or round linear guide rails with carriages, cylinder bearings on round metal tubes, or carriages on wheels running in grooves. Guide rails are crucial components that impact accuracy. Rigidity and being truly straight while allowing movement with little friction are the main requirements.
Guide rails can be anything, as long as they are suitable for the job. Ideally, they should allow free movement on all axes while maintaining right angles between them. Linear metal bearings are among the better solutions, but they’re also expensive. It’s worth noting that the best linear bearings can’t make up for sloppy build quality.
Physically building a CNC machine is one thing, controlling it is another. In order to get from a CAD design to a machined piece, there are a number of steps to follow.
Unlike 3D printing, CNC routing or milling is a subtractive method. A 3D printing slicer would be of no use here. To generate the machine toolpaths in G-code or another acceptable format, we require a program that can generate toolpaths in relation to a given stock material, tool specification, cutting depth, and cutting speed. Such a program is typically referred to as the “software”. Meanwhile, while technically a type of software, what’s referred to as “firmware” is what lives on the microcontroller board.
Whether software or firmware, there are plenty of options available for DIY CNC machinists, including both paid and free offerings. The latter includes open-source firmware for the microcontroller board and free software to create the required inputs. The choice comes down to personal preference, so it’s recommended to explore these options carefully because, for example, not every microcontroller board works with all firmware. For those coming from a 3D printing background, it will feel familiar to tinker with firmware upgrades.
There are, of course, other options, from being able to move all axes using an attached game controller to having a professional machine setup with a touch- or mouse-controlled graphical user interface (GUI). Some require an attached PC, while others don’t. Then there’s the issue of upgradability to more than 3-axis control in the future. Not every package offers that ability.
Our advice is this: Keep it simple – at least in the beginning. The beauty of DIY builds is that one can more simply upgrade in the future.
With the above in mind, let’s introduce some of the most popular programs in the DIY CNC world. This list is by no means definitive and further suggestions are always welcome.
Marlin firmware is popular among 3D printers, and it’s also capable of controlling a CNC router. A wide range of microcontroller boards support Marlin, and there’s plenty of community support. It accepts G-code, which can be generated with free (for non-commercial use) software such as Fusion 360 or FreeCad. It plays together with Estlcam software (which we’ll look at below) and Repetier host as G-code senders.
Both are optional and require a USB connection to a PC, but Marlin also accepts SD card input and can therefore work as a standalone solution with a minimal setup, involving just a graphic controller attached to the microcontroller board. For anyone coming from a 3D printing background, the attraction lies in the familiarity of dealing with Marlin.
GRBL is the other popular choice, running on an Arduino Uno. It connects via USB to a computer with a keyboard and monitor to feed G-code to the microcontroller, as well as to control the machine. As with Marlin, support abounds because it’s been a longstanding program of choice for DIY CNC routing. The GUI is dependent on which program is used to send the G-code to GRBL. For example, CNC.js and GRBL plotter have nice user interfaces (UIs) and offer an intuitive way to operate the machine.
Estlcam is another popular program that requires a permanent PC connection. It has a nice UI and good documentation, with the integration of a game controller to move the gantry, subject to using the Estlcam firmware. Estlcam can also work solely as a G-code generator for 2D and 3D models, and it works with many boards and different firmware setups. It is, however, only available on Windows. Estlcam comes with an unlimited trial, but its low price ($30-$60) makes it sensible to purchase the full version.
FluidCNC is the new kid on the block with an interesting port of GRBL to the much more powerful Esp32. The project is actively developed, with features like over-the-air (OTA) updates, on-chip storage for several configuration files, and online operation via phone or tablet making for a really interesting experience. It may not be advised for beginners unless they’re comfortable with configuring an Esp32-based controller.
There are other options that are either complex like LinuxCNC or costly like Mach3. Both offer fairly sophisticated control over a CNC machine, including more than three axes, but their complexity or cost might make them unwise choices for beginners. These options also require a computer with a parallel port, which is rare today. For readers who are into antiques or who remember the clunky large connectors for printers, yes, that’s what’s needed.
Building a CNC machine isn’t a quick or easy undertaking. Therefore, it’s wise to honestly answer some questions about the use of the machine, because wasting time and material is frustrating, expensive, and wholly unnecessary.
Here are some of the questions to ask:
The answers to the above will set out the very basic parameters. One can’t have a full-sheet-capable CNC router if there isn’t enough space for it. Think of neighbors regarding noise and think of access to the area around the machine for repair and service.
There’s only so much a light DIY CNC machine can do. High precision isn’t needed if the goal is to make toys and puzzles. For higher demands, it’s often more sensible to consider outsourcing the manufacture of parts via Craftcloud by All3DP for 3D printing and recommended services for CNC machining.
For the Low category, ready-made kits are the way to go. They will cost a little extra, but it’s a way of avoiding some disappointment. If flat-pack furniture poses a challenge, however, think again and maybe purchase a wholly ready-made machine. The Maslow CNC router kit might be worth considering.
For the Medium category, a raft of possibilities opens up, from kits to plans, as long as the maker doesn’t venture too far from the plans in their project. These offer a level of flexibility, as the maker is able to adjust certain aspects to the hardware that’s available. Access to certain tools and skills or preferences will determine what’s possible.
For the High category, the sky’s the limit. Read up and go ahead – build a dream machine!
There’s really no one-size-fits-all here. Reflecting on all of the points above and being realistic about all the aspects mentioned will go a long way towards finding a happy medium between expectation and reality. CNC machining can be a fulfilling and time-consuming hobby, or it can be a means to an end. It all depends on the intentions and expectations of the user.
Another aspect to consider is that, even without access to 3D printers, a plan requiring 3D printed parts is still a possibility thanks to printing services or marketplaces like Craftcloud by All3DP. When it comes to sourcing materials, bigger plywood sheets can often be cut to a reasonable standard in DIY markets, and loads of parts can be purchased through online retailers at reasonable prices. Plans are plentiful, and in some areas, you might find community adult education classes that build CNC machines from scratch. Joining a maker group to learn the skills and get started without having to wait until the self-built machine is finished is also an option. Some open-source resources have great community support, while others don’t offer much. Therefore, there’s something for everyone.
A CNC router isn’t just the sum of its parts, but it depends on many different aspects we tried to capture above. Hopefully, they help provide a general overview of what’s required of a DIY CNC machine.
License: The text of "DIY CNC Router: Which Parts Do You Need to Build Your Own?" by All3DP is licensed under a Creative Commons Attribution 4.0 International License.