Disabling Stepper Motors? [Resolved]

Sorry, long question :confused:
I’m hoping to be able to use an X-Carve for an extended task (~4-5 hours overnight) that involves a lot of constant motion in the Z axis. On shorter trial runs of about an hour, the Z axis motor has heated up considerably, to the point where it was uncomfortable to touch for more than a couple of seconds. I’ve already set the motor currents as low as I can without sacrificing performance, and I want a way to cool the more active motors so that I don’t burn them out or set the building on fire after I leave for the night. Because the stepper motors are constantly working to maintain their current positions even when not being given commands, programming in breaks while the motors are still enabled isn’t an effective way to cool them. So my question is: is there a way to disable the stepper motors without turning off the device, so that I can give the motors 15 minutes to cool every hour or so? I’ve looked on the RepRap wiki and found the G-codes for disabling motors, M18, but the machine hasn’t responded to this code, or the sleep G-code, M1. Any help would be appreciated, thanks!

Did you consider heat sink fins with a 40mm or larger fan? I do the same for very long 3d prints with my nema 17s and they stay super cool compared to no fin\fan…

Hey Darryl,
I do intend to implement some kind of heat sink if this issue can’t be resolved with programmed disabling of the motors and passive cooling. Thanks!

If you can put your hand on the steppers for a few seconds, it is unlikely that they are overheating.

Are you running Nema 17 or 23?

I’d suspect that a fan would go a long way towards keeping it cool as @DarrylKegg suggested. It won’t take a very large fan. Anything that will force air across the motor will make a substantial difference.

As long as the controller is on it will feed the motors and if you disconnect the motors you risk damaging the controller. Turning the controller off mid cut will cause plenty of it’s own problems. I think the easiest solution is to just break the cut up into smaller chunks so the spindle can move to home afterwards each time and then you can shut it down to cool. Then load up the next part of the cut and keep going.

They’re 23s. You’re right, they weren’t overheating after an hour, I’m more worried about longer runs, especially since the intention is to do these almost every night for the foreseeable future. Definitely willing to try a fan, just wanted to see if anyone had any ideas that didn’t require extra hardware.

Phil and Adam,
I should have mentioned this initially, but I’m not using the X-Carve with a spindle, I’m just using it to probe an object, and I intended to home the X-Carve after letting the motors cool to ensure the calibration didn’t get thrown off. I can and have been performing the operation in smaller chunks, I’d prefer to be able to automate the entire process such that I don’t have to be present for the operation to complete. It’s reassuring that you were able to do an 18 hour carve without issue Phil!

I believe you could simply use a regular house fan, pointed at that motor. But if you can touch it without being burned, the motor is not overheating anyway.

Seems like the consensus is that a fan is the simplest solution. If anyone knows how to disable and enable motors during a run using G-code or other means, I’m still interested to know :slight_smile:

To be honest, I would never leave my machine running unattended. You don’t want to come back to a fire.

And things do happen.

Another users posted a photo a while back of his machine after the collet was driven into the material and did start on fire.

I have used this to turn the current off on the steppers while i step out during a carve. I tried it, and decided for many reasons stated above, it was not for me. but it’s possible. Also what software are you using to probe? I want to explore that next.

$1 - Step idle delay, msec

Every time your steppers complete a motion and come to a stop, Grbl will delay disabling the steppers by this value. OR, you can always keep your axes enabled (powered so as to hold position) by setting this value to the maximum 255 milliseconds. Again, just to repeat, you can keep all axes always enabled by setting $1=255.

The stepper idle lock time is the time length Grbl will keep the steppers locked before disabling. Depending on the system, you can set this to zero and disable it. On others, you may need 25-50 milliseconds to make sure your axes come to a complete stop before disabling. This is to help account for machine motors that do not like to be left on for long periods of time without doing something. Also, keep in mind that some stepper drivers don’t remember which micro step they stopped on, so when you re-enable, you may witness some ‘lost’ steps due to this. In this case, just keep your steppers enabled via $1=255.


I’ve been thinking about the ability to power off 1 motor too, albeit for another reason.

I’d like the possibility to power off my Z axis, so I can manually re-zero after a tool change without powering off X and Y.

Or is that a dumb idea?

Thanks Miles! I’ll try that :slight_smile:
I’m using python and pyserial to automate the probing.

Miles’s suggestion worked, so no need for fans :slight_smile: