Asked — Edited

Servo Flutter And Incomplete Range

I have a couple of 9g mini servos attached to my board and I am getting some odd artifact from them. One of them will rotate one direction fine, then as I try to rotate back, about half way through the rotation, it starts to flutter uncontrollably. The second servo opens a gripper but it will not open completely all the time and it never closes completely (always leaves a 1 inch gap). I have tried them both with horizontal and vertical servo controls. I can take some video tonight when I get home and post it.


ARC Pro

Upgrade to ARC Pro

Synthiam ARC Pro is a new tool that will help unleash your creativity with programming robots in just seconds!

PRO
Synthiam
#1  

Those little servos are pretty cheap. The EZ-B has amazing accuracy for its PWM of servo control. Its very very steady. If a servo flutters, it's due to the servo not the EZ-B :)

You can see the PWM that EZ-B broadcasts for Servos by following this link: https://synthiam.com/Tutorials/Hardware.aspx?id=4

#2  

Bret you want to.look into high speed digital servos. Commonly used in helis and small planes. When signals are given to a servo faster than the servo can process them (they call that servo resolution in rc) it will flutter around. Maybe you can slow down the pwm signal from ezb? Or better digital servo

PRO
Synthiam
#3  

@jstarne1 it's not getting the pwm too fast. It's most likely a dirty POT, or cheap POT in the servo. The servo is trying to hold position, but the pot is bouncing voltages around.

Servos are quite simple, but usually ppl use them incorrectly. A servo pulse repeats every 20 ms ... As you can see from the hardware page, i repeat from point to point 20ms, with incredible accuracy. Notice it's accurate to the 8th decimal place (or something like that).

Some servo controllers, well most... don't take the pulse width into consideration for their 20ms loop. For example, if the pulse is 1.2 ms, the total loop time maybe 21.2 ms... then if the pulse is 2ms, the total loop time will be 22ms. That is wrong, and will make servos jitter. The EZ-B does not do that.

For example, this guys video is VERY incorrect. He does it entirely wrong. Watch when he adjusts the servo position, the pulses are pushed further apart from each other. That is because he's not taking in count the high pulse time. Most servo controllers (and arduino) do it this way. Which is why their servos are really glitchy.

If you experience any glitch with the EZ-B, that is due to the servo, not the EZ-B :)

#4  

Thanks dj.that's.good info for troubleshooting for sure. Are all servos on the same time scale? Does.it vary servo to servo? I know some stuff does not directly transfer from rc so this info is valuable.

#5  

Found the solution: One servo was binding up so had to adjust the mechanical claw. The other servo was just junk, replaced it and now all is good. Thanks DJ.

PRO
Synthiam
#6  

@jstarne1 You bet they are all different. I don't know who came up with the original standard, but it was supposed to be between 1ms and 2ms with a 20ms repeat.

Out of no where, all of these servos started advertising more range, and therefore needed more than 1ms pulse. Then other R/C receiver and transmitters started making models to be specific to their servos.

Now it is just a mess and servos have different ranges. They all work between 1ms and 2ms, but you won't get the full range offered by the servo.

My solution was to extend the range with the EZ-B. That is why my Pulse Width in the standard servo documentation is less and greater than the standard. If I followed the standard, we wouldn't be able to embrace the full range for our non-standard servos.

I'd rather conform than fight the battle:) I've been assimulated!

#7  

Being assimilated isn't bad as long as you end up the King of the hive ! :)