Carbide Create

Just wondering is there a way to use the gcode generated from Carbide Create for the MPCNC, it seems to be in a different format grbl ??

Hmmm, That is a new one to me. Looks kinda like another version of easel. If you can attach some gcode (zip it first) I can tell you if it is close. Since they are designing it for one specific machine it could be tough unless there is some sort of post processor settings.


Sure, have not used Easel though Carbide Create is desktop based for the Shapeoko machine. : (2.78 KB)

Is there a specific reason you want to use that software? There are so many other well know non-machine specific packages out there. I highly recommend estlcam for CAM, and either inkscape or fusion for your designing.

Unless other are interested or they have some special feature I would rather not install the software to see if we can bend it to our will we already have so many options as it is ready to go no bending needed.

So close:

% (TOOL/MILL,0.1,0.05,0.000,0) (FILENAME: ) () G21 G90 G0X0.000Y0.000Z10.000 (TOOL/MILL,1.5875,0,1.0000,0.0) M6 T112 M3 S4687 G0X82.016Y55.000 G0Z10.000 G1Z-0.234F35.2 G1X82.009Y55.670F281.9 X81.988Y56.341 X81.952Y57.010 X81.903Y57.679 X81.840Y58.347 X81.763Y59.013 X81.672Y59.677

It wouldn’t be too hard to make a program (like a python script, or javascript code) to read this in, and spit out legit gcode. It is work though, and I don’t have time ATM. Is carbide create only windows and only desktop (Is there a web version?).

Many thanks to you both.

The main reason was the ease of use, and it calculates feeds and speeds automatically along with the tool path selections.

Believe it is also for mac, though not sure there is a web version, hopefully a program as described may become available to convert different g-code types for use with the mpcnc / Marlin…


Only valid for there machine which is always the same size and same build. The MPCNC is variable these features will not be usable for any other machine but the one it was tested on.

1 Like

I have a Shapeoko 3 and use Carbide Create with it on occasion. It spits out pretty generic GRBL gcode but would need a post processor for a Marlin implementation.

I also have a MPCNC running Marlin, so I could perhaps work on this and even test it, but I’m actually more inclined to go the other way and convert the Shapeoko to Marlin.

I have a first generation SO3 controller and it is not nearly as stable/reliable as my MPCNC controller. Also while I find Carbide Create easy, its rather limited. The same is true of Carbide Control the controller interface - easy but limited. I often use Universal Gcode Sender instead and switching to Repetier has been on my list of things to do.

BTW I built my whole 40”x24” MPCNC for less than the cost of expanding the SO3 from 16”x16” to 32”x16” (next size up), find it to be far more versatile, and have similar accuracy.

In short, my advice from using Carbide software as well as other CAM options is to not sink effort into trying to adapt Create - it would defeat the entire benefit of simplicity and leave only a limited function tool that while free is something you will outgrow rapidly.

1 Like


Hey =)

Did anything happen with this?

I been keeping an eye out about this issue since I became active in the forum because I like to know what tools do and do not work with my MPCNC. It has been referred to obliquely a couple of times, and so far there is not a Marlin solution. I was searching for information for another topic a few days ago and ran across a post on a Carbide 3D forum indicating it is possible to get Carbide Create to spit out generic GRBL. The post said it was a different post processor and implied that it was provided by Carbide 3D. The post was from 2017, so it was a bit dated. So if you are running GRBL, maybe there is a pathway

Ya I seen that also, but I am running Marlin.
I guess there might be a converter out there for this…

Easel creates GRBL code that’s fairly easy to modify for Marlin. Does Carbide Create not output generic GRBL code?

Easel g-code runs unmodified on Marlin, though you may want to add some things like a pause to turn the router on. But I’ve been curious about Carbide Create. I installed it the other day, but I have a bunch of other things stacked up ahead of looking at it. Inspired by your post, I just ran a quick test with a simple contour cut of a circle to see what I can see. First, as part of outputting g-code I get this:


So they have a short list of post processors. Looking at the Basic G-Code one, I see g-code that is a bit different. There were no g-codes in the file that Marlin would not recognize, but I doubt that Marlin could process it without a bit of massaging. Here is the top of the file:

M0 ;T102

Note the “(Contour.T…)”. Also take a look at how the G1 command continues with X and Y values without any G1 prefix on the subsequent lines lines. This is probably GRBL specific formatting. On the plus side, in another forum topic, I was told there were coordinate issues, but based on a quick look, I don’t see any problems.

The rest of the g-code file attached: test.gcode (7.5 KB)

I spent about 10 mins with CC. Unless I’m missing something somewhere, this program is pretty bare bones. Easel looks way more powerful. Not sure converting CC to Marin is worth it.

Maybe for the v-carving since that’s hidden behind easel pro.

I’ll preface by saying I am new to CNC but have been 3D printing for quite some time. I search this forum to see if there were any resolutions to the Carbide Create gcode generated for GRBL but it would not work on the Marlin of my MPCNC. I saw a few threads on it with no resolution. Also, I am not a programmer but I dabble in Perl and Python. I wrote a Perl scipt to parse the Carbide Create gcode for my Marlin and it seems to work pretty well. I am adding the script here. I would have preferred to create an executible for those who do not have Perl installed.

Run the script in commandline specifing the file you want to parse and it will write to a file of the same name with a .gcode suffix.

If there are tool changes involved, I break the code into sperate files.


open(my $in,'<', $ARGV[0]) || die "Can't open $ARGV[0]: $!";
	my @lines = <$in>;
close $in;
my $outfile = join('.',$ARGV[0],"gcode");
my $Gcode;
my $rate;
my $ratefound = 1;
chomp @lines;
for my $line (@lines) {
    my @first = (split //, $line);
	if (@first[0] eq 'G'){
	  $Gcode = join('',@first[0],@first[1]);
    elsif (@first[0] eq 'X'or @first[0] eq 'Y'or @first[0] eq 'Z') {
	  $line = join('',$Gcode,$line);
    elsif (@first[0] eq 'S') {
	  $line = join('','M3',$line);
	elsif (@first[0] eq '(') {
	  $line = "";
	if($line =~ /(F\d+)/ and $ratefound){
		$rate = $1 if ($line =~ /(F\d+)/);
		$ratefound = 0;
    $line =~ s/X/ X/;
	$line =~ s/Y/ Y/;
	$line =~ s/Z/ Z/;
	$line =~ s/F/ F/;
	$line =~ s/M03S/M3 S/;
	$line =~ s/M3S/M3 S/;
open(my $out, '>',$outfile) or die "Could not open file '$outfile' $!";
for $line (@lines) {
	print $out "$line\n";
	if ($line =~ /(M0 ;)/) {
		print $out "$rate.0\nG0 Z2.000\n";
close $outfile;

I shared a portion code in so people could run it from a browser. It would be kind of nice to have a good time online for things like this.