

🚀 Elevate Your Engineering Game!
The SainSmart CNC Micro-Stepping Stepper Motor Driver NEMA23 ST-M5045 is designed for 2-phase hybrid stepper motors, offering a robust power range of 24-50V DC and advanced features like speed self-adjustment and customizable current settings, making it an essential tool for precision engineering projects.
B**N
I use these on a OpenBuilds OX CNC router. ...
I use these on a OpenBuilds OX CNC router. They work so well I will be converting my LMS High Torque mill also. I am using Universal G Code Sender and GRBL with these stepper drivers with no issues. I will continue to buy these as needed for all my projects. I know Gecko has a huge following and I started out with Linux CNC and a Gecko G540 but have gone to using GRBL and these stepper drivers instead. I find the whole setup a lot more user friendly and quicker to learn.
J**.
Here is an Arduino example. Works well for driving the motor but will not release "hold"...
I purchased many SainSmart products in the past with great success and at this point the SainSmart brand feels very familiar. So I purchased this driver because I need to drive a NEMA 23 motor for my application and I also need to allow the motor to spin free at some stages. The problem I encountered is that I cannot make this driver to release the motor from it's "hold" state. In the paper that came with it, it says "ENA+, ENA-: Motor free" but that function does not work no matter what state you set the ENA+ and ENA- inputs. As a matter of fact, it operates the same way even when nothing is connected to the ENA ports. I contacted SainSmart support and did get an answer within 12 hours but they were basically referring me to their "wiki" (that is how they called it) which is nothing other than a PDF of the same paper that comes in the box. I do not know if the one I got is defective or the documentation is wrong but at this point I have to return it because I do not have any more time to troubleshoot and did not get meaningful help from SainSmart.███ UPDATE 6/1/2018 - I received a second email from SainSmart stating that it should be releasing the hold of the motor when ENA+ and ENA- are set to High (+5V) the motor should be released and spin freely. They also suggested to check my connections which I did but my unit does not function this way so I received a defective one. I raised the rating to 4 stars since this is not a design issue but I still had to return my unit so based on my experience I cannot give it 5 stars. ███For applications that do not need to allow the motor to spin freely, it works very well. I connected it to a Bipolar 2.8A 269oz.in/1.9Nm Stepper Motor Nema 23 with a 24V power supply and while on hold the draw was at 0.30A. When I drive it at about 60RPM with no load (on the shaft) it draws 1.2A.To drive the motor with an Arduino (any flavor) you can use the following code. This code should allow the motor to spin freely when no button is pressed. You will need a power supply at 24V, an Arduino and 2 momentary switches with the following connections. Note that in my case, I used an L7805CV Voltage Regulator to provide 5V to the Arduino via the Vin pin (See attached pictures).From the ArduinoPin 8 to DIR-Pin 9 to PUL-Pin 10 to ENA- (This did not work for me but I include it because it should have)From +5V+5V to PUL++5V to DIR++5V to ENA+Momentary Switch ConnectionsConnect the 2 switches to pin 2 and pin 3 of the Arduino and the other side of the switches to the GND. When pin 2 is low it will spin the motor forward and pin 3 low will spin it in reverse.You can change the microseconds delay variable "FastStepMicros" and "SlowStepMicros" time to adjust the speed. You can also change the "Steps" variable to adjust the revolutions every time you press a switch. The code will spin 1 revolution every time you press a switch because when SW1,2,3 and 4 are at the "On" position on the driver (see documentation) 400 steps is 360 degrees (for an 1.8 degree motor)const int ForwardPinIn=2; //Connect to momentary switch to GNDconst int ReversePinIn=3; //Connect to momentary switch to GNDconst int DirPinOut=8;const int PulPinOut=9;const int EnPinOut=10;const int LEDPin=13;unsigned long FastStepMicros=200;unsigned long SlowStepMicros=400;int Steps=400;const bool EnableMotor=LOW;const bool DisableMotor=HIGH;void setup() {pinMode(ForwardPinIn, INPUT_PULLUP);pinMode(ReversePinIn, INPUT_PULLUP);pinMode(DirPinOut, OUTPUT);pinMode(PulPinOut, OUTPUT);pinMode(EnPinOut, OUTPUT);pinMode(LEDPin, OUTPUT);digitalWrite(DirPinOut, LOW);digitalWrite(PulPinOut, LOW);digitalWrite(EnPinOut, HIGH);digitalWrite(LEDPin, LOW);}void loop() {if(digitalRead(ForwardPinIn)==LOW){SpinForward(FastStepMicros);}if(digitalRead(ReversePinIn)==LOW){ReverseSpin(SlowStepMicros);}}void ForwardSpin(unsigned long StepDelayMicros){SetDirection(true); //Set to forwardEnMotor(true);for(int x=0;x<Steps;x++){digitalWrite(PulPinOut, HIGH);delayMicroseconds(StepDelayMicros);digitalWrite(PulPinOut, LOW);delayMicroseconds(StepDelayMicros);}EnMotor(false);}void ReverseSpin(unsigned long StepDelayMicros){SetDirection(false); //Set to reverseEnMotor(true);for(int x=0;x<Steps;x++){digitalWrite(PulPinOut, HIGH);delayMicroseconds(StepDelayMicros);digitalWrite(PulPinOut, LOW);delayMicroseconds(StepDelayMicros);}EnMotor(false);}void SetDirection(bool Forward){if(Forward){digitalWrite(DirPinOut, HIGH);}else{digitalWrite(DirPinOut, LOW);}}void EnMotor(bool EnableMotor){if(EnableMotor){digitalWrite(EnPinOut, LOW);digitalWrite(LEDPin, HIGH);}else{digitalWrite(EnPinOut, HIGH);digitalWrite(LEDPin, LOW);}}
E**X
Great product from a great company
The drivers are great, and include features found on much more expensive units like over current protection. I did receive one that was DOA, but even though I was two days out of the return window, they 2 day expressed me a replacement, with no hassle. I also purchased a breakout board from them which works flawlessly. I've bought a bunch of sainsmart products for use with the arduino and they never disappoint. Customer service is exceptional.
L**Y
Two Stars
Wiring diagram could be a lot better
A**M
... these for my CNC router and while it ran fine, the machine seemed to vibrate a lot
I ordered five of these for my CNC router and while it ran fine, the machine seemed to vibrate a lot.It wasn't a big deal it didn't loose steps or anything just the sheet metal seemed to vibrate and make noise. I later sold that machine and built a new unit with more travel. I decided to try some other drivers based on the TB6600 and the new machine of similar design ran much smoother.Pros: No Failures over 6 Months, Cheap, Easy to Use, Good to 48vCons: Noisy Compared to TB6600s.
D**E
Stepper motor controller
This controller works well with standard bi-polar stepper motors. There are accessible on-board switches to select the number of steps. For example, I am using 450in-oz stepper motors that require 200 pulses to perform a single revolution. With this controller I can fine tune the steps so that, for example, I can send 1600 pulses through the controller to provide the single revolution. Other settings are also available. Highly recommended.
M**T
Great for driving NEMA-23 motors!
I use this to drive a 425 oz-in NEMA-23 motor in the Y axis of my 3D printer. I connect it directly to the step/direction/enable pins on my SmoothieBoard controller with 64:1 microstepping and it works well. I power the motor with a 32V supply with current set at 2A and this thing barely gets warm.
E**N
Nice price on a well built drive
Good price for a single axis stepper motor drive. Unit appears to be well built. Hookup diagram included. Documentation could be a little better but hookup diagram is good enough to get it operational.
Trustpilot
2 months ago
2 weeks ago