Any way to Enable/Power all stepper motors (issue with Stallguard)
Hi, I have Stallguard setup for homing X,Y and Z on a Cartesian printer and it is working very reliably almost all the time. The only issue remaining is when the motors are powered off. If the motors are powered off (i.e. after power up printer, after M84 command or after emergency reset) the homing will fail the first time, but will work perfectly well all the consequent homing actions.
My "educated guess" of the behavior (-please correct me if I am wrong-) is that right after Powering on the steppers, the motors demand some amount of current and they would produce an small transient current that would suffice to trigger the stallguard. This small transient is probably not present after the motors are already powered up and hence second and consecutive homings will work reliably, until a M84 command is issued to power off all motors and then the next home would fail again due to these transients.
I do not have an oscilloscope to test this hypothesis, but I have tried to find some GCODE (like Smoothieware M17: Enable/Power all stepper motors) so that I can modify my homing scripts to start powering on the steppers/motors, then issue a G4 Pxxx to wait some milliseconds and after that execute the G1 command for the homing movements. Unfortunatelly I have not been able to find any GCODE suitable. Any ideas of GCODE that I could use as workaround to force a power on of all motors?.
Just doing tiny relative move on all 3 axes?
G1 X0.01 Y0.01 Z0.01
As FMA says, but add parameter S2 to that G1 command. You may need to move the motor at least one full step to clear the stall status, so about 0.2mm or a little higher instead of 0.01mm. You can put that command near the start of your homeall.g file.