How Best to Control X-Carve Using Linux?

I’m not an Inventables customer yet but I hope to be one real soon (and I’m a full-fledged CNC newbie BTW, so…). I would have already taken the plunge by now were it not for the fact that I will be using Linux as my CNC driver and it’s not at all clear to me at this point what my best option is for going forward. Perhaps a little about my plans is in order. As I alluded to in my initial post, I plan to be constructing what is essentially nothing more than boxes out of 1 x 6" lumber. This will involve such operations as making rectangular cut-outs, drilling pilot holes into frame boards (as well as their ends), cutting dado grooves and then separating each workpiece from the remaining stock… Initially, my work will be a matter of prototyping but if the X-Carve works out as hoped, it may evolve to include some light manufacturing as well. So, as mentioned above, an important component of my plan is that I’ll be using Linux to control the X-Carve. What I’m unsure of is what exactly I need to go this route. I’ve done quite a bit of browsing of the forums here and it seems that someone in my position can go multiple ways with this, one being to indirectly control the machine from Easel using the default Arduino in combo with a rPi and another being to use LinuxCNC in combo with a break-out board and separate stepper controller. I’m sure that there must be other options as well. So my question is, what is the best path for me to take and why? What other software should I consider? BTW, I do have a rPi that’s just collecting dust right now but I wonder if Easel is the right software for me. I played around with it some last night and being a CNC newbie, I don’t know if it’s the appropriate software to use or not. For one thing I’m unsure whether my use of CNC constitutes 2D or 2.5D work. All I know is I’m basically producing 3D parts from wood. For what it’s worth, I’m looking to purchase the 500mm X-Carve with the Z-axis ACME lead screw and Nema 23 steppers. Right out of the gate I’ll be extending the cutting area by replacing the Y-axis rails with longer ones so that the resulting cutting area is roughly 12" x 24". I’ll then implement a very modest version of Frank Howarth’s “Vertical CNC Table” modification (by adding a “drop-leaf” to the front of the existing waste board) to allow me to easily pilot drill my board ends. Any information that can help me decide on which “control” path I should take is much appreciated. I’d really like to place an order ASAP before my funds evaporate. :wink: Thanks all!

Is there a logistics reason for this, or is it just a religious issue?

If, by “religious” you mean, do I prefer using a single O/S for all of my computer systems, then yes, I suppose I haven’t yet purchased an X-Carve just based purely on “religious” grounds. I apologize. :wink:

1 Like

Just wondering. I see a lot of “M$FT SUX-oZ” around.

To answer you question, UGS ( https://github.com/winder/Universal-G-Code-Sender ) works fine in Linux.

you could try playing with this https://www.npmjs.com/package/xcarve-server

I got it to install and work on desktop ubuntu, but so far have not go a successful running on my dual boot laptop which is the machine I currently use for the x-carve

First let me say that I’m not opposed to Linux. I’ve used it. I’ve modified it. I know it.

However, I believe that by making it a requirement for your operating environment that you are limiting yourself and making your job a bit harder.

You can get things up and running with Linux.

I think that you will find that you are not in the mainstream, at least as far as many of this forum’s members go, so you will most likely have to look to another forum to get the best assistance.

I don’t believe that Easel will work with Linux (at this time) due to a small piece of software that is installed on the local machine (called Easel Local) to communicate with the X-carve for the web based portion of the program.

You would need to identify software (either separate programs, or combination programs) to do your design (CAD), then convert it to G-code (CAM) and send it to the X-carve (some form of G-code sender).

Interesting, I didn’t know that was available.

I have written software (an HTTPD) that will run on Windows, MAC, or Linux that allows a Javascript based system to send messages out over a serial port. In the big picture, this would seem to be all that is needed to make Easel run on any of these popular operating systems. It is simplicity itself in how it would work. Easel would simply call an URL on 127.0.0.1 with a message as part of the URL, either gcode or such, and the web server on 127.0.01 would then send the message out the serial port. Assuming there is some sort of reply, or indication that the gcode is done, the reply from the 127.0.0.1 web server could contain that information.

The 127.0.0.1 web server is written in Python and easy to change to accommodate Easel, or at least it would appear to be an easy change. I wonder if Inventables would be interested in working with me to make this work.

The easel local uses nodejs to perform the work. It is also multi platform. I think one of the node utils that I found on npmjs used one of the files form the Easel local, since what is proprietary is the protocol between easel and easel local. Hence, probably why I can’t find it anymore !

So, in theory there is no reason why their current system couldn’t system work under Linux. Like most things though, I suspect it comes down to resources and getting the most bang for the buck. Linux lacks a single cohesive installer mechanism. So for a small company, it is better to put the resources into the two big OS’s and quite frankly I don’t blame them. And that’s from someone who has run Linux as his primary home desktop for 12+ yrs. Bottom line, we need them to put the resources where the money is.

That’s cool – I understand. I see a lot of that sort of behavior myself in various forums and I’m really saddened by it. As far as I’m concerned, whether you use Windows, Linux or OS/X, it doesn’t matter. It’s just another part of the toolchain. If it works for you or someone else, that’s all that really matters to me. Religious devotion should be reserved for beliefs that matter, IMO. Hey, thanks for the link. I’ve seen UGS mentioned here but I don’t think I’ve seen a link to it. I’ll check it out. :slight_smile:

Yeah, that’s one of multiple webpages I’ve seen that talk about that. Another (I think) is seen on Instructables ( http://www.instructables.com/id/Control-your-CNC-over-Wi-Fi/ ). I wonder why it works on one computer but not the other. Have you tried installing and running from a Live CD on your laptop? If that works, it might provide a clue as to the problem with it not running from the installed O/S.

So, if I understand the purpose of doing this, it’s to allow you to control your machine from Easel running in a browser on any machine (including a Linux one) or, to control it without having to be connected directly via USB. Is that correct?

by making it a requirement for your operating environment that you are limiting yourself and making your job a bit harder.

No real surprise there. I’ve come to accept the extra challenges with using Linux.

I don’t believe that Easel will work with Linux…

That’s my understanding (that it won’t work directly) but do I understand correctly that by doing the rPi thing, you can then use Easel from a browser on any system that is set up to talk to the rPi? Yeah, I know that’s not exactly working directly from my x86 Linux box but it would still work, correct? Granted, at this point I don’t even know if Easel is the right software for designing parts…

1 Like

You’re getting into an area I don’t know much about. Are you talking about running Linux on the PI or Windows 10?

It’s a great program for those that fit the model. Personally I don’t use it as I prefer to work offline. Almost all of my work these days is on Windows. I do have one project, interestingly enough, that only runs on a Linux flavor.

Are you talking about running Linux on the PI or Windows 10?

Yes, Linux.

Well, if there’s something that will work on the PI running Linux, then why won’t it run on your main system? Seems like the same problem, just adding another computer.

Hi there,

I belong to the same religion. I’m also new to CNC, so we must be related. :wink: I started using Easel on a Mac, but have switched to using my Ubuntu 14.04 machine in the shop. You can continue to use Easel to design your projects and then export them as gcode. Once you have gcode, you can send it to your xcarve using UGS or Bcnc. It’s all pretty simple, but I recommend running a couple jobs with the router off and the bit high off the table so you get comfortable with how stuff behaves.

I’ll probably continue to make simple stuff in Easel as it’s quite good at what its able to do. I think it can easily create the cuts you mentioned above and you’ll like the additional features present in UGS and Band.

I too run Linux because it’s what I know, having supported it for many years. My CNC controller is a Gecko G540 running under Linuxcnc as it’s what I use with my other CNC router (a 6040).
I have built a setup that will let me run grbl on an arduino and drive the G540 but other than testing it out, i haven’t used it with Easel . Another reason for Linux is I don’t have a copy of Windows other than the one that came with my laptop (8.1) and I’d rather not use my laptop in the shed with the X-Carve.

That was my initial thought as well. My current guess (lol) is that the rPi is only routing the gcode to the X-Carve. Therefore, as Easel isn’t running directly on the rPi, it wouldn’t be a comparable situation.

Yes, I’ve seen that others are doing this and I just now ran across the bCNC solution along with other GRBL related ones (https://github.com/grbl/grbl/wiki/Using-Grbl).

Thanks for the specific recommendations for how to best use Easel with Linux. That sounds like some really good advice.

Excellent. That’s good to know.

That’s correct, the Rasperry pi Is acting as an intermediary between your computer and your XC. This allows you (in theory) to send a job to the XC without being physically connected. This works by intercepting the traffic Easel would be sending to the Easel local software and instead sending it to a node.js proxy running on your local machine which forwards the data to the Rpi.

In theory, it should be possible to use the node packages on a standalone Linux box and let them route communication from Easel to your XC. I tried doing this. The node packages are easy to install and I got them running on my laptop just fine. The problem is that Easel will keep telling you that it needs you to install the local software. I may be wrong, but it feels like this Rip solution just might not be supported anymore. If you want to try it, here is the off from Adafruit that talks about it.
control-an-xcarve-cnc-machine-wirelessly-with-a-raspberry-pi.pdf (1.4 MB)