Notifications
Clear all

StepperOnline NEMA 23 Integrated Easy Servo Motor iSV57T-130

16 Posts
6 Users
4 Likes
3,159 Views
(@jamesgi001)
Member
Joined: 1 year ago
Posts: 13
Topic starter  

This is my first post here so please excuse any Boo Boo's. Love Dronebot!!

I have this most amazing servo motor with integrated controller recommended by Clough 42

     

I am trying to get it working on a prototype I am working on with Arduino and Accelstepper (Clough 42 used a different controller) though I can only get around 1000 RPM max. This motor can do 3000RPM!

There is a ton of info re Arduino and regular RC type servos though there is little info (it seems) on Arduino and NEMA type rotating servo motors. I contacted StepperOnline tech support and they said that they do not have any info or recommendations on their servo products running with Arduino. If anyone has any experience with NEMA 23 servos and can recommend the best Arduino plug-ins to use?

These motors are impressive they have much better dynamic torque than a stepper. There are three models available 90, 130 and 180w. 

https://www.omc-stepperonline.com/nema-23-integrated-easy-servo-motor-130w-3000rpm-0-45nm-63-73oz-in-20-50vdc-brushless-dc-servo-motor-isv57t-130


   
Quote
Will
 Will
(@will)
Member
Joined: 3 years ago
Posts: 2507
 

@jamesgi001

 

Welcome to the forum.

I'm curious why you're using a stepper motor driver with a servo instead of PWM.

Also, you may have read in the AccelStepper library documentation that it's limited to about 4000 steps/second so it won't be able to drive your servo to its limit.

Anything seems possible when you don't know what you're talking about.


   
ron bentley reacted
ReplyQuote
Ron
 Ron
(@zander)
Father of a miniature Wookie
Joined: 3 years ago
Posts: 6895
 

@will @jamesgi001 Did you all watch the video? A LOT of issues!

First computer 1959. Retired from my own computer company 2004.
Hardware - Expert in 1401, and 360, fairly knowledge in PC plus numerous MPU's and MCU's
Major Languages - Machine language, 360 Macro Assembler, Intel Assembler, PL/I and PL1, Pascal, Basic, C plus numerous job control and scripting languages.
Sure you can learn to be a programmer, it will take the same amount of time for me to learn to be a Doctor.


   
ReplyQuote
Ron
 Ron
(@zander)
Father of a miniature Wookie
Joined: 3 years ago
Posts: 6895
 

Posted by: @jamesgi001

There is a ton of info re Arduino and regular RC type servos though there is little info (it seems) on Arduino and NEMA type rotating servo motors. I contacted StepperOnline tech support and they said that they do not have any info or recommendations on their servo products running with Arduino. If anyone has any experience with NEMA 23 servos and can recommend the best Arduino plug-ins to use?

What is an Arduino plug-in???

 

First computer 1959. Retired from my own computer company 2004.
Hardware - Expert in 1401, and 360, fairly knowledge in PC plus numerous MPU's and MCU's
Major Languages - Machine language, 360 Macro Assembler, Intel Assembler, PL/I and PL1, Pascal, Basic, C plus numerous job control and scripting languages.
Sure you can learn to be a programmer, it will take the same amount of time for me to learn to be a Doctor.


   
ReplyQuote
Will
 Will
(@will)
Member
Joined: 3 years ago
Posts: 2507
 

Posted by: @zander

@will @jamesgi001 Did you all watch the video? A LOT of issues!

I just watched it and I'm aghast at him using the lathe while wearing a ring and a watch !! Probably not using safety goggles as well.

 

Anything seems possible when you don't know what you're talking about.


   
ReplyQuote
Ron
 Ron
(@zander)
Father of a miniature Wookie
Joined: 3 years ago
Posts: 6895
 

@will Yes, but I was referring to the horrible support and wrong information numerous times. If he wasn't the expert he seems to be he would have given up long ago. The company seems a little sketchy, spelling errors on a public web site, suggesting that an insecure OS was the only OS to use (they later changed that to a newer OS) a special cable and just plain wrong documentation. The OP has his work cut out especially since he thinks he is dealing with a stepper instead of a servo (although it looks like a stepper)

First computer 1959. Retired from my own computer company 2004.
Hardware - Expert in 1401, and 360, fairly knowledge in PC plus numerous MPU's and MCU's
Major Languages - Machine language, 360 Macro Assembler, Intel Assembler, PL/I and PL1, Pascal, Basic, C plus numerous job control and scripting languages.
Sure you can learn to be a programmer, it will take the same amount of time for me to learn to be a Doctor.


   
ReplyQuote
Inq
 Inq
(@inq)
Member
Joined: 2 years ago
Posts: 1900
 

Posted by: @jamesgi001

I am trying to get it working on a prototype I am working on with Arduino and Accelstepper (Clough 42 used a different controller) though I can only get around 1000 RPM max. This motor can do 3000RPM!

Am I assuming correctly this is your major concern?  I can't watch the video (lack of Internet bandwidth)  Like you, I found next to nothing on trying to get stepper motors up to high rpm rates.  In a test sketch, I simply set a constant speed, compiled and tested.  At some point, it would just stutter and not turn.  The rpm was dismally low, as I too was expecting multiple thousands of rpm's as the Internet tells me they should do.

In the process of writing my own robot stepper motor driver with accelerations, I discovered that when set at some high rate (while stopped) the stepper simply couldn't overcome its own inertia.  Yet, if I accelerated up, it would keep going... far exceeding the constant setting.  I finally achieved around 3000 rpm with a wheel on, but not in contact with the ground.  On my robot (about 12" tall, 4" wheels) that would equate to about 35 mph.  In practice, I never got the bot over about 10 mph which was all I wanted.

Good luck with your project.

 

3 lines of code = InqPortal = Complete IoT, App, Web Server w/ GUI Admin Client, WiFi Manager, Drag & Drop File Manager, OTA, Performance Metrics, Web Socket Comms, Easy App API, All running on ESP8266...
Even usable on ESP-01S - Quickest Start Guide


   
ron bentley reacted
ReplyQuote
Ron
 Ron
(@zander)
Father of a miniature Wookie
Joined: 3 years ago
Posts: 6895
 

@inq Apparently it's NOT a stepper, it's a servo.

First computer 1959. Retired from my own computer company 2004.
Hardware - Expert in 1401, and 360, fairly knowledge in PC plus numerous MPU's and MCU's
Major Languages - Machine language, 360 Macro Assembler, Intel Assembler, PL/I and PL1, Pascal, Basic, C plus numerous job control and scripting languages.
Sure you can learn to be a programmer, it will take the same amount of time for me to learn to be a Doctor.


   
ReplyQuote
(@davee)
Member
Joined: 3 years ago
Posts: 1658
 

Hi @jamesgi001,

    Sorry, but this is a long way from my experience, but I note that the motor datasheet linked on the link you provided includes:

image
image

 which (to achieve the full performance range) shows your control board needs to be able to produce frequencies up to 300kHz (which is a period of about 3.3 microseconds), and preferably achieve 50% mark-space ratio, requires pulse width down to about 1.6 microseconds.

I haven't researched this thoroughly, but a quick Google suggested the processors used on the common Arduinos like Uno are limited to a maximum of 62.5kHz. This figure appears in the Arduino documents and also

the ATmega 328 data sheet, when referring to Fast PWM shows:

image

Which with an fclk of 16 MHz and N=1, is 62.5 kHz

So, I think you need to look for a processor which supports PWM frequencies of at least 300 kHz to stand a chance of achieving the claimed performance. Then, you can try to find a software library to support the processor.

Best wishes,  Dave


   
ron bentley reacted
ReplyQuote
(@jamesgi001)
Member
Joined: 1 year ago
Posts: 13
Topic starter  

Wow great forum! - Ok thanks to you all for the replies! @ron - Plug in I am talking about plug-in code/libraries like Accelstepper.

Thanks @inq for your input as well... it's however a servo - not a stepper - suggest you try one of these servos - may fix your problem. These provide constant torque unlike steppers. 

@will, I looked at PWM though it seems the servo library is only relevant to RC servos rotating up to 180 degrees etc. and not rotational NEMA servo motors... am I wrong here? There are external servo boards but, again, these seem to be related to RC type servos.

@davee - appreciate your taking the time to write such a detailed reply - I understand now that the Mega does not have the necessary Hz. I just looked into faster processors Teensy, ESP32, Due - looks like will need to try one of these. My code is 9000 lines long so hope these work without to much re-writing and I am also using a Nextion display and a micro SD card reader.

It appears there are no dedicated libraries for NEMA type servos running on Arduino?  Again, am I wrong here? I find Accelstepper is always so hard to figure out, and as @will mentions, it is limited to 4000 steps per revolution (I didn't know that) so will need to find an alternative anyhow. Any suggestions? Think I need to read up more on using PWM.

Thanks again to you all!

This post was modified 1 year ago by Jamesgi001

   
ReplyQuote
(@jamesgi001)
Member
Joined: 1 year ago
Posts: 13
Topic starter  

I just ran this code on my Mega - got high RPM but torque disappeared

// Define pin connections
const int dirPin = 40;
const int stepPin = 41;
 
const int stepDelay = 10;
 
void setup()
{
  // Declare pins as Outputs
  pinMode(stepPin, OUTPUT);
  pinMode(dirPin, OUTPUT);
}
void loop()
{
  // Set motor direction clockwise
  digitalWrite(dirPin, HIGH);
 
  // Spin motor slowly
  for(int x = 0; x < 10000; x++)
  {
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(stepDelay);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(stepDelay);
  }
  delay(1000); // Wait a second
  
  // Set motor direction counterclockwise
  digitalWrite(dirPin, LOW);
 
  // Spin motor quickly
  for(int x = 0; x < 10000; x++)
  {
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(stepDelay);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(stepDelay);
  }
  delay(1000); // Wait a second
}

 

This post was modified 1 year ago by Jamesgi001

   
ReplyQuote
(@davee)
Member
Joined: 3 years ago
Posts: 1658
 

Hi @jamesgi001,

  Sorry, I haven't played with these things, so whilst I can understand and appreciate your questions, I do not have any answers regarding the different software library capabilities.

In fact, I am not completely clear about the nature of the interface, and as I am not planning to use anything like this at present, I haven't spent any significant time researching it, so the best I can do is suggest a direction to look into. It may be useful, or it maybe another rabbit hole - I don't know which.

Presently, I can only imagine it is essentially a stepper motor with a resolver feedback, the feedback 'adjusting/modifying' the electrical drive to try to make the mechanical motion more closely match the  'requested' position/motion of the stepper motor defined by a relatively 'standard' stepper motor driver.

I can imagine this would mean that the motor could present a higher holding torque for a given position, since any mechanical force applied to move it from the specified rotation angle could cause the feedback circuit to supply more current to 'correct' the deviation. Similarly, it might be able to accelerate and decelerate more quickly, and even 'catch up' steps that a 'simple' stepper motor drive would go uncorrected. But this is all speculation on my part.

---------------

Thus, I would naively presume that from the microcontroller viewpoint, it is 'just a stepper motor', with a controller that supports microstepping, that must be driven at fairly high micro step rates (300kHz is specified) to achieve the full rotation speed range. It may have different acceleration, etc. characteristics, but the characteristics of 'simple' stepper motor wil also vary with mechanical loading, available electrical power and so on, so that should be part of the conventional 'tuning' problem.

------------------

Hence, my naive suggestion, is consider 'forgetting' the 'servo' part of the description, and look for a microcontroller + software library combination that claims to achieve  a stepper motor drive designed to cope with the microstepper controller types with large numbers of microsteps per step, and hence, high frequncy pulse rates.

@inq clearly has a lot of experience in the area of driving stepper motors, and I am sure his comments about carefully 'tuning' the acceleration and deceleration are highly pertinent.

Sorry this is 99% waffle instead of a proper answer ... and worse still, it may be more than 99% wrong ... I make no claims of accuracy about my speculation. That is for you to judge.

Sorry, but research can be like that at times ... if you are doing something unusual you have to search around until you become the expert.

Best wishes with your project, Dave


   
ReplyQuote
(@davee)
Member
Joined: 3 years ago
Posts: 1658
 

Hi @jamesgi001,

  I just ran this code on my Mega - got high RPM but torque disappeared

I suspect this is the story of every electric motor .. the faster it moves, the higher the back emf, which limits the current flow.

In addition, basic physics (in a straight line)  says

  Work done (energy) = force * distance

which when converted into a rotary form, implies that for a given amount of power, the higher the revolution speed, the lower the torque.

To a limited extent, a feedback system, can increase the power to try to maintain the torque, as the revolution speed increases, but at some point it will reach 100% of available drive.

I have no idea if your motor is capable of providing more than you are observing .. this is down to the data sheets and so on, assuming your power supply is not the limiting factor.

Good luck, Dave


   
ReplyQuote
(@jamesgi001)
Member
Joined: 1 year ago
Posts: 13
Topic starter  

Thanks again @davee - I ran some tests last night and it seems I am not getting the right torque at high RPM. I am waiting on the RS232 to USB cable I ordered to arrive so I can look a bit under the hood to see that is happening. Think I may need to adjust some of the parameters to get the same result as Clough 42 was getting i.e. quite linear torque right throughout the RPM range. It also supposed to have a peak torque function that can boost the power for a few seconds. I need to figure that one out as it is currently stalling.

I like the fact, however, that this motor doesn't require cycling the power to recover from a stall, it just tries to start again. - the stepper I was using previously had to be powered down completely to clear the alarm state.

I will check the power supply amps as you suggest as well - thanks for all the interesting feedback and suggestions. @inq indeed has some good knowledge here as well.

 


   
DaveE reacted
ReplyQuote
(@canciger35)
Member
Joined: 10 months ago
Posts: 1
 

Hello @Jamesgi001;

I have acquired the same ISTV 130W servo motor from Stepperonline and I am interested in driving the motor with a time-history varying speed. My application is a flow circuit simulator for blood circulation, so the intent is to replicate pulsatile blood flow with this servo motor running a gear pump. 

I can drive the motor with pulses generated by Arduino and with RS232 cable I can adjust the microstepping so that I can achieve higher RPM values. The tuning software seems to have a lot of capability like communicating with the driver to get position and velocity feedback. And with the simple test application one can define different velocity and position drive. So I assume if one can access the serial communication with RS232, that would be the ultimate way of controlling the servo motor. I just do not know if and how that is possible. Can you please share where you are at with you project. I am very interested in what you have achieved and where you are with your project. Thank you for your reply in advance.

 

Best regards,

 

Can Ozcan

Mechanical Engineer

 


   
ReplyQuote
Page 1 / 2