Why do different drivers change the noise of steppers? I've upgraded my stepper drivers.

I'm looking to understand why my stepper motors made noise in the first place.
Stepper motors contain two distinct sets of coils. The current in these coils is governed by your stepper motor driver.



To move the motor in either direction, the coils are being driven one after another, and in different directions.
Imagine this being a normal 3-phase AC motor, but instead of three phases, only two are used.

A "full steps" (1/1 "microstepping") would mean switching one coil off and the other on - resulting in a jerky motion to the next position. Real stepper motors have multiple sets of those coils (rather than two like in the diagram) - usually 200 or 400, giving 1.8° or 0.9° of rotation per "full step".

Such motion is usually not desired, since the immediate movement of the motor creates noise and vibration.
If both coils are driven with less current (71% of the full current, the reciprocal of the square root of 2, so that the total force on the motor remains the same) during the switch from one current to the other, another position can be achieved - a "half step" between two full steps.

This can be repeated for higher number of "microsteps", with 16 being the usual compromise.

Optimal smoothness - and next to no noise - would be achieved by driving the stepper motor with pure sine waves. The closer a stepper driver can get to that pure sine wave, the lower the noise made by the stepper motor will be:



Some stepper motor drivers, most notably the TMC family of chips, can generate 256 microsteps internally, approximating a sine wave quite well.

Other stepper motor drivers (like the LV8729) can also handle 128 microsteps, but they require the printer control board to send an individual step signal for each of those steps - which may limit speed because of the additional load on the board's MCU.