Motors not holding

I have a Shapeoko II, not X-carve, but this problem should be universal. I was using the machine this morning (successfully), when it suddenly started behaving strangely. I determined that although the motors will move as directed, they are not “holding” when idle. There is no voltage on any winding, the green LEDs on the driver board are not lit (except when moving), and the carriage can be easily moved by hand in any direction. This is not right and not how it used to be. I have tried multiple POPO cycles and computer reboot (although I think the problem has to be in the driver board or Arduino firmware).

Has anyone ever seen this behavior? How can I fix it?


Step idle delay may need to be adjusted for the way you want the motors to perform.

In v0.8, $7 sets the delay. In v0.9, $1 sets it.

If you want the motors to always be on so they lock the axes, the value can be set to $(n)=255. (n = 1 or 7)

I have mine set to $1=50; v0.9 and 50ms delay to release the motor. When the motors are kept on, even when the machine is idle, they can heat up. It takes drive current to lock them down. Allowing them to go idle keeps them cooler.

Connect to your Arduino, issue the $$ command and see how your system is set.

Thanks, Bill. I set it to 255 and that restored it to the way it used to be.

Apparently, when I updated the LocalEasel driver it changed this setting. Hopefully, it will stick now.

Yes, it is a potential problem that the motors can heat up while just holding position. However, in my machine it is just too easy to move the carriage if the motors are off, so I could never trust it to be in the right position. One of the products I manufacture includes a stepper motor driver and I offer a user option to leave the motor energized when not moving. The ideal way to do this is to reduce the current to a level that is just adequate to hold the position. My hardware does not have that option, but I would have thought that the driver board in these CNC machines did.


1 Like

I can’t speak for what the LocalEasel driver might do. Maybe a moderator can tell us.