J Tech Laser integrated with X-carve grbl (Inventables/Master version 1.0c)

This is a modified version of grbl to include the J Tech variable power capabilities (J Tech grbl version 0.9g) into the Inventables Master fork of grbl 1.0c (a work in progress). Also included is the ability to switch between laser mode and spindle mode without having to reload the firmware.

The .zip file contains a Readme file with more information. Please read the Readme file, it is short and contains information that you will need to use this firmware successfully.

Many thanks go to those who helped with the early testing. Shane, Jeff, and John worked hard to make this version available.@ShaneBell, @picengravertoo (picengrave.com), @JohnChamplain (picengrave.com)

Hopefully this will provide a more up to date version of grbl for the laser community, as well as provide an easy way to switch back and forth between the laser and spindle modes.

No claim is made for its suitability for any purpose, but it is made freely available for those who would like to use it.

Please remember that you are responsible for following safe operating procedures when using your Laser. Only switch to laser mode when all safety devices are in use.

Firmware download has moved to the update in the link above right.


SAWEEEEETTTT!!! I’LL BE TRYING THIS WHEN I GET HOME TONIGHT!!! I have both and always hated switching back and forth

I will be testing this out this weekend! I also have a laser and spindle and hate switching firmware!

Thank you Larry for all your hard work!!

Here is the latest released version of PicSender for current customers.

PicSender Download

Setup Instructions when using Larry’s new multimode grbl 1.0c:

Before installing the new version of PicSender, go to the GRBL setup menu and backup your settings for both Spindle & Laser use. Do not name them Spindle.txt or Laser.txt. Exit PicSender.

Install the new version of PicSender and go to the GRBL setup menu. There will be two Modes that you can select. Start with selecting the Spindle Mode if it’s not already selected. Click Display Settings and In the left Edit Message window, copy the $30, $31 & $32 grbl settings. Open the file that you backed up previously for Spindle use. Paste the three new grbl settings in after the $27 setting, then Save. By default, the file name will be Spindle.txt. Do not change the file name.

Change to the Laser Mode and click Display Settings again. Repeat copying the three PWM settings, open previously saved Laser backup file and paste those settings in and then Save. By default, the file name will be Laser.txt. Do not change the file name.

When you select the Laser or Spindle Mode in either the GRBL menu or on the main screen, PicSender will send those setting changes to grbl automatically. You can confirm this by selecting the Display Settings button in the GRBL menu, or the GRBL Settings button on the main screen after you changed the Mode.



Thank you to everyone for their hard work and support! Remember to support the products and developers as best you can.


I see in the readme that laser mode pwm is set to 0-255. what is the spindle range?


It depends on how you use it. If you only use the PWM signal to trip a relay to turn your router on/off then you can use the 0-255 range for the spindle as well. Then any spindle speed of 255 or above (assumes M03 is active) will turn your relay full on. Then you would use a spindle speed of zero or M05 to turn it off.

If you use a variable speed spindle then you would use the range that your spindle can provide.


In my experience you have to set the range that the pwm outputs. For example. My spindle is capable of 13,000 rpm. So I set the spindle range from 0-13,000 in the config.h file. This would then take the 0-5v pwm signal and chop it up from 0-13,000. So if I wanted to run at 6,500 rpm I would program that and the pwm output would be 2.5volts.

In spindle mode, what is the range that I should program to?

Would it be possible to get the arduino files so I can adjust as needed and then generate my own hex file?


Ok, I see the problem. With version 1.0c you don’t have to use the config.h change for spindle speed. Spindle speed range is controlled by $30 and $31. So, what you would do is to put the spindle range you need into $30 and $31 and that will take care of it. You don’t need to re-compile.

So $30=13000 and $31=0

Then you would use your normal values to program the speed that you want (in your example use M03 S6500).

pwm output would be 2.5volts

Not 2.5 volts, but 50 percent duty cycle of the PWM signal.


Got it! That is so cool! Thanks for explaining :slight_smile:


This will be so cool!

1 Like

Hi Larry,

Thanks for doing the update and merging our firmware with the more updated 1.0C! This will be a benefit for everyone as there has been some good changes since the 0.9g version. I’ll be testing it as well this week and put the new hex file on our site for people to download. It will be a welcome improvement for everyone who wants to carve in Easel and still use the laser to do pictures.

The main branch of GRBL (not inventables) is also getting updated to include the J Tech firmware in it by Sonny very soon.

Thanks Again!

1 Like

I was not able to find a tester with the J Tech laser and the X-controller. If someone has this firmware running on the X-controller, please post a note here.


will this firmware make the new Z-Probe for the x-controller, no longer usable ?

The Z-probe feature works on the Arduino/gShield. Without an X-controller to test with, I don’t know if the Z-probe is different on that device. It shouldn’t be different.

Great work on this modification of GRBL! I saw some examples of this GRBL engraving and it’s quite amazing!
Can you please point me to the sources? I’m currently modifying a K40 laser to use it with GRBL and 0.9j is already working fine except for engraving. Did you publish the sources, yet? I searched for a while and I couldn’t find anything so far. Only the compiled hex files and that means I can’t change the config.h to my requirements…

Thanks a lot!

Hi, Timo.

The source is not available at this time. Sonny is modifying the main grbl source to include support for laser work. His work will most likely become the standard moving forward and I want to see what his version provides before I decide what will come next.


Here is a LaserMode grbl 9g source code. It will run S commands in real time for raster laser engraving photos. The S command range is S0-S255 for PWM on Pin11 & ground.

1 Like

Larry, I don’t seem to be able to send you a PM… but I would really like to take a look at your sources and test them on my laser. Could you provide the source code via PM?

Unfortunately, this is an older version of grbl which does not have the ability to have an enable pin and a pwm pin separately… :frowning:
I’ll take another look at it later and check if I can incorporate the laser code into the current grbl master that I’m using.