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.

Back to Contents

Anatomy of a CNC Router

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.)

Back to Contents

Advertisement
DIY CNC Router Parts

Basic Components

A mostly printed CNC (MPCNC), an open-source CNC router with dual-motor axes
A mostly printed CNC (MPCNC), an open-source CNC router with dual-motor axes (Source: Andreas Giencke via All3DP)

There are many parts that make up a CNC router, so let’s start by taking a look at the basic components.

Frame

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.

Bed

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.

Spoil Board

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.

Gantry

A different style of CNC router using lead screws throughout
A different style of CNC router using lead screws throughout (Source: C-CNC via OpenBuilds)

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.

Spindle with Cutting Tool Insert

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

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 or Ball Screw

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.

Back to Contents

Advertisement
Advertisement
Advertisement
DIY CNC Router Parts

Advanced Components

Image of: Advanced Components
A timing belt setup for the Y-axis (Source: adog12341 via Reddit)

With the basic components out of the way, let’s focus on some more advanced ones.

Timing Belt (a.k.a. Toothed Belt)

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.

Microcontroller Board

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

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

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.

Back to Contents

Advertisement
Advertisement
Advertisement
DIY CNC Router Parts

Software & Controller Considerations

Ramps 1.4 with Expansion Board
A RAMPS 1.4 with an expansion board (Source: Andreas Giencke via All3DP)

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

V1 Engineering provides templates of Marlin firmware for the MPCNC
V1 Engineering provides templates of Marlin firmware for the MPCNC (Source: Andreas Giencke via All3DP)

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

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

Estlcam offers 2.5D functionality
Estlcam offers 2.5D functionality (Source: Andreas Giencke via All3DP)

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

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.

LinuxCNC & Mach3

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.

Back to Contents

Advertisement
Advertisement
Advertisement
DIY CNC Router Parts

What Machine for Which Application?

Printing or milling?
Printing or milling? (Source: Andreas Giencke via All3DP)

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:

Where’s the machine going to be placed?

  • How much space is available?
    • This must include space for a protective noise cover, dust extraction, and possibly a PC with monitor and accessories.
  • Is the machine fixed or does it need to be mobile?

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.

What are the expectations for the machine?

  • Which materials are to be machined?
    • The harder the material, the higher the requirements on all parts of the machine. Most DIY machines are suitable for wood and aluminum cuts but not steel.
  • What level of accuracy is needed?
    • For furniture making, a lower level of accuracy is needed than for making engine parts. Most DIY machines can achieve 0.01-mm accuracy and aren’t suitable for much more than furniture making and general woodworking. The larger the machine, the harder it is to achieve good accuracy because it depends on rigidity as well as an accurate build and as little play as possible in all parts.
  • Is cutting of special materials such as carbon fiber foreseen?
    • If so, a water bath is needed to catch the hazardous dust as well as to cool the material.
  • Is the machine to be multi-purpose? For example, is it meant to serve as a 3D printer, vinyl cutter, laser cutter, or plasma cutter?
    • It’s important to be realistic here because high precision sets high demands, which in turn imposes cost barriers. Multi-purpose requirements usually mean compromises in some aspects. A taller CNC machine is more likely to be less stiff and therefore less accurate, but 3D printing requires a sensible build height to do a little more than flat pieces only. Different build surfaces are required for different purposes – a metal grid for laser and plasma cutting and a magnetic PEI surface for 3D printing (to name just two examples).
This Maslow CNC is available as a kit
This Maslow CNC is available as a kit (Source: Maslow Community Garden)

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.

What’s the skillset and capacity of the budding CNC machine builder?

  • Low: The maker can follow instructions, do simple adjustments, but doesn’t have access to tools or the ability to make custom cuts or create parts by hand and isn’t confident in sourcing materials.
  • Medium: The maker can follow plans, create some parts, and source materials based on provided specifications.
  • High: The maker has high skills in designing and building parts and machines with or without plans and instructions.

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!

Back to Contents

Advertisement
Advertisement
DIY CNC Router Parts

Final Thoughts

A Beautiful Beast
A great build (Source: Sray69 via OpenBuilds)

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.

Back to Contents

Advertisement
Advertisement

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.

Stay informed with notifications from All3DP.

You get a notification when a new article is published.

You can’t subscribe to updates from All3DP. Learn more… Subscribe to updates

You can’t subscribe to updates from All3DP. Learn more…

Advertisement