Stepper motors making noise after steps/when idle
Why is it that if I execute a gcode command that causes the stepper motor to turn in reverse (any negative move on the X axis), after the step it will emit a high pitched whine until it gets another command to rotate in its forward direction?
Executing multiple reverse commands will cause the tone to vary in frequency each step, and always it goes away after another step in the opposite (forward) direction.
And other times it does it in both directions, but only on every other step. One step +X its there, next step its gone, next step its back, and so on...
Then they also make a different noise when idle, before I disable them with the "disable steppers" command.
What are these noises?
And is it bad to leave the motors in this state? Will it burn them out?
what kind of printer you got? Does the sound really originate in all or just one steppers?
Ender 3 pro, late-2018 model (only 3d-printed part is the power supply lower cover)
When idle, the stepper is stationary, no rotation.
Normal standard electric motors will start spinning as soon as you apply power to them. However, steppers only rotate when a magnetic field is applied1):
Stepper motors effectively have multiple "toothed" electromagnets
arranged around a central gear-shaped piece of iron. The
electromagnets are energized by an external driver circuit or a micro
controller. To make the motor shaft turn, first, one electromagnet is
given power, which magnetically attracts the gear's teeth. When the
gear's teeth are aligned to the first electromagnet, they are slightly
offset from the next electromagnet. This means that when the next
electromagnet is turned on and the first is turned off, the gear
rotates slightly to align with the next one. From there the process is
repeated. Each of those rotations is called a "step", with an integer
number of steps making a full rotation. In that way, the motor can be
turned by a precise angle.
The motor's position can then be commanded to move and hold at one of
these steps without any position sensor for feedback (an open-loop
controller), as long as the motor is carefully sized to the
application in respect to torque and speed.
When you power the printer and energyze the steppers there is no movement, but, the magnetic coils in the stepper are activated to hold the rotor in position. This is controlled by the stepper driver. The creation of the signal for the magnetic coils is causing the noise. It is a function of the driver type, micro-stepping setting, the stepper motor inductance, current setting and supply voltage.
If the stepper motor, stepper driver and power supply can take it, increasing the current setting of the driver may lower the noise.
Turning off the steppers (disabling them with G-code using
M84depending on your firmware) will stop the noise, but you will easily lose the current position as it is not hold into place anymore.
1) source Wikipedia
this is normalISH for stepper motors. they have a fair ammount of current pulsing through them at relatively high frequencies, coils and other parts that will vibrate. if it quite loud you can look into the boards that drive them, depending on your printer they are replaceable, and better 'drivers' send cleaner signals that make less noise. however: if your motors get hot or start making clicking noises, or stop randomly, or acting up more significantly, you should look adjusting how much current they are getting. search for stepper motor calibration, basically you need to adjust the ammount of current the motors are getting, but if the machine prints normally, then this is not something you want to play with. you can also probably find the data sheet for your motor, they are usually rated to operate up to about 50C