Spindle always on, Shapeoko 2


My spindle isn’t being turned on/off by my Shapeoko’s arduino anymore, it will only work by plugging/unplugging. I’ve tried both UGS and Easel. I’m not sure if this is related, but I used to hear a “click” every time I plugged the machine into my computer (once Arduino received power) and this no longer happens, not sure if that’s just because I’m using the latest GRBL, and I don’t remember when this changed!

I’ve checked all of the wiring, but I haven’t lifted the Gshield, and everything appears to be tight. M03 and M05 commands basically don’t do anything. I don’t have the spindle hooked up through my e-stop so that’s not the problem.

The only customization on my machine is that I’ve got coolant powered by a solenoid.

Any ideas?



What pin do you have the spindle control connected to?

Please send you GRBL settings as well.

machine controller, and type in $$ in the console.

1 Like

It looks like my spindle is connected to D12, I just found the info that D11 and D12 switched on the newest version of GRBL, so I just need to move the pin? I don’t currently have limit switches, so there was nothing ever in D11.

My current GRBL settings are:

What’s your setup for controlling the spindle? Probably better to disable the variable spindle option in the grbl config.h

Spindle control is on D11. If using a relay as on/off use max rpm $30 (S12000) for spindle on and minimum rpm $31 (S0) for spindle off.

$32 = 0 for spindle work.

M3 S12000 to turn the spindle on.

Use M5 to turn spindle off (or S0)

Also, change $10=1 for grbl 1.1f/g

Oh geez, I’m just dangerous enough to follow directions well, but I don’t fully understand my machine.

@NeilFerreri1, I have the spindle on a relay, not really sure how to disable the variable spindle in GRBL…but why would I even want to?

@LarryM I’ll try these tomorrow!

@LarryM If a simple relay is being used to turn the spindle on/off, is there any advantage to leaving VARIABLE_SPINDLE enabled?

@BrigetteBorders You just need a high/low signal for your relay. The VARIABLE_SPINDLE option allows for the controller to change the RPMs on certain spindles. By disabling it, you’d be back on pin 12 with a simple M3 for on and M5 for off. I’d be concerned about accidental sending a PWM signal (really fast on/off) to your relay if you don’t use your max spindle speed (s12000). Let’s say your default for your CAM was 9000rpm. That’d be a 75% on 25% off cycle on your relay which is not made for that switching that fast.


It is a compile time option, main advantage is that a casual user doesn’t have to learn how to build and load grbl into their machine.

If it is set when the software is distributed then the manufacturer doesn’t have to maintain two different versions of the firmware and doesn’t have to deal with different pinouts of the hardware.

The heavy hitters will set up a custom grbl anyway, but the people who “just want to carve” don’t have to mess with the low level stuff. For them, one size fits all,

1 Like

Hmmm…I think I understand all of this, trouble is I’m more than a casual hardware user, but the software eludes me a bit. I’m using the Inventables 24V quiet cut spindle and I have it controlled on a relay found on their site as well. Previously, I could change the spindle speed both in the software and on a physical knob. I honestly don’t mind the knob, I’ve been using routers for 15 years so I can adjust by sound, but it would be nice if I could also adjust in the software.

The Quiet cut spindle is 48 volts, unless you are talking about one of the original X-carves spindles from long ago which didn’t require a relay but had a very large failure rate. It just used the Inventables power supply board to handle 24 volt PWM.

With the 48 volt Quiet Cut spindle there is a relay and speed controller (does have a potentiometer for varying the speed) that was not included with any of the kits, but was a add on feature.

Which setup do you have?

Ha, I’m not at home, wasn’t thinking. Yes, it’s 48V with a relay and potentiometer.

What version of grbl are you running?

1.1f, I believe. I updated April 29th. Didn’t notice spindle issues because I was just using xy travel to paint.

Before you encountered the problem, did you have RPM control via G-code, or just on/off control of the spindle by G-code and spindle speed via the control knob?

I had RPM control via the potentiometer for sure. Honestly I think I never got the variable speed to work via g-code, though.

If you wired the Quiet Cut Spindle according to the instructions on the Inventables web site then you must have had a special build of grbl installed.

As was mentioned above, VARIABLE_SPINDLE enabled is the default compile time setting in grbl. This would cause your spindle setup to fail.

There are several options, but the most straight forward solution is to recompile grbl with VARIABLE_SPINDLE commented out.

This would return your system to the functionality you previously had for spindle control.

Do you know how to / want to learn how to compile a new version of grbl?

Would you like for me to generate a new version for you to test to see if a change to grbl will fix your problem?

I definitely wouldn’t have done anything custom in GRBL, but I assume I followed instructions from Inventables and Shapeoko pretty exactly. I would love to learn how to compile a new version! Thank you so much for your help and patience.

So in this case I shouldn’t change any wiring?

I won’t be home until tomorrow evening to test, however.

[Edit] I think I’ve changed my mind after reading through the thread again.

I would suggest that you decide how you want your machine to work and save some time by doing what it takes to make it that way from the beginning.

So, post what functionality your goal is and I’ll see if we can get you there from the beginning with the new firmware.

1 Like

@BrigetteBorders Did you use xLoader to upload a .hex file or did you use the Arduino IDE to upload the “grbl upload” example?
Like Larry said, if you know how you want it to work, getting there is not difficult with your being familiar with the machine. The code change is trivial and you could be walked through it if you want the learning part. Otherwise, It’d be pretty easy for one of us to share a modified HEX file.