Motion Control software to drive X-Carve?

I use Artcam with my current Probotix Fireball CNC. I am interested in stepping up to a bigger CNC and the X-Carve looks great. Easel looks underpowered for my work (2 1/2 D) but I would want something that would drive the X-Carve without a lot of technical fiddling. What are others using for motion control software with the X-Carve?

Thanks in advance for your help.


I’ve used UGS (Universal Gcode Sender) almost exclusively since building my Shapeoko 2 early this year. It’s used by a lot of folks and gets the job done. ArtCAM has a PP to produce G-Code.

For design work, I’ve been using VCarve Desktop for most things, although I’ve used Easel occasionally.

Are you looking for actual motion control (replace grbl), CAD/CAM, or just a g-code sender?

Like @BillArnold says, UGS can send the gcode generated from ArtCam (or any other CAD/CAM) directly to the X-Carve. There is no need to replace any of the control hardware/software on the X-Carve.

The main requirement you need to check is that the CAD/CAM software you are using is able to create GRBL compatible Gcode. (I know that ArtCam, Fusion 360, MeshCam and the Vectric products can)

I am actually looking for a Gcode sender for large files as well. I tested UGS last night, but the return to 0 function seemed scary when it goes from stock-zero to machine-zero without having lifted the mill completely, I am scared to run it and then running into the clamps. I read somewhere that after a job it returns to machine zero (which might it cause to run into the clamps).

Is there a way to turn that off in UGS?

Run a small program as a test with no bit in the spindle to see if it really does that. I’ve had no issues with UGS.

UGS never moves the spindle by itself it only sends the gcode. So the movements at the end are in the gcode you sent.


thanks for all the feedback. I tried UGS (version 1.8 and version 2) and both load the file, but then i cannot click the send button to start the job (they are both greyed out).

What am i doing wrong?

Edit: it seems like it can open the file fine in 1.08 as long as the connection to the X carve is closed. Once I open the connection it freezes.
In version 2 it freezes regardless of the connection being open or closed.

Be sure you have the correct baud rate selected (115200)

Yeah that’s the setting I am using. I can jog the machine fine too, just once i load a file it freezes. The file is 35 mb but I would think it can load it. The gcode sender for my nomad can do it without issues.

How many lines of Gcode is that? The largest file I have ever loaded was 28 meg and it crashed UGS half way through the carve.


The return to zero button in UGS uses the G28 command. You need to make sure that your system has the G28 position set up for your situation. You do that by using the G28.1 command to set the position where you want the machine to return to (G28 uses machine co-ordinates).

What you do is to home your machine (you do have homing switches - Yes?), Jog the machine to the location that you want to be the “zero” position, issue the G28.1 command and you are set. When you press the return to zero button, your machine should move to the G28 position.

On my machine when I press the return to zero button it lifts the spindle up to the top before it moves to the G28 position.

@LarryM Thanks I’ll try that!

@AllenMassey Not sure how many lines of code but its fairly large. The weird thing is that it lets me load it but that it freezes as soon as UGS is connected to the machine by opening the communication port. I don’t even have to push the send button, it just freezes once the port is open, which is weird i think since I am not even sending the file to the machine.

UGS loads the gcode into memory before it starts sending. It looks like you have exceeded the memory storage for the program which can cause it to lock up.

I am not sure what you are trying to carve, but I have found that if my gocde files are that huge it means I need to go back to my design and smooth my vectors with bezier curves so that there are not as many tiny vectors (that are to small to carve anyway). That will allow the toolpath to generate arcs instead of millions of tiny vectors. The final result will generally be much better also.

If you are unable to reduce the number of vectors then adjust your toolpaths so that you have two (or more) gcode files (each carving a section of the design)

What software are you using to generate your Gcode?


I am using VCarve and i am trying to carve a 2x2 feet height relief map, so there is lots of paths. I have carved something like this (just on a 8x8 inch piece) before on my NOMAD883 via Carbide Motion though without issues (and larger files too).

Unfortunately I do not think i can reduce the file due to the complexity of the shapes im trying to cut.


Vcarve will let you break the break the project up into tiles. It is very easy to do and will allow you to have a few gcode files that are more manageable.

Yeah i might have to try that if i cant find a software that can handle these. I reached out on the Nomad forums to see if their GRBL controller CarbideMotion can be used with the XCarve (since i know that Carbide Motion has no problem with those large files).

I am just very surprised that I couldn’t find any software that can send larger files in one session to the machine.
If i cannot find anything, I am almost inclined to write my own GUI for the GRBL in C# or so to get over these limitations, but it would be hard to find the time to do that so I would prefer something that already exists.

Our PicSender gcode streamer has been tested to 10,000,000 lines of small incremental gcode moves reliably. No need to break up the files smaller when using it.

Nice! And it works with X-Carve and limit switches?

Yes, it does. You just need to set the startup blocks in grbl for the G20 or G21 units your using and a default jogging feedrate the first time using it.