Software comparison - winder/Universal-G-Code-Sender GitHub Wiki
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:
- CAD/CAM - A software for drawing or designing the model and generate GCode files with machine code.
- Gcode sender - A software that will connect to your hardware controller and send Gcode files or commands to it.
- CNC controller - A firmware and hardware that will control the motion of the stepper motors based on Gcode commands
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
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
| 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