Unwanted Pauses and Jumping

Hello All,

I am using a Micro Maestro 6-Channel USB Servo Controller and seem to have a problem with controlling one, two or three, the servos. When sending commands to the controller, the processing of the commands on the controller will appear to pause (up to 30 seconds) and the servo will suddenly jump (most of the time) to the last position sent to the controller. The problem occurs with a single servo, or multiple servos. I have a three servo setup and all three servos will freeze at the same time and then jump to the position of the last command sent. The red error led never comes on when the problem occurs.

From outward appearances, it would appear that the Maestro Controller seems to accept the incoming commands, but for some reason randomly stops processing of the commands. Then suddenly executes the last command sent for each servo. Just guessing, this will happen with 1 in 100 movement commands. The length of the delay is one second to thirty seconds.

I can create the issues when using the Maestro Control Center using the sliders in manual mode, or with a custom C program running under Linux. I have not played with the Maestro scripting.

With the C program I have tried to poll if the motors are still in motion reading in a blocking mode, but it seems to hang on the read randomly (maybe 1 in 25 reads) and never recovers. The hang is on the read (I am assuming it is blocked). I am not sure if this is related to the freeze/jumping issue. This could be a issue with my program.

There is very little load (weight) on the servos. The power supply is 5.1 volts measured and is a converted ATX power supply so it should have enough power to drive the servos.

Since I can recreate the problem with the Control Center running under windows I am excluding my programming as being the issue.

All three servos will freeze at the same time, so I am excluding the servo as being physical bad. (this may be a bad assumption).

I am at a loss as to what might be wrong. Does anyone have any thoughts?

Thanks,
Steve

Complete Configuration:

Pololu Maestro Control Center Version 1.4.0.0
Windows 7/Ubuntu Linux
Micro Maestro 6-Channel USB Servo Controller
Configuration:
USB Dual Port
Enable CRC: No
Device Number: 12
Mini SSC Offset: 0
Timeout: 0
Never Sleep: Tried enabled and disabled
Firmware version 1.01

Power Supply: ATX power supply 5.1 V

Three Servos: GWS S689-2B/MG

Hello, DeltaBot.

Do you see any evidence of the problem except for the servos physically pausing? For example, can you tell just by looking at the status tab of the Maestro Control Center, or by watching the LEDs on the Maestro? If so, to exclude the possibility of some kind of power or noise problem, could you try the same thing but with everything disconnected from the Maestro? If disconnecting everything causes the problem to stop, it is likely to be a power/noise problem.

-Paul

Hi Paul,

Thank you for the response. I had to blow the dust off of some of my test equipment.

Strangely enough the problem is not occurring as often as it was. I am not sure what the difference is.

I was able to recreate the problem with a simple Mastero Script. It now takes about 3 to 5 minutes for the jumping to occur. See script below.

When the problem occurs, there is no noticeable difference in the Maestro Control center or in the blinking of the lights on the Mastero 6 board.

The power supply being the issue is an excellent suggestion, but I am not sure what to look for in the case of Servos. I pulled out my old storage o-scope and a dvm, and took some measurements. I was not able to get any measurements when the pausing/jumping was occurring.

The power supply is a ATX computer power supply. The +5 line is rated at 40 amps. With no load, I can not see any voltage ripple with the scope. With all three servos running I would see an occasional 1 volt peak to peak ripple over 20 ms. The dvm, measured a peak draw of 3.8 amps.

I did not use the scope to look at the current draw. I have no idea how responsive the power supply is to jumps in current. Could the sudden jump in current be causing the servo to stall even thought the power supply is rated at 40 amps?

Thanks,
Steve

begin

  8000 0 servo
  8000 1 servo
  8000 2 servo

  500 delay

  4000 0 servo
  4000 1 servo
  4000 2 servo

  500 delay

repeat

Hello,

A power supply, whatever its specs, is not going to be as reliable as a battery. It could be broken, responding poorly to the load, or getting knocked out by noise. If you are not seeing any indication of the problem from the low-power side of the Maestro, and it happens both with a script and when controlled with the status tabs sliders, you are almost certainly seeing a power problem. Could you try replacing it temporarily with a battery pack (e.g. 4 NiMH AA cells) and see if that solves the problem?

One thing that can cause power problems is long leads - see our articles on LC Spikes and reducing motor noise for some tips. So, how long are your leads? Could you post a picture of your setup?

-Paul

Hi Paul,

The problem is fixed. It was entirely self induced or more correctly induction. :slight_smile:

You are correct, it was a power issue. The setup on my workbench had a rats nest of power cables next to the power strip, and the ATX power supply. The power to the servos was a couple of inches away from the power cables. How frequent the problem occurs is directly related to the distance of the servo power wires to the rats nest. This explains why I was not able to see the noise on the scope because I had move the wires to hook up the probes. It also explains not being able to reproduce the problem with the scope attached.

I did not realize that servos were so sensitive to noise. This will be a consideration when working on the final project design, and a decoupling caps will be also added.

Your products are great! I really like the controller and servos. They are working very well with a laptop controlled delta robot.

Thanks you for your help!
Steve

Hi Steve,

It’s great to hear that everything is working for you now. I still think that it is more likely for your power supply to shut off for 10 or 30 seconds at a time than for multiple servos to misbehave in a coordinated manner. But anyway, good luck with your project, and please do post pictures or videos of this delta robot if you have some - we would love to see it!

-Paul

Hi Paul,

You could be correct about the power supply cutting out. That would make sense, and explain everything. If the problem comes back, I’ll try to get some measurements to confirm it.

Here are a couple of pictures of the delta bot (yes, the power has been disconnected). It is meant as a proof of concept that I can build such a machine, and get the math correct. This version is built with scrap aluminum, PVC pipe, zip ties, and duct tape. The next step is is to see how accurate I can get it. My end goal is rather ambitious, and that is a pick and place machine for smd parts.

If I have time this week, I’ll try to shoot some video of the movement.

Thanks,
Steve




Your robot looks awesome - thanks for posting the pictures! I can’t wait to see the video.

-Paul

Hi, Steve.

I added your delta robot to our community projects page. Nice robot!

- Ryan