I hope this community can assist me with a challenge I'm facing in my current project. I'm using two Nema 17 stepper motors 42BYGHW804L20P4.5-X to move a platform up and down, controlled by two L298N drivers. However, I've encountered a couple of issues that I believe might be related to the choice of drivers.
Excessive Noise and Vibration: When the motors turn, they generate a lot of vibration, which translates to a lot of noise when placed on a table, for example. I've read that microstepping could help with this issue, but unfortunately, the L298N drivers do not support microstepping.
Weird Power Consumption: These motors are rated at 1.2A(U), and I'm powering them both at 12V. However, I've noticed that the combined current draw exceeds 5A, even with the power supply reducing the voltage to around 9.8V to prevent exceeding the limit. This power consumption behavior is strange, and I suspect it might be related to the choice of drivers. I expected it to be a total of 2.4A (1.2 + 1.2).
After some research, I'm considering alternative drivers like the A4988 and TB6600. However, being a complete noob, I'm seeking advice from the experienced members of this community.
Are A4988 and TB6600 suitable alternatives for Nema 17 motors? Can microstepping reduce the noise considerably? Would TB6600 be an overkill? (I'd need to buy two of them).
The L298N is not a good driver for those stepper motors. Not at all.
A driver for a stepper motor can be a DRV8833 or a A4988, some use a TB6600 module.
Pololu has a nice list of stepper motor drivers: Pololu - Stepper Motor Drivers
The 12V for power is good. The TB6600 is not overkill. The microstepping will reduce the noise, but I can not tell how much less noise.
The Arduino "Stepper" library has not automatic acceleration and deceleration. The "AccelStepper" can do that, but it runs in the loop(). Every delay in the loop() will cause a hickup for the stepper motors.
Your project in Wokwi simulation:
[EDIT] The DRV8833 is not a good choice, see post #8
Thanks a lot for your reply, I'll probably order a TB6600, A4988 and a TMC2209 (suggested by another user if I wanted very quiet operation) and test which one performs the best for my case. One last thing if you have time to reply, can my stepper motors do microstepping? By looking around on forums I saw that some NEMA 17 steppers do not support it because you can only drive them in voltage and not amperage.
Thanks for you reply, would this work for my motor (Rated current: 1.2A/Phase)? The datasheet for the TMC2209 says "2-phase stepper motors up to 2.8A coil current (peak), 2A RMS". I'm a complete noob, so I apologize if this question is very basic.
I've never heard of a nema17 style stepper that can't support microstepping. Certainly the ones you have will. I'm fairly certain the drv8833 mentioned above won't be suitable as it's just a dual h bridge. For moderate voltage and current i use the drv8825, or the drv8834 for lower supply voltage e.g. 5v.
I don't believe that. I say: each and every stepper-motor can be driven with a current-driver.
It might be different for supertiny small stepper-motors but I still guess they would work with a current-driver too.
Can you post a link where you found this information that somebody is claiming
@jhaine, thank you, the DRV8833 is indeed the wrong chip.
@johnparza Every stepper motor works best when it is current driven. Some small "toy" stepper motors allow that they can be used with a voltage, but it is not ideal.
Every stepper motor can do microstepping. A stepper motor is a bunch of coils and the NEMA 17 indicates the size to mount it with screws to something (1.7 inch x 1.7 inch).
It is like saying: Every book that is 17 cm large does not have pages. It makes no sense.
Thanks everyone for your replies. I went ahead and ordered TMC2209 and A4988 (as a plan B just in case). Really hope that TMC2209 will work, saw some videos on YouTube and they are indeed very silent.
I will post an update once the drivers arrive.
Huge thanks for your help – couldn't have done it without you.
Here's the post where a user mentions that a NEMA 17 motor can only be driven by voltage (name is "uwefed"): motori passopasso made in china [RISOLTO], it's in italian though, so you'll need to use a translator.
That is about the quality of that specific stepper motor. It has a high inductance and a higher resistance. That specific stepper motor will work with a voltage of 12V and a H-bridge. However, to get the maximum out of it, a current driver is needed and a higher voltage (24V or 36V) for the driver. When it is used with 12V and a H-bridge, then microstepping might not be possible.
Just remember that a stepper motor should be current driven in the first place. It avoids a number of problems. Speed, torque, microstepping and noise, everything is better with current driver.
The second choice can be by voltage, but larger and good quality stepper motors do not allow it.
If they get out of sync the mechanic will drive into a a stressful position
Now it depends on the stiffness if the mechanic of something bad will happen or not.
My estimation is that the threads will get bended.
If the crossbar is 3D-printed plastic this might brake.
So a solution with a tooth-belt and two same tooth-number tooth-wheels that makes the second thread rotate at the same speed and both threads are rotated by a single stepper-motor is more secure.
The danger of running out of sync can be reduced if both stepper-drivers are supplied from the same IO-pins.
Stepper-motors are supposed to drive them under conditions that make sure without loosing steps.
In 3D-printers you see it quite often that there are two stepper-motors for Z-axis.
But on 3D-printers the load on the Z-axis is rather small.
I did think about the risk of the two threads not staying in sync. Initially, I thought connecting the drivers in parallel from the same Arduino pins would solve it, but I guess I was wrong. Since I don't know much about mechanics, I'm going to look for beginner tutorials online. I'll explore using tooth-belts and tooth-wheels as you suggested.
Another not-so-great idea I had was putting distance sensors on both sides of the platform and checking if they stay in sync with some room for error. But that could be expensive and seems like a strange solution.
I'll wait for the drivers to arrive and see if the platform eventually loses alignment by running it for long amounts of time. Thanks a lot for bringing up this potential issue.
Hi everyone, just wanted to drop a quick update on the recent developments. The TMC2209 drivers have arrived, and I must say, they are performing exceptionally well—far superior to the L298N. I'm considering trying out the A4988 that I ordered as well, but given how well TMC2209 is working, it might not be worth the experiment.
Initially, I encountered a squeaking noise from the brass nut, which was quite annoying. To address this, I used some car engine oil (15W40) as a quick fix. I'm not sure if it was the ideal choice, but it was the first thing I had on hand. You can hear the squeaking in the first video I linked. The second video represents the "final" result. The speed is suitable for my application, and the noise is minimal—it has that characteristic 3D printer sound, which isn't annoying. In the third video, the motors are running at low speed, and you'll notice they make very little noise.
I ran them for hours, and they didn't lose alignment. Now, I just need to work on creating a homing system, I might try to use Stallguard to create a sensorless one. I'm also considering experimenting with a tooth belt to have a more solid alignment.
Big thanks to everyone who provided insights and assistance. Your input has been invaluable!