CO2 Laser Cutting/Engraving with X-Carve

This is what I use on my Shapeoko 2 & EmBlaser under my material when cutting with a laser diode. By the time the laser’s beam goes the extra 1/4" it’s out of focus to burn anything under it.


Thanks all for the tips. I now know what to do. Unfortunately, after installing the laser and uploading JTech’s .hex file I can no longer communicate with the X-Carve. I know this has been an issue and I will go back over my original installation procedures. JTech’s instructions indicate there can be issues with X-Carve’s Arduino if it’s not an official Uno. I’m going to check to see if mine has the Arduino stamp or not. In the meantime, can anyone point me to the definitive source on how to establish communications via USB to the X-Carve. I’m running Windows 10 and everything was fine until I reflashed the Arduino.

I had a little trouble fully understanding JTech’s instructions for making the electrical connections between their laser and the X-Carve. Below is a picture of what I ended up with.

From left to right I have the cable to the laser, the negative (black) and positive (yellow) leads from the G-Shield and the red/black leads to the laser’s fan. I would appreciate confirmation that this is correct or correction if it’s not. Thanks!

1 Like

I’ve been able to reflash the Arduino and get my X-Carve responding again using Easel. I understand from JTech that the existing firmware will drive the laser for cutting. I guess there’s an issue with engraving and other functions of the laser that requires a firmware change. I’m wondering if anyone has suggestions on how to proceed with that. Shall I upload JTech’s .hex file? Is it a good idea to clear the EEPROM before doing that? Again, thanks for any guidance provided. I truly appreciate the help!

Black and yellow to the gSheild, assuming to the spindle PWM and Earth? If yes, then wiring looks good.

With it all powered up, laser safety interlocks all disabled, safety measures in place and laser switched to TTL from the switch, you should be able to issue a GCode command from Easel in the Machine Inspector of “M3 S18000” (without quotes) to turn laser on to full power (value depends what your max spindle RPM is set to). Issue an “M5” command to switch off. Issue “M3 S1200” for a low power laser on for focusing.

Get these basics working first, I.e. software control before tackling firmware changes. :smile:



Yes, I’ve been able to get this far. M3 S18000 and M5 commands worked fine. I’m unsure about focusing when using the M3 S1200 command. Is that by raising/lowering the laser and/or turning the lens knob on the unit itself. I actually tried cutting a few circles and got decent results. I adjusted the feedrate in Easel so I could get a decent cut through cardstock with a single pass. However, I now see what the built-in delays in Easel are all about. When I start a carve the laser is turned on (e.g. spindle on check box in Easel) and leaves a hole at the origin. Also, at the beginning and ending of the circle I’m cutting it gets pretty burned up. I think I’m ready to try the firmware change JTech recommends. If you agree, can you get me started in the right direction? Thanks!

I found good instructions on the JTech site for focusing so I think I’m set there.

There is a whole page on adding there laser to the X-Carve here.

You may run into an issue with the J-Tech PWM grbl firmware and it explains on that page how to resolve it.


Right…those are the instructions I used the first time and the result was I lost connection to my X-carve. As far as I can tell the Arduino Uno that came with my X-carve is an “official” one so I was confused why I had any issues. However, I’ll give it another try to see if maybe I made a mistake my first time through.

Here is how you can tell.


Excellent, thanks!

That’s a good link, thanks. Hadn’t seen that before.

Hi David. See my topic SOLVED - Inkscape plugin - problem with laser power and straight line and fell free to ask questions :slight_smile:

Hi, Hugo, I see that you solved the problem you faced. I’ve read the link you pointed to and understand what you did except for this part: “Replace move z-axis with laser on with power”. Can you explain exactly what this means? Thanks! I’ve not had any luck solving my issue. As far as I can tell the Arduino Uno that came with my X-Carve is an official one. However, I am not able to control the X-Carve if I upload the .hex file from JTech. When I do I hear the X-Carve clicking every few seconds or so, but can never complete the machine set-up in Easel. The set-up never completes when I select the COM port for the Arduino.

Hi DavidBurger. “Replace move z-axis with laser on with power” its my mistake sorry :frowning: i mean Replace z-axis with laser on with power set. Here is good explain what i mean : Where is the laser engraving category? post by IanWatkins

Well…I’ve had no luck in getting the JTech .hex file to work with my X-Carve. As far as I can tell the Arduino on my X-Carve is an official one (I followed the link recommended earlier in this discussion). I had another Uno so I tried it with no luck either. I tried using a powered USB hub with no luck. I’m running Windows 10 and the Arduino is recognized and gets a COM port when I boot-up. The Arduino IDE sees the Uno as well using the Serial Monitor. Before using XLoader to upload the JTech .hex file I run EEPROM-clear. That works and so does the .hex file upload. I then start Easel and run the machine set-up selecting the COM port established by Windows 10. At that point the X-Carves stepper motors twitch every few seconds, but no communication is ever established. I’ve run out of things to try. Can anyone suggest anything? I’ve also contacted JTech support and am awaiting their reply. I’m seriously considering ordering an “official” Arduino Uno from JTech or, at least, the one they recommend from Mouser.

You should not be connecting to Easel with the J-Tech grbl 9g flashed to the UNO. You should only be using an offline streamer and you will have to adjust your grbl settings for better performance when using a Laser. Also look to see if the grbl setting $14= is set to 1 and not 0. Easel’s machine setup will change the grbl settings to default for using Easel with grbl 9i or 9j. It’s not compatible with the J-Tech grbl 9g firmware.

I’m slowly catching on here. I created a file in Easel, exported the Gcode, edited it on NotePad++ using Ian Watkins’ editing recommendations from another discussion, saved the edited version and then used UGS to actually make the cut. It all worked and I’m very pleased to have made this much progress. However, I couldn’t have done it without the help of folks like you and Ian. Thanks! I purchased PicLaser and Laser Etch when I purchased my laser. If I understand the upgrade information on the JTech site correctly, in order to use either of those softwares I will need to use JTech’s GRBL Version 0.9g. Assuming that’s the case, I will then have a similar workflow to the one I just learned with Easel. That is, create something using PicLaser or Laser Etch, export the Gcode and send it to the X-Carve using UGS. Am I getting this right?

I can’t speak for laser etch, but our PicLaser generates very large, fast changing raster gcode files and if you do not use a reliable streamer like our PicSender, the streaming could stop mid file somewhere and ruin your laser photo engraving project. The J-Tech grbl 9g executes the S commands in real time without any dwelling and the PWM frequency is set to 1Khz for the J-Tech’s laser driver to work properly.

1 Like

Got it.