Two machines, connected at the same time?

I’ve got two machines, a Nomad, and a SO3. I’d like them both connected to the same PC at the same time. Carbide Motion attaches to one, but there are no options for -which- one. I only need to operate one at a time, but would like to leave them both connected to the same powered USB hub. Any easy solutions to this besides only plug in one at a time?

Use a powered hub which has switches to connect/disconnect?

Was really hoping for something along the lines of “There’s this hidden setting in carbide motion that lets you set which one is used…”

This may be a long shot but…what if one board ran GRBL 0.9 and cm3 and the other run the new GRBL 1.1 with cm4…could be possible to see them seprate since neither are backwards/cross compatible? just a thought.

IntelliG-Code controller from here as well as many other controller software options out there let you choose the com port to connect to when you open the app, they should be on separate com ports automatically.

1 Like

Hm… how does CM determine which (virtual) COM port has the machine connected? I have two 3D printers connected to the laptop that runs my Nomad, and while CM has no trouble picking out the Nomad, the 3DP software always gives me a list of COM ports and asks me to select which one I want to direct the print to. And the Nomad’s COM port shows up in that list along with the 3DPs.
My guess is that CM is checking all the available COM ports, and selects whichever one reports back with the correct ID string. I would further guess (but it’s just a guess) that it’s searching the active COM ports in numerical order, so whichever machine is associated to the lowest-number COM port gets connected (you can probably test this theory using the Windows Device Manager, under “COM and LPT Ports”).
Still, I’m just guessing blindly. A quick dip through the Carbide directory on my computer reveals no simple human-readable files that might contain any configuration settings that might be hackable. Everything appears to be buried in DLLs, and reverse-compiling is far from my forte.
Hm… if I’m right, you might be able to switch between machines by selectively enabling/disabling the individual COM ports associated to each machine through the Windows Device Manager before starting CM. But that seems like it might be a bit cumbersome. Probably a way to hack together a basic script that would do this.
Since the GRBL boards appear to draw the “communication” power from the USB cable, just selectively shutting off the power on the machine you don’t want to use isn’t going to work. And trying to build an electrical USB selector switch doesn’t seem like a cost-effective idea.

IIRC I’ve actually run two instances of CM at the same time before, one controlling Nomad and the other controlling Shapeoko. I don’t recall the circumstances and it has been a while, but it may be that CM just looks for a Carbide board on any USB port. Then when you launch the second instance the port for the first one is “in use” so it grabs the other one. This had to be a Windows box, probably 8 or 10.

These days I use UGS for Shapeoko (touch plate zero and a few other reasons) and CM for Nomad. They live happily on the same PC and can run both machines simultaneously (though I usually don’t).

Anyway, have you tried just running CM twice?


I was just thinking about this last night.
I was wondering if there was enough power to run all the motors from one board.
If so one could do like WillAdams said.
Put the first one on part zero, with the other unhooked, manually set to part zero, then plug it in?
Or home both then connect in series?
I saw a video with a guy running about 20 statues at the same time.
Totally new to me.

That’s not what I was suggesting (though it’s interesting).

My suggestion was a powered USB hub which has switches to physically disconnect the USB connection internally.

I believe this one is supposed to work well:

1 Like

That makes much more sense :slight_smile:
Got me dreamin of a robotic work force of A.I. arteests.

I must admit that I haven’t fully thought this through yet, but my initial thought is to maybe consider ‘Virtualising’ your computer, then running each cutter/cutting app in it’s own separate Virtual Machine instance on your computer? Each VM instance will be entirely separate/isolated from any other instances operating, and will allow you to dedicate one cutter to one Carbide Motion instance

There could be flaws with this idea that my knee-jerk response isn’t considering, but I can’t immediately think of any - 2 cold beers in on a long-weekend evening here in Canada…!

1 Like