2021-01-13 06:35 PM
So I have some tiny stepper motors I've been working with. Very small 8mm tall x 7mm diameter and coil resistance is 40 ohm. We're designing some tiny digitally controlled dial gages around these and wanted to direct drive the needles instead of tiny gear trains. Tested with common stepper driver (non-st part) in 1/32 and was fine - too high current, too high voltage, but worked fine. I figured the STSPIN220 with it's 1/256 microsteps would provide the boost in accuracy and be designed for low voltage battery operation. However in 1/256 mode or any of the higher res (1/128 or 1/64th) it's operation is smooth then jumps, smooth then jumps. It's like it's cogging. So after hours I pulled out a NEMA17... and immediately perfect in 1/256. So I probe the coil and the voltage looks pwm'd sine-wave with the nema 17 but on the tiny motor it's sine-wave like for maybe 1/10th the time and full on. Is there some way to get the STSPIN220 to work with these small motors? Or is this something this driver isn't capable of? Attached waveform
Tiny stepper waveform
Nema 17 Waveform. (acceleration using accelstepper library finishing at the beginning, so you can see it stretched out)
Solved! Go to Solution.
2021-02-09 06:50 AM
Hi @KWake.1 !
I hope it is not too late for my reply...
I think that what is limiting your system is the coil resistance of the small motor.
In fact, the maximum theoretical current is the supply on VS pin divided by the coil resistance (40 ohm).
Moreover, you have to consider drops of motor’s inductance, BEMF component, the drop on the sense resistor, and so on…
So, the maximum current allowed in the motor is even smaller.
If you set the reference current higher than this limit, what you have is that the device try to reach the reference, but it cannot because of the coil resistance limitation.
Let me explain it better with an example.
VS = 9V and motor coil resistance 40 ohm, so the maximum current will be less than 225 mA.
Setting the reference current at 0.5 A results in:
- PWM in the first part of the sinewave (current from 0mA up to about 225mA)
- No more PWM above this current
NEMA17 have a smaller coil resistance, so there is not this kind of issue.
Possible solution:
Decrease the reference current by decreasing the voltage on REF pin.
But, if you need that specific current (at higher level), you must increase the voltage supply VS, no other ways….
Then, consider the maximum operative voltage for STSPIN220 is 10V.
If you need more VS voltage I can suggest a very similar device, check it out: STSPIN820.
Hope this post can be useful... if so consider to select the label below “select as best�?.
This will help other community members with a similar question to easily find a solution !
2021-02-09 06:50 AM
Hi @KWake.1 !
I hope it is not too late for my reply...
I think that what is limiting your system is the coil resistance of the small motor.
In fact, the maximum theoretical current is the supply on VS pin divided by the coil resistance (40 ohm).
Moreover, you have to consider drops of motor’s inductance, BEMF component, the drop on the sense resistor, and so on…
So, the maximum current allowed in the motor is even smaller.
If you set the reference current higher than this limit, what you have is that the device try to reach the reference, but it cannot because of the coil resistance limitation.
Let me explain it better with an example.
VS = 9V and motor coil resistance 40 ohm, so the maximum current will be less than 225 mA.
Setting the reference current at 0.5 A results in:
- PWM in the first part of the sinewave (current from 0mA up to about 225mA)
- No more PWM above this current
NEMA17 have a smaller coil resistance, so there is not this kind of issue.
Possible solution:
Decrease the reference current by decreasing the voltage on REF pin.
But, if you need that specific current (at higher level), you must increase the voltage supply VS, no other ways….
Then, consider the maximum operative voltage for STSPIN220 is 10V.
If you need more VS voltage I can suggest a very similar device, check it out: STSPIN820.
Hope this post can be useful... if so consider to select the label below “select as best�?.
This will help other community members with a similar question to easily find a solution !
2021-02-09 08:48 AM
The follow up is that going to higher voltages though for how small these motors are is not feasible. At 10v they will let the magic smoke out. I was able to get almost acceptable performance by setting vref to about 0.03v but via potentiometers it's crazy difficult to set lower and is well out of spec for the part. It really seems that the STSPIN series is not likely the answer to microstepping tiny steppers. Stepper Drivers might not be the answer here unfortunately.
2021-02-11 08:00 AM
Thanks @KWake.1 for the follow up.
The rule of thumb is: in case of magic smoke the current must be decreased !
In this case, my suggestion is not to reduce the VREF (anyway it should be grater than 0.1V), but replace the shunt resistors on SENSE pins with a bigger one. This reduces the current leaving unchanged the REF voltage.
About adjusting the voltage: with a potentiometer it could be very tricky. So you can use a digital signal to generate the voltage using a square wave low-pass filtered (simple RC filter). The filtered voltage on REF pin will be a DC voltage proportional to the duty cycle of the square wave.
Maybe in this way you can get better results in driving small motors.
Have a nice day !