Will I be using LinuxCNC to drive my MPCNC?

Okay, I’ve been getting lost in the forums and following Google trails on LinuxCNC, and I think I must have an incorrect model.

For my 3D printer, my toolchain is:
Model in FreeCAD -> STL -> Slice in Slic3r -> gcode -> console control in Pronterface -> usb cable (gcode being fed and feedback?) -> Marlin on a RAMPS-alike board -> wires to steppers motors.

For routing with my new MPCNC, I’m anticipating something like:
2.5D model in Inkscape -> SVG -> inkscape gcode extension -> gcode -> console control in LinuxCNC -> usb cable -> Marlin? on RAMPS -> wires to stepper motors.

However, as I try to chase this down, I’m getting confused. It appears that the dominant mode of LinuxCNC is to directly control steppers, such that the default install is bundled with a live-boot OS, and the hardware recommendations suggest a dedicated non-laptop. I’d sure like to avoid procuring a dedicated control computer, and I’d sure like to avoid carting around a desktop, and I’d really rather not even have to reboot. Is LinuxCNC usable in an “indirect” mode, where it provides a stream of gcode to the Marlin (or other firmware) on the RAMPS, just like pronterface does for the Marlin-on-RAMPS running my 3d printer?

Pointers welcome if I missed the relevant forum page.


Run it just like your printer. pronterface or reperier or an LCD controller. There really is no software difference.

Wait, so I would use repertier or pronterface even if the tool is a router, not a hot end? <style=“mind:blown”>

So the first thing I should try is:

2.5D model in Inkscape -> SVG -> inkscape gcode extension -> gcode -> console control in Pronterface -> usb cable (gcode being fed and feedback?) -> Marlin on a RAMPS-alike board -> wires to steppers motors.

Huh. Cool. Thanks!


If you want to drive your machine in real time, and have more control over CNC operations, than, yes, LinuxCNC or Mach3/4 would be a better choice. The MPCNC is a smaller machine, so you might be able to get away with using 3D printer software with it, (PUT ENDSTOPS ON IT) but the larger you make your machine, the longer the buffer delay becomes and the worse off you are for using 3D printer software & hardware.

For instance, if you have a Lowrider and you command it to go to Y 2000, then realize that the machine will crash during the move, if you entered a stop command, you would have to wait for the machine to move to Y2000 and clear the buffer before would register your stop command and stop. Sure, pulling the plug is one thing, but having to start your job setup over can be costly in both time and material.

There is an option in Marlin to enable emergency stop, but from my testing, it seems to only work from within computer software and not from a Ramps/Rambo display.

In hindsight, I wish that I had just started with Linux CNC for my Lowrider and MPCNC projects rather than messing with Marlin, In my opinion, Marlin is very ill-suited for CNC work and somewhat dangerous to work with if you have tools spinning. (there are some serious risks and liabilities associated with milling and laser cutting) CNC requires realtime control, you need to be able to stop the machine in an instant without loosing your work. You need to be able to make adjustments on the fly and set breakpoints for larger jobs, and it is important to mitigate the risk to the people and property around the machine These safety features are lacking in Marlin and core features of Mach3/4 & Linux CNC (and also core features of any real… CNC machine)

1 Like

I understand what you are getting at but I think you are trying to solve a problem that does not really exist. If you start your job by tracing the outline in the air, a crash is mostly non existent. Breaking a bit, can simply be restarted at any point if it didn’t ruin your job when it broke. I have used a really expensive machine that stopped when a bit broke (can’t see a bit with flood cooling) but it also broke the work piece. So that is there to save the machine.

I am all for using whatever you want but be careful of over complicated “just in case”.

Not sure what safety features you want or think are missing, real world issues for me include killing power every time a pause would never help the situation. I could really care less about the machine (reprint a part if any breaks), I only ever want to stop the spinning router, killing both is always the best option in my experience. If you are using dual endstops you can simply restart your job. Walking away and relying on buttons, switches, software, smoke detectors or whatever are not an option in my opinion.

I have personally seen hundred thousand dollar fire suppression systems fail both ways. First time we purposely set a fire in the middle of the hanger. Soaked a bunch of rags in jp4 and lit them in an oil drip pan. Flames went up about 10 feet. Water cannons didn’t fire, neither did the alarms. Next time the cannons fired, for no particular reason. We had a jet in the hanger at the time, and it was -40 outside, so we couldn’t open the doors to let the foam out. One of the cannons shot rusty water and foam into an engine. Had to pull that one and do a complete tear down.

I’ve also had a fire on my first lowrider. Got too comfortable and left it to do it’s thing. Came back to burnt plywood. Luckily it didn’t keep burning, or I wouldn’t have a barn anymore. I’ve never seen a professional wood cnc router that can detect a broken bit. They’ll just happily keep running the program till done. Anyway, just don’t leave the machine alone. If it’s a really long job, break the gcode into smaller jobs. That’s where the dual endstop firmware really shines.

1 Like

I was looking at linux cnc a while ago and came away with the impression that it can only be used to directly control cnc machines through a serial port (good luck) or a specialized pci card ($$). True?