I’m using a Mini Maestro 18 channel usb servo Controller to control 15 servo Motors. I’m using basically the C# code from the Easy example. The Jumper on the Maestro is not set. The Maestro is connected to USB all the time. The motors are powered (5V) via Maestro and the Controller via USB. Only one servo is controlled at a time.
Sometimes the command device.setTarget(channel, target) throws an exception saying it could not set the target. I also get this Problem when I use the Maestro Control Center. Then the control Center reports error code 0x1f.
To recover sometimes it is enough to call device.clearErrors() and device.reinitialize(), sometimes this is not possible and the only way to recover is to reset the Maestro via reset pin. The Maestro control Center reports “Connection lost”.
It seems that when a servo Motor cannot move properly or is blocked I see the exceptions thrown more often.
Two of the servo motors are now damaged because of this problem.
What could be the problem and how to solve it?
How can it be that the problem occurs more often if the servo is blocked?
It sounds like you might be powering the Maestro’s servo power rail from its on-board 5V (out) pin, which is not a good idea. The 5V (out) power output can only source a maximum current of about 20mA (when VIN is powered) to 500mA (when powered through USB only), and servos can easily draw more than that when starting to move or strain. When your servos draw more current than the USB port is able to source, the voltage could drop low enough for the Maestro to reset and the USB port could shut down to protect itself from damage, which would probably explain the behavior you are seeing.
You should power your servos from a separate power source. As a reference, we generally recommend budgeting around 1A per standard size servo. It might be helpful to read about the different ways of powering the Maestro in the “Powering the Maestro” section of the user’s guide. Additionally, with 15 servos connected, you will probably need to power the servos in separate banks to prevent too much current draw through the Maestro power rails. You can learn more about that in this forum post.
As for your second question, it is possible for some servos to damage themselves when straining against their end stops or when being stalled, so if your setup or testing causes the servos to strain like that, you could risk permanent damage to them.
Thank you for your answers.
I guess I was not clear enough in my description what I am doing. I am using an external power source for the servos. My wiring is as follows (see attached Image):
VSRV=VIN Jumper: not connected
Servo channels 0-14: connected to servos (all 3 Pins)
servo power (VSRV): connected to external 5V power source
servo power: not connected
USB: connected to PC
At one time only one servo is active. all others are disabled. (device.setTarget (ForAllChannels, 0))
What could cause my described Problem?
Thank you for clarifying your setup. I am not sure what is causing the problem. To help determine whether the issue is due to the Maestro or the servos, can you try disconnecting all of your servos from the Maestro and running your program again to see if you get the same errors? Also, can you try connecting just one of your servos (that you know is working) and running the MaestroEasyExample from the Pololu USB SDK without any modifications?
What type of 5V supply are you using? What is its current rating? What servos are you using? (It would be helpful if you post a link to some information about them.) Can you post a video showing the behavior of your servos and pictures of all your connections? Also, it sounds like you are getting multiple errors, can you post screenshots of them too?
Thanks for your replay.
In image “Maestro wiring.jpg” you see the connections to the servo controller. The yellow cable is used to reset the board in case of crash. When we saw we have errors we added this reset workaround. The red and black next to the yellow are not connected.
In Image “servo.jpg” you see the used servo. Here’s a linkhttp://www.conrad.ch/ce/de/product/ … R?ref=list
The power supply is this:
distrelec.ch/de/Schaltnetzte … p/16988853
It has 5V and 3A.
First all servos are connected and I switched one at a time using Maestro Center Software. Servo 0 is not running smoothly, servo 1 is running smoothly. Servo 0 gives Errors very often, servo 1 has Errors less, like once every 5 times switching. See screenshots 01-04.
Then I disconnected all servos and run my Software. Here i could not see errors. All fine.
Next I connected one servo at a time. Again servo 0 has Problems, servo 1 less. I see the same behavior as when all servos were connected. See screenshots 05-08.
The servo 6 has no working resistance (I mean it does not move anything, just its servo arm). On this servo i could see no errors.
Thanks for your help.
Thank you for posting all those pictures. It sounds like you might be getting noise on the USB port. You could try using a USB cable with ferrite beads at one or both ends (preferably the latter). You might also try adding a powered USB hub between your Maestro and computer or using different power supplies.
Thank you for replying, Amanda.
I tried an USB cable with ferrites on both ends. This had no effect.
We already use an USB hub with its own powersupply.
I will test your idea about a different power supply for the servos and come back with an update.
Uff the problem is solved.
When there was an electrical connection from the screw in the servo that holds the servo arm to the metal plate (which is electrical ground) then the servo Controller immediately crashes. For some reason we only had this electrical connection at some of our servos and not always. I guess this caused some kind of ground loop.
Now we fixed it by isolating the servo arm to the rest of the system.
Thanks for your support.
Great! I am glad you were able to find the problem and get it working. Thank you for letting us know.
Your project looks really interesting; we would love to see more pictures or a video of it!