Sending GCode to Carbide Motion (3rd Party)

I’d like to send gcode files to Carbide Motion from a program other than Carbide Create.

I have Carbide Motion running on a headless mini PC that I remote into with my laptop. It works very well and allows me to walk around and still be able to control it.

Whenever I complete my project in Carbide Create, I can send it over the network to the mini PC. I can then switch to RDP and immediately start running the program. However, I also generate gcode programs from scripts. I’d like to be able to send those to Carbide Motion without having to load everything into Carbide Create.

I can alternatively transfer the programs over the network (either copy and paste or a sync program), and open them with carbide motion. However, this can create a very messy file system–especially for these script generated programs. I don’t want to have 1000 variations of a flattening operation programs that differ by dimension and depth that I then have to search through to find the right one.

Any other suggestions are welcome. Thanks!

I believe that there are a couple of misunderstandings here:

Carbide Create runs in two different licensing modes:

as explained at:

https://carbide3d.com/blog/carbide-create-v7/

Basically, Carbide Create as bundled stores G-code in .c2d files which requires Carbide Motion to extract the G-code.

If you have Pro, then you may write out G-code as shown at:

https://carbide3d.com/hub/courses/create-pro/g-code-output/

which may then be used with your choice of unsupported 3rd party Communication/Control program for Grbl.

While it is possible to use Carbide Motion to extract G-code:

this is sufficiently awkward that few folks use it for more than just the occasional review of G-code.

What platform do you wish to use? We have Mac OS, Windows, Raspberry Pi, and Linux is in the works:

What feature do you need that is not accommodated by User Quick Actions:

Hi Will. I think there’s been a misunderstanding. I do have a pro license, but I’m not trying to extract gcode. My goal is two things:

  1. Use Carbide Motion as the gcode sender
  2. Send a program (gcode) remotely from software other than Carbide Create to Carbide Motion

It is purely ̶o̶u̶t̶ ̶o̶f̶ ̶l̶a̶z̶i̶n̶e̶s̶s̶ ̶for efficiency. I’m trying to avoid transferring files to the gcode sender computer, and searching for the files. I’d like to just hit “go” from whatever software generated the gcode program.

Addressing the quick actions question. I honestly haven’t played around with it too much. I’m sure it could handle basic things.

That being said, I’m a programmer by heart. I created my own library where I can essentially automate the entire CAD/CAM process from basic operations like boolean operations, offsets, and shape culling to more complex operations like contour and pocket operations.This allows me to do complex scripts. For example, I have a program that can generate gcode directly for cabinet parts. I simply enter in critical dimensions, and out pops the gcode. For me it was fun to learn the math and geometry behnd all the CAD/CAM. Now that I have it, I can use it to automate some design work.

My vision is to have a GUI (or probably a Jupyter notebook), where you enter in the parameters, hit “Send”, and it pops up in Carbide Motion.

Moved this to Unsupported.

I actually looked into the Jupyter Notebook thing ages ago here, but never got very far w/ it.

Apparently this approach is popular among the 3D printing folks — see the Python version of:

https://fullcontrolgcode.com/

I’ve been working on a quite different approach, but it’s off-topic here, even for Unsupported, so see discussion at:

I suppose the answer is roughly “carbide motion does not have support for external API calls”

I assume it has some notion of an internal API because of the “send to carbide motion” button in carbide create.
Maybe it’s possible (and very unsupported) to leverage those same hooks to send your own code. :thinking:

Maybe something about sockets or com objects or some other magic that programmers with :person_shrugging:

Yes they clearly have a protocol that works over TCP/IP; the computer’s IP pops up for “Send to Carbide Motion” indicating there’s at least multicast discovery going on. I could theoretically do some packet sniffing and reverse engineer the protocol, but I’d rather get official support than get labeled a trouble maker :slight_smile:

I think it’d be really cool for carbide3d to support other applications interfacing with Carbide Motion, but I also understand the reasoning behind the closed ecosystem.

Not the answer you are looking for, but I have a laptop where I create my designs – using Carbide Create, Fusion, Vcarve – and a second laptop permanently connected to my Shapeoko 5 Pro.

Project files are stored in a Google Drive folder. Google Drive is installed on both laptops in “mirror files” mode, so there is no problem with multiple copies of files, different versions, etc.

When I finish a design I want to cut, I go out to my machine, open the file in Carbide Motion, and go.

I guess I would never start cutting unless I was at my machine, so “sending” a file to Carbide Motion would really only save me a single step of manually opening a file? Unless you’re tying to do something else that I can’t understand.

I suppose the answer is roughly “carbide motion does not have support for external API calls

Since the original poster is a programmer, I would point out something that may be obvious, but whenever I’ve run into the problem of trying to automate something on a computer that wasn’t designed that way, I reach for AutoHotkey.

I’ve also wondered how this worked from a network support curiosity too, and thought well it would be cool to send these over direct from Vectric. But it’s very much in the nice to have category for me. The time I’d be saving loading files is trivial compared to other manual tasks like loading material, setting Z, slow jogging (sorry!), and manual tool changes. I imagine it’s less about a closed ecosystem and more about it not being a high priority in the grand scheme of maintaining Motion for 10 years worth of models.

So if one were to decode the protocol, can they share it? I’m assuming it’s okay for said person to use that protocol at their own risk as well.

If you want to work with program source wouldn’t it be better to work with opensource programs?

I have other endeavors. I put my work on Github, but it’s not mature enough to advertise. I just wanted a way to interface Carbide Motion today since that’s what I have working.

I would always prefer Dropbox/OneDrive/GDrive or something like Syncthing if I had the option.

Syncthing is my current favorite.

1 Like

Where is this elusive button? I’ve never seen it before… :thinking:

1 Like

Allow Remote Access must be checked and CM has to be in the Job Info screen.

4 Likes

@Ed.E Thanks! I was re-doing the settings on my machine today and saw the “allow remote access” check box but I never knew what it was related to.

1 Like

I’ve never been a fan of OneDrive. Perhaps it’s authority issues and annoyance that Microsoft is always trying to shove it down my throat.

Syncthing looks interesting and I’ll give it a try. I like that it works over LAN.

As for my original request, I’ll just end this by saying I’d like official support for sending gcode programs over LAN using TCP/IP, but I’ll just use file sharing for now.

I recently got SyncThing setup between my main desktop PC & dedicated rPi5 for running Carbide Motion. It really streamlines keeping project files & G-code files organized/updated on the Pi. And not having to worry about needing Internet access for it keeps it simple.

2 Likes