Skip to content

Software comparison

Joacim Breiler edited this page Jan 6, 2024 · 53 revisions

To be able to build your own CNC machine you need three softwares for your tool chain. On this page we have attempted to create a comparison table with different options:

  1. CAD/CAM - A software for drawing or designing the model and generate GCode files with machine code.
  2. Gcode sender - A software that will connect to your hardware controller and send Gcode files or commands to it.
  3. CNC controller - A firmware and hardware that will control the motion of the stepper motors based on Gcode commands

CAD/CAM

Gcode is a CNC machine programming language. To generate such instructions you could write the code yourself (code reference) or use a CAD/CAM-software which generates it from a 3D or 2D model. Here is a list with different softwares and their support for different file formats.

Name OS License DWG DXF STL Gcode SVG Bitmap trace
UGS Platform M,W,L GPLv3 ✔️ ✔️ ✔️ ✔️
Fusion 360 M,W Commercial ✔️ ✔️ ✔️
FreeCad M,W,L LGPLv2+ ✔️ ✔️ ✔️ 
Inventables Easel Web Free to use ✔️ ✔️ ✔️ ✔️ ✔️
Kiri:Moto Web MIT ✔️ ✔️ ✔️
Carbide Create
MakerCAM
F-Engrave W ?  
EstlCAM
CamBAM
Templatemaker Web Free to use  :heavy_check_mark: ✔️

* OS: L=Linux, M=MacOSX, W=Windows

Gcode sender

A Gcode sender is a software that connects with your controller (GRBL, TinyG, G2core, Smoothieware, Marlin or FluidNC) and is able to stream a gcode file to it. There are many different awesome senders out there, here we've tried to create a comparison table. Please feel free to correct any errors.

Name OS Controllers Language License CLI WebUI Gamepad Overrides Editor
UGS Platform L,M,W G,T,G2,S Java GPLv3 ✔️ ✔️ ✔️ ✔️ ✔️
UGS Classic L,M,W G,T,G2,S Java GPLv3 ✔️ ✔️
gSender L,M,W G Javascript GPLv3 ✔️ ✔️ ✔️
bCNC L,M,W G,S Python GPLv2 ✔️ ✔️ ✔️
Chilipeppr L,M,W G,T Javascript GPLv2 ✔️ ✔️
cnc.js L,M,W G,T,G2,S,M Javascript MIT ✔️ ✔️
Goko L,M,W G,T,G2 Java GPLv3
CNC-GCode-Controller W? M Java MIT
SourceRabbit L,M,W G Java GPLv2
Candle L,W G C++ GPLv3
GRBLWeb L,M,W G Javascript AGPL ✔️  
Pronterface L,M,W M Python GPLv3
UCCNC W ? ? ?  
g2coregui L,M? G2 Python ?
GrblGru W G,T,G2 ? ?
Grbl Panel  W G VB.Net MIT
Planet CNC W,M,L ? ?
Grbl-GCode-Sender W G C# BSD-3-Clause License
FabMo W,M,L G2 Javascript Apache-2.0
GridBot L,M M Javascript MIT ✔️ ✔️
GRBL-Plotter W G C# GPLv3 ✔️ ✔️ 

* OS: L=Linux, M=MacOSX, W=Windows
* Controllers: G=GRBL, T=TinyG, G2=g2core, S=Smoothieware, M=Marlin
* CLI: Command Line Interface for interacting with the software without a GUI

CNC controllers

Name License Axises Overrides
GRBL GPLv3 3 ✔️
grblHAL GPLv3 6 ✔️
Grbl_Esp32 GPLv3 6 ✔️
FluidNC GPLv3 6 ✔️
TinyG GPLv2 4
g2core GPLv2 6 ✔️
Smoothieware GPLv3 4
Marlin GPLv3 3

* Overrides Ability to adjust feed rate, spindle speed in runtime