r/c servo internal pulses

Gordon McComb wrote:

they
it
at
plastic
whether
to
In
a
simply
Given
Ok, Gordon, I pulled apart a servo and did some measurements. One of your favorites, GWS [S03TXF]. Found some interesting things.
1. The internal electronics holds about 2v "dc" on both sides of the motor winding continuously, with external pulses on or off. At first, I thought this was like active braking, but it doesn't really have any effect, since the motor is stopped anyways.
2. I dislodged the motor, so it would run open-loop. In this case, you do see pulses applied to the motor, but only when the pot is near the equilibrium point - ie, balancing the applied pulsewidth from the servo controller. For large offsets of the pot [akin to a modified servo running fast], the pulses go away and you see essentially constant dc voltage, with the average level proportional to the speed the motor is running. Acts like a normal dc speed control. There is some ripple on the dc.
3. There is quite a bit of drift on the pot/electronics. If I set the pot to stop the motor, after a minute or so, the motor starts moving again slowly.
4. With the motor pushed back in and operating closed-loop, there are no pulses across the motor, when the servo horn is at its holding-position. However, when the servo horn is torqued away from its holding-position a bit, you see fixed-voltage pulses about full +/-2v, and "constant" length = 2-msec long, regardless of update rate from the controller, or whtether it's sending 1, 1.5, or 2-msec pulses. The polarity of the pulse across the motor depends upon which way you push the servo horn.
5. If you now push on the servo horn, the servo fights back by increasing the motor-pulses from 2-msec to as long as 10-msec, for really hard torques on the servo horn. This seems to be how it increases holding torque.
6. I tried changing the update from the servo controller from 50-msec [20 hz] to 4-msec [250 hz]. Below about 4-msec or so, the internal loop can't stay up with the external pulses, and the control loop crashes. Also, if you push on the servo horn until the motor-pulse is longer than the time between incoming pulses from the external controller, the internal control loop turns bistable, and locks-up on the long pulses - and the servo horn loses its holding capability. This happens with the incoming updates at 7-msec [140 hz] or so, if you push hard enuf on the servo horn. This is obviously the limit for these servos. Beyond some point the internal electronics just can't stay up with the external pulses coming in, and the loop locks up. What fun.
7. Unfortunately, it seems to cannot get more torque out of modified servos by increasing the update rate, since when they're open-loop, they're not being pulsed, but rather controlled with dc voltage. [#2, above].
Anything else I should try?
- dan michaels www.oricomtech.com =====================
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
On Sun, Apr 24, 2005 at 06:09:29PM -0700, dan wrote:

This is great sleuthing, Dan! Thanks for taking the time to do this, and especially for sharing your findings.
-Brian
--
Brian Dean
BDMICRO - ATmega128 Based MAVRIC Controllers
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Brian Dean wrote:

of
Seems I also managed to overcook the servo in the process :). Now that it's back together, it's acting kinda funny. Groaning and having trouble finding its stable point.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
dan wrote:

Actually I used an S06. The S03 is a little different internally, and is designed to be a drop-in replacement for the Futaba S-148. In fact, mechanically it is nearly identical to the S-148.

Since the motor is not grounded, I assume 2v would be a floated ground, with reference to the servo ground. If both terminals are at 2 vdc, then to the motor that's the same as 0 vdc difference.

Prolly too short of pulses to do anything, right? What were their length over period?

I think you'll find the drift reduces over time as long as the servo is continuously running. The drift is most likely temperature-based.

Given this, this particular servo may not be able to be updated faster than 100 Hz (with safety margin). That's still double the normal frame rate, though. Any difference in apparent torque at 50 Hz verus 100 Hz?

I think this follows. The error signal never changes in an open-loop servo, though maybe you could do some on-the-fly pulse width hacks in the controller to simulate it. In any case, the torque increase is really more desirable for the walkers we've been talking about, which would use unmodified servos. Two 50-60 oz-in motors running a small wheeled robot is usually more than enough.
-- Gordon
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Gordon McComb wrote:

the
ground,
then
Exactly. I measured votage separately on both sides of the motor w.r.t. the black wire servo lead to get the resting 2v levels for item #1, and measured differentially to get the actual motor signals in the other items.
I am kind of surprised that they don't hold the levels at gnd, since it seems you have to have the h-bridges 1/2 turned on to hold steady 2v dc level. Why not just apply full 5v pulses each direction ????? ============

you
the
servo
length
In the open-loop case, the pulses seen when the motor was almost stopped were the same as listed below, ie, standard 2-msec long. However, as the servo horn [ie, pot] was rotated and the motor started running faster, the pulses quickly got longer and then disappeared so just a montonically-increasing average d.c. level was seen across the motor. ===============

faster
frame
Hz?
Not sure. I'd need some calibrated weights to figure this. However, as indicated, when you go to 100-hz from 50-hz, you get 2X as many pulses [of the same 2-msec length] across the motor windings, so they're being powered 2X as long, which should translate into about 2X more torque. Ie, looks like
50-hz (18-msec/off, 2-msec/on in 20-msec) ___________|-|___________|-|____
100-hz (8-msec/off, 2-msec/on, times 2/reps in 20-msec) ____|-|____|-|____|-|____|-|____
================

modified
[#2,
In the open-loop case, which reverts to controlling the motors with a d.c. level, it seems you do lose some of the low-speed torque advantages of the usual PWM-controlled h-bridge. For continuous rotation, it might work a little better to gut the electronics and use a regular h-bridge.
- dan michaels ====================
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
dan wrote:

Exactly as predicted. So the thing to do is find some servos that allow for higher frame rates before locking up. My gut feeling is that, at least for the newer versions, servos from Hitec and Futaba will yield a little better result. They've been at the business for longer.
I think it's logical to assume that anything below 4ms frame will cause unpredictable behavior, because the pulses come faster than the longest pulse duration (figure about 2.5ms, with some margin for comfort). Shooting for a frame rate of between 100 to 150 Hz sounds like a good compromise.
-- Gordon
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Gordon McComb wrote:

allow
a
cause
longest
than 100-hz updates max, as I was able to get it to lock-up when pulses were coming every 7-msec [140-hz rate]. It's conceivable that, if you get too close to the freq where lock-up can occur, then a strong impact on the servo horn might push it over the edge.
And I'll probably not try this experiment with any of my other servos, as the GWS is acting a little flukey now. I think doing the lock-ups probably about cooked the h-bridge chip in the servo. To reiterate what happened during lock-up, pushing the servo horn hard enuf increased the length of the pulse across the motor to longer than the time between incoming pulses ....
|-|______|-|______ external signal pulses (140-hz rate) __|----------|_____ motor signal (long 5v pulse)
This caused the servo horn to lose its push and go kinda limp, so I assume the h-bridge was being triggered into some manner of shoot-through state, with all 4 switches turned on in some abnormal timing fashion. Which probably overheated it. Also, the servo wouldn't come out of lock-up until I shutdown the signal pulses from the external controller.
- dan ============
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
dan wrote:

I did some rough and ready tests on a servo a few weeks ago and was quite surprised by the results. I too experienced odd behaviour with a command frequency of 100Hz. I did some comparative torque measurements and the results can be found here:
http://www.outsider.plus.com/Overclock_Servo.html
And by no means are they scientific or absolute.
Paul Crouch www.outsider.plus.com
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
dan wrote:

I can send you some other samples of servos if you're interested. You may have crunched up the pot in the GWS with all the torquing. (On these when the H-bridge goes, it just goes. The servo will then only go in one direction -- maybe -- and usually runs slow. You can test this by removing the output gear and running the servo in free mode. If the servo acts erratically as you turn the pot, the pot is bad.)
Also, what is the age of the GWS S03 you used? Does it have a "CE" insignia of any type on the bottom? Is the pot shaft brass or plastic?
-- Gordon
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Gordon McComb wrote:

servos,
these
one
Actually, if you have a couple of more servos of different types, like Hitec/Futaba/etc, that are a little oldish and you might not mind being wrecked by the super-thumb pushing on the servo horn, I'd be interested in jiggering them too - just to compare how different servos might work. Now, that I've got all the protocols down :). Be interesting to know if they all use similar control pulse schemes on the motors.
The way the jiggered-GWS is running now is basically that it grinds a little [possibly I warped some of the gear teeth], but more that when it goes to its set position, it moves over fast, but then does a little dance at the end before settling down. Might be pot or control-loop problem. It still goes both directions and the speed seems normal. ==============

plastic?
Well, it does have a CE on the bottom [whatever that means] and pot shaft is plastic, but I'm sorry to say that the particular servo I used had just arrived in the mail the day before I jiggered it :-(, so it's prolly fairly new-age. Should have used one of my 3-YO already flakey servos, but I didn't realize what I was doing to the poor GWS until it was already done, so !!! Who knew that pushing on the horn when running 140-hz updates would lock-up the control loop?
- dan ==============
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here. All logos and trade names are the property of their respective owners.