SSC-32U: Stop servo power

Hi,

I read the online PDF and I didn’t find an option to stop the power on a motor. Based on the arm documentation, motors should not be used more than 25% of the time. In my project, I grab an object, place it in front of a camera where lot of imagine analysis is taking place. While of this processing is running, I want to stop the power on the motors, so they can rest.

Grabbing the object and moving it to the camera will probably take less time that the imagine processing. So if I can stop the motors while doing that, it’S already a 50% rest. I just have to add an extra 25% rest time and then robot can run continuously. (25% move the piece, 50% process the image, 25% rest)

So question is, is there such a command, and if not, what are the alternatives?

Thanks,

JM

1 Like

Hey @jmspaggi,

While there is no way to tell an RC servomotor to stop being powered, there is an indirect way to make them go limp (most of them, anyway): remove the RC PWM control signal from its input pin! Most RC servomotors will go limp if they don’t receive a control signal continuously.

A little known fact of the SSC-32U is that you can not only produce RC PWM control signals (from 500-2500 µs lengths) on each of the 32 channels but also a simple digital high or low, using something like #0P0\r (low) or #0P65535\r (high). Of course, setting a channel to a digital low or high is not a valid RC PWM control signal which will cause most RC servomotors to go limp. This usually allows your motors to rest.

As far as I know the RC servomotors used in Lynxmotion products all respond to this by going limp.

As long as you are aware that making the RC servomotors go limp will drop the arm down (unless you have it on a resting position where it is supported), you should be fine. Most users in these cases will either:

  1. Move the arm to an object and grab it, move the object to where it needs to go, let go of the object and move the arm to a resting position and then go limp until the next part of the task.
  2. Move the arm to an object and grab it, move the object to where it needs to go which also happens to have a resting place or support for the robotic arm and then go limp until the next part of the task.

Well, I hope this helps! Good luck with your project! :smiley:

Sincerely,

Haaa, awesome! Thanks a lot. Exactly what I need. The arm will put the object in a place where there will be some supports for its resting position.

Thanks again.

JM

1 Like

Is that possible that the base servo (HS-485HB?) doesn’t react the same way? When I “turn off” all of them, I can still hear this one vibrating a bit :-/

1 Like

Well, it is possible that some batches of the HS-485HB may be different, that I cannot confirm. I’d try it, but I do not physically have any AL5D or their motors (quarantine and all). That being said, the base servo is the one with the least load on it and therefore it shouldn’t be much of an issue. If it does seem to get too hot maybe add a small USB fan or something to blow air on it / add air flow

The servomotors that typically fail on an AL5D from over use are:

  1. The gripper. Often new customers will use it to grab objects and then leave the servomotor forcing against the object for long periods of time, quickly damaging the servomotor. Always try and only go slightly “into” the object and don’t do it for too long.

  2. The shoulder. This can happen when heavy loads and fast, abrupt motions are used. The shoulder carries the weight of the entire arm and therefore provides the most torque and is more likely to heat up from heavy use for a long duration.

  3. The elbow. Less likely, but in some motions can also be forced to produce high amount of torque, causing it to heat up.

As a general tip, if creating new motions that will be repeated often simply check the temperature of your RC servomotors regularly and see if any become too hot. If so, you may need longer cool downs periods for that joint or maybe change the way you do motions to reduce strain on it if you cannot change timings due to other restrictions.

On the off chance that this is the case, is it possible you sent the command meant for the base servo to the wrong channel? An easy way to test this is to exchange the connection to the SSC-32U of two of your RC servomotors, example the base and shoulder. Then, run your code that turns of signal to all the servomotors. Does the should turn off (when connect to the base’s channel)? What about the base motor (connected to the shoulder’s channel)? This should give us more info about where the issue is (code, SSC-32U, servomotor itself).

Sincerely,

Got it! Thanks. Seems that it was an issue in my code. I removed the gripper to replace with a vacuum pipe. So less wait on no risk on that side.

Thanks again for your help.

JM

1 Like

Cool! Glad you could fix it.

Ah, neat!

No problem!

@jmspaggi Care to create a robot post showing what you did? It’s semi-custom so might be eligible for the “robot of the month” contest.