M917 questions/comments about standstill current reduction
vp last edited by
some questions about M917:
1. Does this only work if stall detection works (i would assume no, but for clarification because i don´t get stall detection to work) ?
2. Below which speed is the standstill current active ?
1. the description is confusing for me, i have problems to understand what is meant by "standing still" and "idle current". If the stepper is idle (standing still), i would expect the idle current to win. According to the description it seems that both could be active (maybe if idle current is not set the standstill current is active when idle ?!?). Maybe you can clarify.
"M917: Set motor standstill current reduction
Supported in firmware 1.20 beta 7 and later.
X,Y,Z,E Percentage of normal current to use when the motor is standing still or moving slowly, default 100
M917 X70 Y70 Z80 E70:70
Some motor drivers (e.g. TMC2660) allow higher motor currents to be used while the motor is moving. This command sets the percentage of the current set by M906 that is to be used when the motor is stationary but not idle, or moving very slowly.
Standstill current reduction is not the same as idle current reduction. The standstill current must be high enough to produce accurate motion at low speeds.The idle current needs only to be high enough to hold the motor position well enough so that when the current is restored to normal, the position is the same as it was before the current was reduced to idle."
2. Because i am hunting for a good quality vs speed relation, i use high stepper currents. If somebody reduces the "low speed" current, one should keep in mind, that this also reduces the low speed torque and torque stiffness. If the printer is stiff compared to the moving mass, the stepper torque stiffness is very significant in terms of quality, e.g. ringing artifacts. I did not test it yet, but i would expect that using "standstill current" leads to more ringing artifacts. Especially deltas might produce more interesting patterns. The problem is that if the stepper jerks at the end of the move, it needs max torque stiffness, but it is moving slowly…. Maybe standstill current could only be applied after finishing jerk and all the oscillations - or at least no standstill current during jerk.
3. The way i "optimize" my high current settings is gcode processing. Slicers like S3D can be used to set different parameters for different features types. I use e.g. 100 % 2.4 A for outer_perimeters and only about 50-70 for supports, infill, gapfill, inner_perimeters and stuff like this. For sure the torque must always be enough for the defined acceleration, but the acceleration can also be adjusted according to the feature type and the highest torque stiffness is only needed where artifacts can be seen (e.g. outer perimeter).
Using this approach gives more possibilities than the "standstill current", but both could be used in combination. E.g. when printing infill or supports i could reduce the amps even more.
Standstill current reduction is not implemented yet. M917 can be used to set and ready back the standstill current percentage, but those values are not used.