Question about Universal G-code sender

Hi Everyone,

  • I want to know Estlcam is Universal G-code sender?

  • Which software to using control CNC cutting?

  • Estlcam is not open source software, there are another open source software?


Chris Van Gewden

Take a look at the software workflow.

There are open source alternatives. Most users here don’t use it as UGS, because it doesn’t work with most boards. More common is the v1pi, or repetier host, or just an SD card on an LCD.

For the actual CAM, the most common are proprietary stuff. Namely, Estlcam and fusion. I have Estlcam working in wine on my Linux desktop. There are CAM alternatives that are open source though. kiri:moto for one. I believe freecad has a CAM component.

1 Like

What firmware are you using and what boards?

Im using GRBL CNC Shield and Arduino Shield

Universal gcode sender is a program not related to Estlcam google it it will work great with your hardware it is what I use.

I use estlcam for cam but not control I also use vetric software and 360 a little for drawing and cam

1 Like

UGS provides an interface to GRBL. You can use it on a laptop or desktop and you can use it for homing and jogging your Arduino controller. It is not a CAM program but can transfer gcode files to GRBL so you can use it to run a job. As far as I understand Estlcam can be used to generate gcode which can be transferred to Arduino GRBL using UGS, Estlcam will not connect to your controller directly.


Estlcam does support connecting and controlling boards. Not Marlin, but it can flash ramps. I thought I read it will also control grbl, but that is unconfirmed.

Vetric is very cool software so I have to pay for this software but I cant afford :cry:

I need to download, install and use open source software to learning how to cutting with material by CNC, at later I will purchase this software.

I will download free DXF files from engineer, who was designed products from internet and I use the DXF file and Open source software to learning cutting and analysis issues of MPCNC, after that I will apply mechanical design engineer course to learn to design my own product by CAD Software and cutting with CNC.

I’m 5 years old to learn with step to step build MPCNC :joy:

Excuse me for my imperfect English grammar :see_no_evil:

EstlCam will connect to your hardware directly. You can either use EstlCam pinouts which will mean your cnc shield wont work with the Uno, or you can choose for EstlCam to reprogram your uno to use the following pinouts

Which, if you compare it with the cncshield v3 pinout

is the same. There may be a little fussing around with D11 and D12 to get PWM and Z limit sorted exactly the same as with the cncshield.

So EstlCam will directly drive your Uno and cncshield, or you can use UGS, UGSPlatform, SourceRabbit, OpenCNCPilot, LaserGRBL, GRBLController and, no doubt others for the CAM function.


I will keep this picture when I buy EstLCam software

Vetric software will work with CNC Shield V3?

I want to know Vertic can reprogram Arduino UNO and CNC Shield?

No just CAM for GRBL

Ok understand :+1:

Looks like there is some disjointed information here… At least, it’s disjointed for me.

@CVG, you have an Arduino/CNC Shield stack, correct? That’s your controller.

For firmware, your choices are a little limited. EsltCAM firmware I believe will support that, as will GRBL, but that’s about it that I know of. Those are what will run on the Arduino UNO.

For CNC control/gcode sending, you have a whole truckload of options or one, depending on the firmware you’ve chosen. If you’ve chosen GRBL, you can use anything that can push data across the USB connection. If you’ve chosen the EstlCAM firmware, you can use EstlCAM. Seriously, GRBL is a general purpose gcode firmware, but EstlCAM firmware expects the PC it’s connected to to be doing a good chunk of the planning and decoding of the gcode, and it only talks to the EstlCAM control software.

Vetric is primarily CAM software, really good at generating gcode for a particular job. A common workflow around here is to use EstlCAM for just the CAM, and then take that gcode, and use some other method (Repetier host, cnc.js, an SD card, octoprint, UGS, etc.) to actually send the gcode to the CNC machine.

Looking at the Vetric website, it looks like their product line is focused on CAD/CAM, but I’m told (thanks @timonjkl) that it can act as a gcode sender.

So, those are three of the five layers of our CNC bean dip. From top to bottom, they are:

  1. CAD (generating design/art)
  2. CAM (generating toolpaths based on the design/art)
  3. gcode sending/machine control (getting the toolpaths to the tool/configuring the tool)
  4. firmware/controller (decoding the toolpath code/managing the configuration)
  5. CNC machine (moving the tool according to the code)
  • Fusion360 is CAD, but with some plugins, can do CAM as well
  • OnShape is CAD, but with Kiri:Moto, can do CAM as well
  • Most/all of the Vetric product line is just CAD/CAM, but can also send gcode
  • EstlCAM is CAM that can also do gcode sending/machine control, provided the machine is using the EstlCAM firmware (and possibly grbl?)
  • RepetierHost is a gcode sender
  • Pronterface is a gcode sender
  • cnc.js, octoprint, ugs, etc., etc., etc. are gcode senders
  • V1Pi is a RasperryPi image created by @jeffeb3 that has both octoprint and cnc.js on it. It’s very handy for hooking up to your machine and having a handy web interface to it.
  • Marlin, grbl, Grbl-Esp32, EstlCAM, grbl-mega-5x, etc are all firmwares that run on various controllers
  • Mach 3/4 and LinuxCNC are special beasts that blur the line between gcode senders and firmware even more than EstlCAM does. They actually do all the firmware-type stuff on the computer, and directly control the CNC machine. The only electronics between the motor drivers and the computer are signal-level devices.

Than you @kvcummins you are very accurate. vetric does not replace GRBL but does have a sender you can use to send the g-code. Very good summary

1 Like

Thanks for the info, I couldn’t tell from the website.

A quick note on gcode senders:

They are not all created equal, and they each handle the various dialects of gcode to varying degrees of aplomb. I know, gcode should be gcode, but it’s not. Aside from some core ‘G’ codes and a few ‘M’ codes, there’s quite a bit of leeway in the language, and the firmware developers take full advantage of it. There are other nuances, such as grbl’s ‘$’ commands for on-the-fly configuration changes that Marlin doesn’t have, or grbl’s more robust support for real-time interrupts and laser handling (don’t fret, Marlin is working hard to catch up). While that all makes for interesting firmware wars discussions, it also means that gcode senders have to decide what machine flavors to support, and how best to support them. If you couldn’t tell, this also goes for CAM software, especially if you’re trying to do anything particularly tricky like tool changes, where the gcode that’s generated for the particular maneuver will likely be specific to the firmware, and possibly the machine.

I got Arduino UNO and CNC Shield V3 stack, it aleardy flashed GRBL,

Any CAM software take responsibility to control GRBL for CNC cutting, like as Vetric can control to GRBL,

Do I am right?

I would love it if this information could live in the software workflow doc. If that is incomplete, or hard to understand, I would love some help to improve it.


Thanks for putting this together, I agree with @jeffeb3 this would be a good starting point to have a documented workflow.

There are a few points that I might expand on:
CAM software normally has a (2a.) post processor or post to generate the right flavour of gcode for the controller.
gcode senders are optional and not an absolute requirement but you do need some way of homing (maybe) and or jogging the CNC machine.
Fusion 360 CAM is embedded and does not require plugins.
EstlCAM is CAM that also has separate controller firmware that negates the use of a gcode sender but is optional.
Mach 3/4 and LinuxCNC are not really special beasts but are controller software running on higher end controller hardware. It’s true that neither require gcode senders and provide the functionality to home and jog the CNC machine.