Notifications
Clear all

StepperOnline NEMA 23 Integrated Easy Servo Motor iSV57T-130

14 Posts
5 Users
4 Likes
725 Views
Jamesgi001
(@jamesgi001)
Active Member
Joined: 2 months ago
Posts: 4
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)
Famed Member
Joined: 2 years ago
Posts: 2218
 

@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.

Experience is what you get when you don't get what you want.


   
ron bentley reacted
ReplyQuote
Ron
 Ron
(@zander)
Famed Member
Joined: 2 years ago
Posts: 3915
 

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

Arduino says and I agree, in general, the const keyword is preferred for defining constants and should be used instead of #define
"Never wrestle with a pig....the pig loves it and you end up covered in mud..." anon
My experience hours are >75,000 and I stopped counting in 2004.
Major Languages - 360 Macro Assembler, Intel Assembler, PLI/1, Pascal, C plus numerous job control and scripting


   
ReplyQuote
Ron
 Ron
(@zander)
Famed Member
Joined: 2 years ago
Posts: 3915
 

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???

 

Arduino says and I agree, in general, the const keyword is preferred for defining constants and should be used instead of #define
"Never wrestle with a pig....the pig loves it and you end up covered in mud..." anon
My experience hours are >75,000 and I stopped counting in 2004.
Major Languages - 360 Macro Assembler, Intel Assembler, PLI/1, Pascal, C plus numerous job control and scripting


   
ReplyQuote
Will
 Will
(@will)
Famed Member
Joined: 2 years ago
Posts: 2218
 

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.

 

Experience is what you get when you don't get what you want.


   
ReplyQuote
Ron
 Ron
(@zander)
Famed Member
Joined: 2 years ago
Posts: 3915
 

@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)

Arduino says and I agree, in general, the const keyword is preferred for defining constants and should be used instead of #define
"Never wrestle with a pig....the pig loves it and you end up covered in mud..." anon
My experience hours are >75,000 and I stopped counting in 2004.
Major Languages - 360 Macro Assembler, Intel Assembler, PLI/1, Pascal, C plus numerous job control and scripting


   
ReplyQuote
Inq
 Inq
(@inq)
Noble Member
Joined: 10 months ago
Posts: 981
 

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, Access Point 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)
Famed Member
Joined: 2 years ago
Posts: 3915
 

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

Arduino says and I agree, in general, the const keyword is preferred for defining constants and should be used instead of #define
"Never wrestle with a pig....the pig loves it and you end up covered in mud..." anon
My experience hours are >75,000 and I stopped counting in 2004.
Major Languages - 360 Macro Assembler, Intel Assembler, PLI/1, Pascal, C plus numerous job control and scripting


   
ReplyQuote
DaveE
(@davee)
Prominent Member
Joined: 2 years ago
Posts: 788
 

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
(@jamesgi001)
Active Member
Joined: 2 months ago
Posts: 4
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 2 months ago by Jamesgi001

   
ReplyQuote
Jamesgi001
(@jamesgi001)
Active Member
Joined: 2 months ago
Posts: 4
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 2 months ago by Jamesgi001

   
ReplyQuote
DaveE
(@davee)
Prominent Member
Joined: 2 years ago
Posts: 788
 

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
(@davee)
Prominent Member
Joined: 2 years ago
Posts: 788
 

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
(@jamesgi001)
Active Member
Joined: 2 months ago
Posts: 4
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