Nema 23 board maximum velocity issue

483 views
Skip to first unread message

Larry Kvit

unread,
Aug 28, 2017, 11:08:28 PM8/28/17
to Smart Stepper
I just received my MEMA 23 smart steppers, and the pololu adapter for connecting them to to my BeBoPr++.
I am having an issue where the smart stepper does not run faster than ~170 rpm, regardless of my input (but it does run slower, when input is slower).
My setup: LinuxCNC -> BeagleBone Black -> pololu -> Steppermotor -> x, y, z on a cnc machine. 
Currently, only one of my motors is using the smart stepper, and the others are still controlled with the pololu board.

Any reasons why this could be happening?
Thanks,
Larry

misfittech

unread,
Aug 29, 2017, 6:34:26 AM8/29/17
to Smart Stepper
The most common reason for limited speed in such application is the incoming step pin pulse rate. That is LinuxCNC and BBB might not be pulsing the step pin fast enough which would limit your speed. 

The Smart Steppers can be used up to around 50Khz step input rate.  So if you have a 1.8 degree motor and 16x microstepping you would have 3200 steps per rotation, at 50Khz step rate that would be 50e3/3200=15.625 rotations per second which is  937.50 RPM maximum speed. 

A quick way to see if the Smart Stepper is your limit is to change the microstepping to 1x from 16x if you do this and the speed increases then the smart stepper is capable of driving motor faster and your limiting factor is LinuxCNC and BBB.

I am not an expert in LinuxCNC and BBB but if the step rate is the problem you might find a Smoothie, grbl, or Ramps board would help you.  I recommend the Smoothie powered boards from http://cohesion3d.com/

Larry Kvit

unread,
Aug 29, 2017, 9:42:50 AM8/29/17
to Smart Stepper
I tried changing the microstepping on the smart stepper, and the maximum velocity that the motor moved at did not change. The motor that was controlled by the pololu board was moving faster, so it is not an issue of the pulses being too slow.

misfittech

unread,
Aug 29, 2017, 10:42:27 AM8/29/17
to Smart Stepper
What voltage are you running units from?  I recommend at least 24V. 

Also connect to the unit via USB and manually send the "move" command, for example "move 360" will rotate motor one rotation and see how fast it moves.  If this does not move fast enough and your voltage is high, then I would guess you have a mechanical problem, for example load is large for the motor torque and limiting your maximum velocity.   

Trampas 


Larry Kvit

unread,
Aug 29, 2017, 11:48:47 AM8/29/17
to Smart Stepper
I am running at 12V.
I tried using the step command, and it moved at at 170 rpm.
It shouldn't be an issue with the load, because I was previously running the same stepper with the pololu board (at 12V), and it was running faster.

misfittech

unread,
Aug 29, 2017, 11:52:52 AM8/29/17
to Smart Stepper
What have you set your maximum current output to on the Smart Stepper? 

Larry Kvit

unread,
Aug 31, 2017, 12:28:40 PM8/31/17
to Smart Stepper
I tried setting 500 mA, 2200 mA, and 3200 mA - they all give me the same result.
I tried using the 'move xx' command and the motor still only moved at a top speed of 170 rpm - with both x1 and x16 microstepping.

Summary of my situation so far:
I have a cnc with stepper motors that I have run at (least) 400 rpm with load. They run at 12 V with a pololu board.
The smart stepper board will only run up to 170 rpm, and never faster. I have tried 500 mA, up to 3200 mA max current. I have tried x1 to x16 Microstepping.
Using the move command, the smart stepper runs at 170 rpm.

When the BBB sends the DIR and STEP to the smart stepper, the smart stepper moves proportionally to the speed i set in linuxCNC until a certain speed. Regardless of what microstepping I set on the smart stepper, it moves at the same speed when inputting the same speed in linuxcnc.

Any thoughts?

misfittech

unread,
Sep 6, 2017, 2:10:13 PM9/6/17
to Smart Stepper
Testing on my motor I have 380 RPM on unloaded motor with 12V.  With 24V it runs around 600 RPM.

Trampas

Larry Kvit

unread,
Sep 13, 2017, 5:36:51 PM9/13/17
to Smart Stepper
I got around to doing some more testing with the stepper motor.

I took it off from my CNC, so it would be unloaded, and tried it with both 12V and 24V.
12V, move command: 180 RPM
24V, move command: 360 RPM

When I used the pololu controller, it ran this motor at 400 RPM with 12V.
So the motor should be capable of running faster, and the SmartStepper is capable of running it faster, so what is the problem?

misfittech

unread,
Sep 18, 2017, 9:28:20 AM9/18/17
to Smart Stepper
I am wondering if the smart stepper's A5995 might have too much on resistance and limiting the current ramp time.  I will do some more testing and see. 

Trampas

Larry Kvit

unread,
Sep 18, 2017, 11:47:45 PM9/18/17
to Smart Stepper
I did some more tests and measured the current supplied.
At hold, no more than 0.6 amps were being drawn (from my power supply). This is even though I set the holdcurrent and maxcurrent to 3 amps.
While running, around 0.25 amps were being drawn.

The other weird symptom that I see, while moving one direction the motors run faster than the other direction. This is with an unloaded motor (not mounted to my CNC).

Another possibility could be that my motors have a high inductance. IIRC they should be around 8mH. But I don't know how that impacts the motor driver.

Michael Anton

unread,
Sep 19, 2017, 1:59:17 AM9/19/17
to Smart Stepper
What voltage is the motor rated for?  A stepper driver behaves much like a step down switching regulator, so the supply current is usually lower than the motor current, if the motor voltage is lower than the supply voltage.  So for example, if your supply voltage is 12V, and the rated motor voltage is 3V, then the supply current will be about 1/4 of the rated motor current with one winding fully energized.

Larry Kvit

unread,
Sep 20, 2017, 10:45:39 AM9/20/17
to Smart Stepper
They are ~3 amp rated motor, and the resistance is 2 ohms. So they should be 6 Volt rated. So, I was supplying 24V, and if they are rated for 6Volts, then the current that was passing through would have been 0.25x4 = 1 amp. Lower than what the driver was set to.

Michael Anton

unread,
Sep 20, 2017, 6:21:14 PM9/20/17
to Smart Stepper
If you have the driver set to 3A, the supply current for one winding will be about 24V/6V*3A=0.75A.  This is what the supply current would be, when supplying 3A to the motor.  If the motor is spinning, the inductance of the windings starts to come into play, and at some speed, the current will start to drop off, as the driver won't be able to supply the full current to the winding.  Increasing the supply voltage helps in this regard, and raises the speed at which this occurs.

Merv Tims

unread,
Sep 25, 2017, 5:36:41 PM9/25/17
to Smart Stepper
Powered up my NEMA23.
running at 12V, 3000mA. It hits 406 RPM. I would suggest checking board.h settings for the NEMA23 and reloading it.

Larry Kvit

unread,
Sep 26, 2017, 10:29:59 AM9/26/17
to Smart Stepper
I built built the firmware, and played around with the #defines in board.h, and I still get the same results.

I noticed that while changing the maxcurrent, and holdcurrent, that the maximum speed is when they are set to ~1000 mA. When I set the current limit higher, the motor moves slower.

Also, I tried my pololu drivers (DRV8825), at 30 Volts, and I got the motors to spin at 1000 rpm (it's limited by the step/dir frequency cause I'm x16 microstepping). While the smart steppers at 30V will only run 400 rpm.

An aside, I also noticed that 2 of the buttons on my smart stepper are not working (the menu down button, and menu exit button).

Merv Tims

unread,
Sep 26, 2017, 7:31:08 PM9/26/17
to Smart Stepper
The only things I changed are as follows, the rest I set on the display menu  :

//uncomment the following if the board uses the A5995 driver (NEMA 23 3.2A boards)
#define A5995_DRIVER

//The March 21 2017 NEMA 17 Smart Stepper has changed some pin outs
// A1 was changed to read motor voltage, hence SW4 is now using D4
// comment out this next line if using the older hardware
//#define NEMA17_SMART_STEPPER_3_21_2017

Also try clearing eeprom and then loading a fresh sketch.

Larry Kvit

unread,
Sep 26, 2017, 7:34:05 PM9/26/17
to Smart Stepper
Yes, I tried that. Still the same results.

Merv Tims

unread,
Sep 27, 2017, 9:51:29 AM9/27/17
to Smart Stepper
Just trying to isolate the problem. Have you tried by hooking up a 12v power supply and via the USB connect it to the serial plotter in Arduino and issue commands from there and see how it fares. If the pusbuttons are physically broken , you could still issue settings from monitor.

Larry Kvit

unread,
Sep 27, 2017, 10:48:04 AM9/27/17
to Smart Stepper
Here is what I tried and posted earlier:

misfittech

unread,
Sep 27, 2017, 11:05:44 AM9/27/17
to Smart Stepper
Most likely what is happening is that you stepper motor has winding high inductance. So what is happening is that the internal resistance of the A5995 (and current sense resistors) is limiting how fast the current can ramp up full current, which is a function of motor inductance voltage and driver's resistance.  This in turn is limiting the maximum velocity of the motor.  This would be reason your motor is different and why other drivers work different.  

I will get some lower current sensing resistors and change the hardware to see if it helps on my end.   

Trampas

Larry Kvit

unread,
Sep 27, 2017, 11:52:18 AM9/27/17
to Smart Stepper
Thanks for taking the time to debug this.

I don't have anything to measure the inductance on my motors, but the data sheet says it should be 9 mH.

What inductance do your motors have?

Anthony Kaul

unread,
Nov 15, 2017, 9:22:20 AM11/15/17
to Smart Stepper
Hi Larry,

I also have experienced this issue. I am using 72oz-in Nema 17's with 5.8mH inductance. My lower inductance motors (62 oz-in) 2.3mH motors don't seem to have this issue as bad.

Maybe Trampas can answer, but if one were to change the max current to 2.5amp, and input 24v, maybe that would help overcome the initial coil resistance during energizing? (aka quicker moves)

Just a thought.

misfittech

unread,
Nov 17, 2017, 7:18:51 AM11/17/17
to Smart Stepper
The input voltage helps more than anything else. 

Specifically here is a link to the current rise time in an RL circuit:


From the graph above you can see that the current will rise exponential to Imax.  Please note that with stepper motor boards we never actually hit this Imax.  Specifically  the boards have current sense resistor of 0.1 ohms and  if motor is 3 ohms  with 24V your Imax in the graph is ~8A. The controller however will limit the current to much less (2A for example).   The faster we can go from zero current to 2A the faster the motor can turn.  From the equations you will see that increasing the voltage will reduce the time it takes for the motor to get to 2A with everything else constant, this means motor can move faster. 


For example an unloaded NEMA 23 motor I have would run at 380RPM with 12V, but with 24V it ran around 600RPM.  Again the faster we can get current to rise in the motor the faster the motor will turn, so use at least 24V on motors if you need speed. 

 

Trampas

Reply all
Reply to author
Forward
0 new messages