TMC2660 - stallGuard endstops
-
This is not a wish, just my experiments using the stallGuard feature of the TMC2660s. Since ist was mentioned several times I wanted to try it out myself.
tl;dr It works but probably too finicky to tune correctly.
One has to get three dependent values right: stallGuard threshold, motor current and movement speed.
On the first picture I have a normal X move on my BigBox (cartesian), stallGuard threshold is at 3 and current at 500mA. The orange move is undisturbed as one can see the initial acceleration is nearly tripping the stallGuard (getting down to 0) followed by some ringing. In the blue graph I stopped the carriage with my hand, you can see the line going down slowly because of the springiness of my hand, after that the motor is stalling heavily even moving backwards at times but the stallGuard didn't trip.On the second picture I tried it with the Z axis (100 full steps per mm), set the current to 200mA because the lead screws give too much torque. I changed the tripped zero values to -100 to make them visible in the graph. In the last part the nozzle hits the bed and trips the stallGuard but the stepper never stalled.
So premature my conclusion is, making this work reliably is hard, you can't use any signal filtering because then you are several steps "behind".
If someone wants to experiment with this further you can use my stallGuard branch https://github.com/ChristophPech/RepRapFirmware/tree/stallGuard Currently one can use the stallGuard as virtual endstops, also record the values for further analysis. If someone needs a precompiled binary I can build one, I'd even add a possibility to set the stallGuard threshold values.