Extreme NEMA 17 noise both idle and movement

80 views
Skip to first unread message

Adam Hendrych

unread,
Jun 5, 2025, 3:00:52 PMJun 5
to accelstepper
Hi everyone,

I recently build a project with NEMA 17 stepper motors and DRV8825 drivers. My problem is related to extreme noise output of the motors regardless of whether they are moving or not.

I tried adjusting the VREF many times (from 0.5V to 0.8V, while the motors are rated for 1.7A current). Also tried all microstep resolutions. All of them make more or less the same noise. I also tried switching the power supply for another one (both 12V and they have to be 12V). No luck there as well :D

While the motors move they are very choppy. I feel like I can see each and every step, which I assume should be pretty much impossible with 1/32 step resolution... I have attached a video of the weird noises during idling.

Is this normal, does anyone have same experience with DRV8825 being so bad??

Thanks!
20250605_205034.mp4

Ross Waddell

unread,
Jun 5, 2025, 3:21:55 PMJun 5
to accels...@googlegroups.com
This is why I switched to the TMC2208 SilentStepStick driver board. It really is incredibly quiet, and my steppers run smooth & cool.

--
You received this message because you are subscribed to the Google Groups "accelstepper" group.
To unsubscribe from this group and stop receiving emails from it, send an email to accelstepper...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/accelstepper/18f6c30f-f2e7-4e82-86ad-9b0fb00ec222n%40googlegroups.com.

Adam Hendrych

unread,
Jun 5, 2025, 3:38:37 PMJun 5
to accelstepper
So this is normal for the DRV drivers? I had an old 3D printer which used A4988 and I do not remember the noise being this baddd:D

Dne čtvrtek 5. června 2025 v 21:21:55 UTC+2 uživatel ross.a....@gmail.com napsal:

Ross Waddell

unread,
Jun 5, 2025, 3:42:41 PMJun 5
to accels...@googlegroups.com
I experience bad noise and vibration with both DRV & A4988 boards. I was about to give up on using steppers until I found the TMC2208. Lots of 3D printer users switch out their boards to this as they’re so quiet.

Daniel Tremblay

unread,
Jun 5, 2025, 3:53:59 PMJun 5
to accelstepper
i like to use TMC2209 Operating mode STEP/DIR
easy setup and compatible!  

 https://bttwiki.com/TMC2209.html

Jim Larson

unread,
Jun 5, 2025, 5:02:36 PMJun 5
to accelstepper
Adam -
Could you please post the code you are running to control your motors so we can be sure not to miss anything? I have used both the a4988 and the DRV8825 successfully without excessive noise. I don't have a good explanation for the problem you are having, that's why I'd like to see your code.

             -jim

Adam Hendrych

unread,
Jun 5, 2025, 5:34:26 PMJun 5
to accelstepper
Of course,

I stripped anything that could cause an issue away from the code. Basically it is just aims to spin the motor at low constant speed.
#include <AccelStepper.h>

#define STEPS_PER_REV 6400 // 1/32 step size

AccelStepper stepper(AccelStepper::DRIVER, 2, 3);

void setup()
{
  stepper.setMaxSpeed(angleToSteps(200.0f));
  stepper.setSpeed(angleToSteps(90.0f));
  stepper.setAcceleration(angleToSteps(80.0f));
}

void loop()
{
  stepper.runSpeed();
}

long angleToSteps(float angle)
{
  return (long)round((STEPS_PER_REV * angle) / 360.0f);
}
I also tried to many various speed/acceleration settings (you can ignore the conversion function, I tried versions without it as well). Nothing seems to really help or even improve the behavior in any way.
Explicitly setting motor pins as OUTPUT with pinMode did not help either.

Thanks for guidiance!

Adam


gjgsm...@gmail.com

unread,
Jun 5, 2025, 10:31:25 PMJun 5
to accelstepper

There are a few factors that will affect motor performance but I suspect that 12v is too low for fast microstepping. I don’t understand why 12v would be your limitation, can you explain?

At only 12 V, the stepper’s phase inductance (often ~4–5 mH on a typical 1.7 A NEMA 17) prevents current from rising quickly at higher step frequencies. The driver compensates by using slower current decay, which can produce more audible whining and choppiness. In microstepping (1/32), if your step rate is, say, >1 kHz, the coils never reach full current between steps, yielding low torque, noise, and visible “jitter” instead of smooth motion.

If the motor’s rated for 1.7 A and has, for example, ~4 mH inductance per phase, a 12 V supply will only let you go up to ~1–2 kHz step rate before current lags significantly. For smoother 1/32 stepping at typical CNC speeds, a 24 V or 36 V supply is common. Try raising the supply to 24 V (keeping the current limit at 1.7 A using VRef). This will improve the current rise time and reduce audible noise in microstepping. If using switching PSU's thay need to be ~25% higher rating that the total current draw so, for two motors that would be about 4 to 5 Amps.

Jim Larson

unread,
Jun 5, 2025, 11:27:49 PMJun 5
to accelstepper
OP stated that he had tried all possible microstep resolutions. If not, I would strongly suggest trying lower microstep settings to see if things improve before investing in a higher voltage PS.

I would also try turning the current control all the way down. Do this slowly while running the motor and see if the noise stops. At some point, the motor should stop and the noise should stop. Then increase the current slowly until the motor starts running again. That point should be where the motor runs properly without a lot of noise. Forget about trying to set the current limit by adjusting a voltage. Just turn the control with the motor running.

HTH

                  -jim

Adam Hendrych

unread,
Jun 6, 2025, 6:52:12 AMJun 6
to accelstepper
I have a lab bench PSU and indeed, when set to 24V the noise gets significantly lower. I feel like most of the sound is caused by some mechanical grubbing with 24V.
The problem is that the PSU of the setup is just 12V one and I don't really have a time to order a new one / redesign and rebuild most of the casing. I have to submit a working machine in few days.

On the more positive side, the 1/8 step resolution seems to improve noise levels quite a bit as well. I admit I skipped the first 3 levels and only tried 1/16 and 1/32 beacuse I thought (and still have some doubts) that the resolution won't be sufficient for my application. But I have seen some posts discussing the fact that finer step resolutions don't really add that much to precision of the machine. They are rather meant to reduce noise (quite the oposite in my case -> most lilkely caused by the PSU).

Thanks for all the help guys!! If someone would be so nice to review the final video/noise levels, I think we can mark this as resolved:D.
Adam
20250606_123056(1).mp4

Geoff Smith

unread,
Jun 6, 2025, 6:42:44 PMJun 6
to accels...@googlegroups.com
Adam, it can be difficult to work out what's happening from a distance, but listening to the video, (it's hard to say exactly) but it does sound a bit noisy and the step resolution seems 'off'. Maybe check the microstepping, have you got access to a logic analyzer in the lab there to see what the actual stepping rate is and if there are any missed steps? If not, you could put a 'step count' function in the code to check it. I see in the video that the first stepper is drawing only 900mA which could be a bit low compared to the 1700mA motor spec. Is the Amp setting on the PSU turned up?. As a matter of interest, what mcu are you using?

--
You received this message because you are subscribed to the Google Groups "accelstepper" group.
To unsubscribe from this group and stop receiving emails from it, send an email to accelstepper...@googlegroups.com.


--
Regards

Geoff Smith

Adam Hendrych

unread,
Jun 7, 2025, 5:20:03 AMJun 7
to accelstepper
Well, the microstepping being choppy (visible on the rotating green stator) was caused by the run() not being called often enough (the code for the entire thing was reading some sensor, doing some averaging, drawing to the screen etc.). While using the code I previously posted (the super simple sketch), it runs smoothly with 1/8 microstep size.

As of my understanding, the 1/32 step size requires the code to call the run() function much more often, which might be a serious issue when running 3 motors, screen, rotary encoder and homing hall sensor
out of single Arduino UNO. As for the current from the PSU: I lowered the current limit to 1.2A in order to reduce the noise further. So the 900mA is about right considering that while microstepping the current draw should be about 0.7*max according
to pololu specs. 

While the slow MCU might be a reason for this behavior, I still consider it unlikely. Some old 3D printers like Ender3 also use Arduino based boards and have no such problems.
Dne sobota 7. června 2025 v 0:42:44 UTC+2 uživatel gjgsm...@gmail.com napsal:

gjgsm...@gmail.com

unread,
Jun 7, 2025, 7:51:27 AMJun 7
to accelstepper
Yes, the busy loop would account for your problems. Typically the loop which is running the stepping might only have one or two other things happening in it at the same time like reading a pin but would not normally have any serial data transmission activity like serial printing or writing to a display. I would think the Ender would be running different code and would not have any extra activity happening in the loop while running to targets. You can do things like run your steppers in a 'while()' loop and all other activities outside of the loop or use a dual core mcu to run activities concurrently. Another solution already mentioned, might be to use a high speed mcu. The Teensy 4.0 at 600Mhz is the fastest I have used which I clocked at ~100,000 step/sec max which would probably be ok for your use. Let me know if you would like further information on any of these options.
Reply all
Reply to author
Forward
0 new messages