One of the most common questions we get from makers interested in CNC milling is the following : which CNC software should I use? Before diving into software recommendations, let's start by understanding the different types of software at play.
There are 3 different types of software that are used in the process of milling:
- CAD (Computer Aided Design)
- CAM (Computer Aided Manufacturing)
- Machine control software
While there are three categories of software, a single tool (e.g. Fusion360) can sometimes offer a combination of a couple of them, which makes them even more complex to understand.
If you already know about all these different types of CNC software, you can directly jump to the comparison section
> CAD & CAM software comparison <
> CNC Control software comparison <
1/ CAD software
Simply put, CAD is the software you're going to use to design your parts. You're going to go from sketches (drawings in 2D) to objects in 3D.
If you're comfortable with 2D drawing software like Illustrator or Inkscape, you can start from there, and import *.dxf files into your CAD software.
If you're not, you can directly learn to do 2D sketches on the CAD software you're going to pick.
2/ CAM software
This is the software that allows you to generate machine instructions (G-code) to manufacture your object. It always goes like this:
1) you define the size of the raw material you’re going to mill;
2) you position your 3D design in it, and;
3) you select milling operations to get the desired result.
Often, CAD and CAM software goes together as one solution. But you can also decide to separate the two, for example, if you're already familiar with a CAD software that doesn't have CAM capabilities.
Let's have a look at the last type of software, then discuss the existing solutions out there.
3/ Machine control software
This last type of software is simply the interface you're going to have to control your machine. Most desktop CNC milling machines don't come with an onboarded computer, so it's a software you may install on your laptop to connect it to your machine.
When it comes to machine control software for CNC desktop machines, some of the big names include Mach3, LinuxCNC and GRBL/USG. Before diving deeper into the pros and cons of each software, we need to understand how a CNC milling machine is controlled. The electronics that control a CNC are basically composed like this:
Each axis is controlled by one or two motors;
Each motor gets its instructions from a driver;
A central controller sends instructions to the different drivers, based on the information it gets from a control software;
A control software, which is directly connected to the controller with a transfer protocol (usually Serial (i.e. USB) or Parallel (i.e. DB25)).
So, which CNC software should you choose?
1/ CAD and CAM software comparison
The criteria to decide the best software for your usage should be:
the existing community of the software and
the nature of what you want to mill.
For versatile usage in wood, metal, foams or plastics, here are the most used software:
Fusion360 (CAD + CAM)
Free if you're an individual or a small business
A very powerful software out there with almost infinite capabilities
Huge online community and a lot of learning resources
Perfect for learning on a tool that you'll be keeping for years
Some very handy features are only under the Fusion360 paid licence (the automatic Arrange feature for example, as well as limited rapid speeds in the CAM module)
It is so complete that it might feel overwhelming at first.
FreeCAD (CAD + CAM)
Open-source and free
Growing online community and a lot of learning resources
Perfect for getting into the CNC world
The graphic interface is not the most user-friendly, but the software is improving fast.
Currently not as powerful as proprietary solutions, but we all know the power of open-source solutions !
VCarve (CAD + CAM)
Very easy to use, gets you to milling in no time
Designed for CNC milling users, lots of helpful features on the CAM side
Perfect for engraving
Quite expensive (660€ ex. VAT at the time this article was written)
No 3D CAD capabilities: you can import 3D files, or design in 2D for engraving
The graphic interface is not the most user-friendly and can feel a bit old-fashioned
SketchUp (CAD + CAM)
Loads of people know this solution already, maybe it is your case
Active online community and a lot of learning resources
The CAM plugin is not so easy to install and is not official
Not CNC-oriented, some design might be difficult or impossible to make
SolidWorks (CAD + CAM)
New 99$ / year subscription for hobbyists and makers
Probably the most powerful software out there with the most capabilities that is accessible
Perfect for learning on a tool that you'll be keeping for years
Very expensive for professional use
There are so many features that it might feel overwhelming at first
For very specific usage, you can often find dedicated software on the market, like it is the case with FootCAD3D, the CAD/CAM software for podiatry developed by our partner Gespodo. If you’re looking for a very specific usage, feel free to contact our team and we’ll scan our network of solutions to help you.
2/ CNC control software comparison
Once you've mastered CAD and CAM software to design your parts and prepare your G-code for milling, you need to familiarize yourself with a CNC control software for your machine.
There are a lot of different software out there. Some are free or open-source, while others are linked to a specific control board or to a specific machine brand. It may be hard to make a choice, so here is our comparison of the most used CNC control softwares and why we've decided to implement PlanetCNC on Mekanika's CNC milling machine.
When choosing a CNC control software, pay attention to the following:
The intuitiveness of the user interface;
The hardware you're using: type of controller + the type of device running the program ;
The features available (some of them can change your life during milling)
The transfer protocol ;
The documentation provided with the software, the activity level of the community, as well as the frequency of software updates;
Let’s start with software that is not linked to a specific brand of machine.
PlanetCNC - Our favorite CNC control software
Let's start with a software we consider to be one of the best options on the market s far: PlanetCNC.
PlanetCNC, a European brand comes with its own hardware. They have developed a single-board USB controller that allows up to four axes. They offer many nice features out-of-the-box, like automatic tool length measure or tool change, jump to line, override feed rate, and support all compensation methods for common milling operations, as well as 3D milling. The software runs on Windows, Linux or Mac and is compatible to almost all CAM programs on the market and can import a vast variety of files like Gerber, PLT/HPGL, DXF or NC files.
Why we chose PlanetCNC for Mekanika
When we started designing the Mekanika CNC machine, we tested several controllers and software and PlanetCNC came on top in terms of software stability and robustness of electronic components. Plus, it runs perfectly on a Raspberry Pi 4, which allowed us to create a standalone electronic enclosure without any need to use an external computer.
Easy-to use interface: PlanetCNC has - in our opinion - the easiest-to-use interface, which allows users to get started quickly. It also has a handy G-code manipulation window that allows maximum flexibility. The user interface can also be customized.
Straigh to the point: All the needed features a CNC milling machine needs are offered, without unnecessary options making the use of the machine more complicated.
USB transfer protocol
Possibility to create applications on top of the software thanks to its API offering
Custom features are very handy, like spindle control, video display or relay control
Can support a rotary option, a laser or an automatic tool changer if you want to upgrade your setup
Proprietary software, cannot be used with any other electronics.
Mach3 – The most popular
Mach3 is without any doubt the most used software on the desktop CNC market so far.
Mach3 is a control software compatible with many hardware solutions and has positioned itself as the market leader for desktop CNC control software. Its success is mainly historical, as it came in at a time when its interface was a lot more user-friendly than what existed on the market so far.
An easy-to-use user interface that still does the job, even if its design will make you feel like you’re back in the ‘90s;
The interface itself is highly customizable to adapt it to your needs;
As 70% of hobby CNC users uses Mach3, a lot of documentation is available online through its community of users.
Some custom features are very handy, like spindle control, video display or relay control.
Mach3 uses a parallel-port transfer protocol, which isn't compatible with most computers today or will make you buy an adapter.
Note : Artsoft has since developed Mach4, which they claim to have begun from scratch and have solved almost all gaps of Mach3, but struggle to make their community switch from Mach3 to Mach4.
LinuxCNC - Free open-source CNC software
The "father" of all low-end CNC software, created in 1993, is a free open-source Linux software. Most further control software have based their original code on the LinuxCNC project.
The project benefits from a huge open-source community that has developed several versions of the software and has contributed to the fact that it's still the second most used CNC control software today.
As numerous persons have worked on this software, it offers huge flexibility. It may, however, be confusing for some beginning CNC milling or looking for a compact software without unnecessary options;
The community of LinuxCNC offers a lot of help to newcomers and is almost always able to solve issues.
The features and possibilities of LinuxCNC are almost endless, but the learning curve is also important.
The software may seem overwhelming at first;
As a real-time application, it runs on parallel transfer and doesn't support a USB-parallel adapter, which is hard to use on modern computers;
It's quite complicated to adapt the user interface to your needs.
GRBL + USG
Technically speaking, GRBL is a firmware which enables motion control for CNC machines, but it doesn't come with a user interface. It is actually an open-source software that allows microcontrollers like Arduino to receive G-code from a computer, through USB transfer.
It is usually combined with a G-code sender software that allows the user to transfer G-code to the Arduino. One open-source software has been sailing through the multitude of available software : the Universal G-code Sender, however most of the proprietary software from companies Inventables or Shapeoko are running on GRBL as well.
Recently, two new branches of the GRBL code emerged: grblHAL and fluidCNC, both taking advantage of the far more superior computing power of 32-bit microcontrollers (instead of the 8-bit Arduino). These are both promising projects that we are closely watching!
Arduino is a well-known microcontroller and it's quite easy for DIYers to build a homemade CNC with the GRBL system;
It's the easiest set-up for small and homemade CNC machines;
The USG software is free and open-source, and works with inexpensive hardware;
You can choose your favourite software to generate G-code.
Arduino cannot handle huge works and complex milling actions, but this is intended to be solved by grblHal;
This setup can quickly become a bottleneck for your system.
.Let’s continue with control software developed by CNC machine companies. They all developed their solution on top of 8-bit GRBL.
Easel CNC Software from Inventables
Easel is the software developed by its mother company: Inventables, which developed the X-carve CNC machines. It comes as a free version or as a Pro version for 24$ / month.
The main purpose of Easel is to simplify the life of its user by integrating CAD/CAM and control into a single software that generates more or less all the machine operations. It also simplifies the machine setup process, automatically doing all the positioning procedures of the machine when you launch a job.
Screenshot from the Easel CNC control software
The software is perfect for complete beginners: you can quickly achieve satisfying designs without any prior experience
The software turns the whole CNC workflow into a black box: it is extremely easy when you want to do simple stuff and you don’t need to understand all of the steps described above to mill
The full process only works with X-carve machines. You can design with Easel and export G-code for any other machine but it’s not very handy.
The design process is quickly limited and you’ll probably have to learn proper CAD/CAM when you move to more complex projects
The free features are quickly limited and as soon as you want to use your own custom bits or material, you have to move to the paid version.
Carbide – the parent company of Shapeoko CNC’s - has developed a similar approach as Easel, but in the more traditional form of two software: Carbide Create to design, and Carbide Motion to control the machine.
Carbide Motion has a very sober interface that cuts all the unnecessary options on a CNC machine to help you focus on the main features.
We’re big fans of sober interfaces and even if the interface design is a bit rough, it fulfills its first goal: it is simple to use
Carbide motion as its own way of handling coordinate systems – called MDI - that may feel more intuitive for beginners
It only works for Shapeoko and Carbide Nomad machines;
It does not include a visual representation of what is being milled;
It is quite limited and does not include more than the very basic features.
Onefinity is built on top of Buildbotics, an open-source controller that runs its own control software. Like the two previous software, Onefinity is a very sober interface that cuts all the unnecessary options on a CNC machine to help you focus on the main features.
Screenshot of Onefinity CNC software
The interface showcases the most necessary features
A visual representation of what’s being milled is included
The interface design isn’t intuitive
It is quite limited and does not include more than the very basic features
In 2023, Onefinity launched their Elite models together with Masso, finally offering a proper interface for their users.
Masso is well known for their CNC controller and Onefinity has embedded its G3 model, a combined controller with a touch screen on their machine.
Screenshot of Onefinity Elite CNC software
The interface showcases a good mix of intuitive and advanced features, much like PlanetCNC
A visual representation of what’s being milled is included
The interface is clear and straight to the point
It includes a lot of advanced features like jumping to line, turning the router on and off automatically or overriding feed rates.
Again, the software is proprietary to Masso controllers and cannot be used with any other electronics.
Mekanika is a Belgian startup based in Brussels whose ambition is to make local production more accessible. We produce desktop machines for screen printing and CNC milling, which have been recognized for their quality and ease of use, with open-source plans allowing makers to adapt their tools to their specific needs.
Visit our shop to find out more, or check out our tutorials to continue learning.