Linux Based Control

Hello… I have an old laptop (not booting) that id like to use for controlling my cnc potentially with a free linux distro because obviously windows is in a strange spot right now for free :slight_smile:
Anyone know of a program for linux that can do basic functions (move commands, M106 gcode stuff etc)?
thats really all I want :slight_smile:

The big boys play with LinuxCNC, but that’s a dark and dangerous rabbit hole… A more sane and sensible solution would be to run something like CNC.js as a gcode sender.

i have a few (dozen) pis laying around, so im downloading the img now to test it out.
I also have a few 7" raspberry pi touch screens as well.
I may design a laser cut acrylic case to house it all.

My shipping address is…

1 Like

Nothing wrong with linuxcnc but it’s not as beginner friendly. Linuxcnc may have latency issues with laptop and not work as well. People are testing now on how well it’ll work on rpi4s. As mentioned cncjs should work fine on a rpi or your laptop and is more beginner friendly.

1 Like

The rabbit hole is found when looking at/for I/O boards and then thinking about all the other things you could be controlling with it…

What do you mean hooking up linuxcnc to my George Foreman grill doesn’t make sense? It’s my CNC machine and I’ll do as I damn well please, kvcummins!

1 Like

btw, I didnt mean to sound snotty about the Pis… I have many laying around because I make arcade cabinets for friends/family.


I should clarify that this is being done with breakout boards that handle the step pulse generation, or hardware step generation. These cards a little more expensive than a CNC shield and are less dependant on computer real-time performance. The cheapest route with linuxcnc would probably require finding a used desktop computer. So again, I’d say just go the rpi + cncjs + grbl/marlin route for now.

1 Like

Ok cool… So it worked right out of the gate… waiting for a Pi 4 to come in in a couple days to finalize everything. Hopefully that gets me where i wanna go.

1 Like

FYI I’ve been happily running cncjs on a rpi3. You could save the 4 for other projects if you wanted to. I am curious though to know if there is any thing to gain from using an rpi4.

1 Like

The Inexpensive LinuxCNC Interface referenced above interfaces a LinuxCNC PC’s parallel port to step-and-direction drivers, such as the little step-stick drivers commonly used with MPCNC and other hobby-level CNC machines. Most laptops will not have the parallel port… and many newer desktop PC’s don’t either. And, as Kyle said, LinuxCNC isn’t exactly beginner-friendly… so you’d really have to be committed (pun intended) to go this route. If you’re not sure of what LinuxCNC brings to the table… I wouldn’t recommend it.

Not exactly Linux “control” of your CNC but you could load most any Linux distro onto your laptop (I normally load Linux Mint onto mine…) and simply use the browser to call up CNC.js, served up over wifi by the V1Pi image running on one of your Pi’s. The Pi then interfaces through USB to any number of CNC controller boards running Marlin, Grbl, or other. This is my preferred method for my CNC machines…

Have fun!


I use only Linux for my computers at home. I haven’t messed with linuxcnc, and you really don’t have to. As dkj2linux said, you can connect a pi with my v1pi image, or you can run pronterface, repetier-host, bCNC, or the desktop version of CNC.js from a linux desktop. Any of these would work with a standalone controller, like a Rambo (actually, bCNC may need a grbl board).

I have used grbl and Marlin controllers, and I usually use pronterface for the initial setup and calibration via USB. Then I attach a pi, and connect to CNC.js or even Octoprint if CNC is giving me trouble. My laptop stays well away from the saw dust, because it is too expensive to risk. Having wifi for control helps me keep it on the other end of the garage, or just inside the door to my house (but I never leave the machine milling without me).

EDIT: FWIW, I use ubuntu as my distro of choice, and I stick to the stable releases 16.04 or 18.04. I will try 20.04 after the first couple of updates, probably late 2020, or early 2021 (they are released by date, so 20.04 will be released in april). I have to have this machine working every day for my day job, so I don’t want to mess around with bleeding edge releases.

Yeah I didnt quite realize how easy your PI image was to set up… Its really bulletproof simple. So I have my other pis tied up in testing right now, but I used it, it worked… So my pi 4s that come in this week will be thrown in to prod :slight_smile:
Ill just use a tablet then to work with it near the machine.
well done Jeff… great UI


I’ve created a laptop with the CNC.js desktop app that I’m going to use for control. Easier then trying to use the screen for jogging the large distances I have.

Oh boy, that’s the first thing I noticed that I didn’t even know what I was missing when I started playing with linuxcnc: real time continuous jogging! No more move 100mm -> click -> move 10 mm -> click -> change axis -> move 5mm -> click etc etc. Now it’s just hold down the arrow keys and go.

1 Like

I dont mind terribly using the LCD, BUT the speed on the X is too fast, so if i issue 10mm move commands it skips the stepper and the machine gets ALL out of whack :slight_smile:

You should probably try to set the top speeds with M203. Something like:

M203 X30 ; limits to 30mm/s

M500 ; to save it.

Let me know if that works for you. It should, and I have been recommending it, but I am not confident about it yet.

Link to an old Hackaday post, but since LinuxCNC puts several “shortcuts” in place on the arrow keys, a USB keypad works reasonably well as a low-rent pendant.