Yahoo Groups archive

AVR-Chat

Index last updated: 2026-04-28 22:41 UTC

Thread

futaba S3003 servo

futaba S3003 servo

2004-06-19 by jay marante

i don't know much bout the servo motor except that i have to use PWM to make it rotate. i need some basic info bout it. can i rotate it back-and-forth? also, what should i do to make it rotate more than 360 degree? thanks...
-jay

Do you Yahoo!?
Yahoo! Mail is new and improved - Check it out!

Re: [AVR-Chat] futaba S3003 servo

2004-06-19 by David VanHorn

At 09:27 AM 6/19/2004 -0700, jay marante wrote:

>i don't know much bout the servo motor except that i have to use PWM to make it rotate. i need some basic info bout it. can i rotate it back-and-forth? also, what should i do to make it rotate more than 360 degree? thanks...

Most RC servos can't do 360 degree. 

Typically, a pulse of 500uS to 1500uS will drive them from end to end of their range.

The pulse width tells the servo what position you want.

Re: futaba S3003 servo

2004-06-19 by Phil

Servos can be modified to make them rotate 360.  I've done it for a 
number of GWS servos.  If the FS3003 uses plastic gears (and I think 
it does) then its pretty easy.  you will have to remove the "nub" 
that prevents rotation and disconnect the feed-back pot. google for 
servo modification - there are numerous pages on this topic.

PWM control of the servo typically is a 1-2 mS pulse within a 10 mS 
window.  A 1.5 mS pulse is neutral (no rotation), a 1.0 mS pulse is 
full speed one direction and 2.0 mS is full the other.  Proportional 
values for proportional speeds (i.e. 1.75 mS is half speed, approx).

--- In AVR-Chat@yahoogroups.com, David VanHorn <dvanhorn@c...> wrote:
> At 09:27 AM 6/19/2004 -0700, jay marante wrote:
> 
> >i don't know much bout the servo motor except that i have to use 
PWM to make it rotate. i need some basic info bout it. can i rotate 
it back-and-forth? also, what should i do to make it rotate more than 
360 degree? thanks...
> 
> Most RC servos can't do 360 degree. 
> 
> Typically, a pulse of 500uS to 1500uS will drive them from end to 
end of their range.
> 
> The pulse width tells the servo what position you want.

Re: futaba S3003 servo

2004-06-19 by Phil

--- In AVR-Chat@yahoogroups.com, David VanHorn <dvanhorn@c...> wrote:
> At 07:12 PM 6/19/2004 +0000, Phil wrote:
> 
...
> 
> Modified, yes. Stock, no.

agreed, but he asked how...

> 
> The ones I've seen, have been 500 - 1500uS

Interesting, which servos did you see this in?  I know that futaba, 
gws and several others use 1-2 mS.  I thought it was a standard.

Here's a page that describes the mods for the S3003 and talks about 
the PWM pulse lengths.
http://www.kronosrobotics.com/an116/GAN116_3003.htm

By the way, the instructions call for a snipper to cut off the 
rotation stop nub but I used a heated xacto blade to get a smoother 
result.  order a replacement gear set, by the way.  if you dont need 
it good but if you do you'll be glad you did.  they are pretty cheap.

Phil

Re: [AVR-Chat] Re: futaba S3003 servo

2004-06-19 by David VanHorn

At 07:12 PM 6/19/2004 +0000, Phil wrote:

>Servos can be modified to make them rotate 360.  I've done it for a 
>number of GWS servos.  If the FS3003 uses plastic gears (and I think 
>it does) then its pretty easy.  you will have to remove the "nub" 
>that prevents rotation and disconnect the feed-back pot. google for 
>servo modification - there are numerous pages on this topic.

Modified, yes. Stock, no.

>PWM control of the servo typically is a 1-2 mS pulse within a 10 mS 
>window.  A 1.5 mS pulse is neutral (no rotation), a 1.0 mS pulse is 
>full speed one direction and 2.0 mS is full the other.  Proportional 
>values for proportional speeds (i.e. 1.75 mS is half speed, approx).

The ones I've seen, have been 500 - 1500uS
I did see enough variability that I added the ability to set min and max pulse width per servo, and the firmware then calculates pulse widths for an 8 bit zero to full scale motion per servo.

The sync gap can be shortened, to get more torque, up to a point.

Re: [AVR-Chat] Re: futaba S3003 servo

2004-06-19 by David VanHorn

>
>Interesting, which servos did you see this in?  I know that futaba, 
>gws and several others use 1-2 mS.  I thought it was a standard.

;For Futaba Servos
.equ    Futaba_Min      = 1000  ;Microseconds for minimum position
.equ    Futaba_Max      = 2000  ;Microseconds for maximum position
.equ    Futaba_Range    = (Futaba_Max - Futaba_Min)

;For Cirrus Servos
.equ    Cirrus_Min      = 400   ;Microseconds for minimum position
.equ    Cirrus_Max      = 2000  ;Microseconds for maximum position
.equ    Cirrus_Range    = (Cirrus_Max - Cirrus_Min)

;For JR Servos
.equ    JR_Min          = 1000  ;Microseconds for minimum position
.equ    JR_Max          = 2000  ;Microseconds for maximum position
.equ    JR_Range        = (JR_Max - JR_Min)

Pulled from my GSV5 code that does eight mix-and-match servos with 8 bit control

Re: [AVR-Chat] Re: futaba S3003 servo

2004-06-20 by jay marante

ok... assuming phil's data, this is what i sofar understand:
 
i should send a signal to the servo with 2ms (5V) to rotate it at maximum position and 1ms (5V) for minimum position. 
 
should i send this signal once (just sigle pulse) for the servo to rotate, say for maximum position? or should i send a continuous signal of 2ms length of 5V? and if that should be the case, what should be the length of the 0V in between the 5V signals? thanks...
 

David VanHorn <dvanhorn@cedar.net> wrote:

>
>Interesting, which servos did you see this in?  I know that futaba, 
>gws and several others use 1-2 mS.  I thought it was a standard.

;For Futaba Servos
..equ    Futaba_Min      = 1000  ;Microseconds for minimum position
..equ    Futaba_Max      = 2000  ;Microseconds for maximum position
..equ    Futaba_Range    = (Futaba_Max - Futaba_Min)

;For Cirrus Servos
..equ    Cirrus_Min      = 400   ;Microseconds for minimum position
..equ    Cirrus_Max      = 2000  ;Microseconds for maximum position
..equ    Cirrus_Range    = (Cirrus_Max - Cirrus_Min)

;For JR Servos
..equ    JR_Min          = 1000  ;Microseconds for minimum position
..equ    JR_Max          = 2000  ;Microseconds for maximum position
..equ    JR_Range        = (JR_Max - JR_Min)

Pulled from my GSV5 code that does eight mix-and-match servos with 8 bit control



Yahoo! Groups SponsorADVERTISEMENT


---------------------------------
Yahoo! Groups Links

   To visit your group on the web, go to:
http://groups.yahoo.com/group/AVR-Chat/
  
   To unsubscribe from this group, send an email to:
AVR-Chat-unsubscribe@yahoogroups.com
  
   Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service. 


		
---------------------------------
Do you Yahoo!?
New and Improved Yahoo! Mail - Send 10MB messages!

Re: [AVR-Chat] Re: futaba S3003 servo

2004-06-20 by David VanHorn

At 05:20 PM 6/19/2004 -0700, jay marante wrote:

>ok... assuming phil's data, this is what i sofar understand:
> 
>i should send a signal to the servo with 2ms (5V) to rotate it at maximum position and 1ms (5V) for minimum position. 
> 
>should i send this signal once (just sigle pulse) for the servo to rotate, say for maximum position? or should i send a continuous signal of 2ms length of 5V? and if that should be the case, what should be the length of the 0V in between the 5V signals? thanks...

I've always heard this delay referred to as the "framing delay".
If you were outputting for a transmitter, with 8 servos, you would send 
P.P.P.P.P.P.P.P_____ with the "_" part as the framing delay, and each "P"  is a pulse for a different servo.

I think there is some minimum delay between the pulses as well, but I never had to deal with this. 

The individual servo only sees P_____P_____ and every pulse is "for me".

I tried various framing delays from 20mS (very "steppy") to <10mS which didn't seem to show much improvement over 10mS.
Basically, the servos I tried, start running after the pulse finishes, then stop running if they don't get another pulse within 10-15mS

Re: [AVR-Chat] Re: futaba S3003 servo

2004-06-20 by jay marante

maybe i'll just have to go for some trail-and-error.
next, i don't know how thw PWM works. i'll use mega16L.
in general, how does the PWM work? and in AVR, how should i do this?
thanks for the help.

David VanHorn <dvanhorn@cedar.net> wrote:
At 05:20 PM 6/19/2004 -0700, jay marante wrote:

>ok... assuming phil's data, this is what i sofar understand:
> 
>i should send a signal to the servo with 2ms (5V) to rotate it at maximum position and 1ms (5V) for minimum position. 
> 
>should i send this signal once (just sigle pulse) for the servo to rotate, say for maximum position? or should i send a continuous signal of 2ms length of 5V? and if that should be the case, what should be the length of the 0V in between the 5V signals? thanks...

I've always heard this delay referred to as the "framing delay".
If you were outputting for a transmitter, with 8 servos, you would send 
P.P.P.P.P.P.P.P_____ with the "_" part as the framing delay, and each "P"  is a pulse for a different servo.

I think there is some minimum delay between the pulses as well, but I never had to deal with this. 

The individual servo only sees P_____P_____ and every pulse is "for me".

I tried various framing delays from 20mS (very "steppy") to <10mS which didn't seem to show much improvement over 10mS.
Basically, the servos I tried, start running after the pulse finishes, then stop running if they don't get another pulse within 10-15mS



Yahoo! Groups SponsorADVERTISEMENT


---------------------------------
Yahoo! Groups Links

   To visit your group on the web, go to:
http://groups.yahoo.com/group/AVR-Chat/
  
   To unsubscribe from this group, send an email to:
AVR-Chat-unsubscribe@yahoogroups.com
  
   Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service. 


		
---------------------------------
Do you Yahoo!?
New and Improved Yahoo! Mail - 100MB free storage!

Re: [AVR-Chat] Re: futaba S3003 servo

2004-06-20 by David VanHorn

At 05:38 PM 6/19/2004 -0700, jay marante wrote:

>maybe i'll just have to go for some trail-and-error.
>next, i don't know how thw PWM works. i'll use mega16L.
>in general, how does the PWM work? and in AVR, how should i do this?
>thanks for the help.


I didn't use PWM in my implementation.
I started the pulse by taking an I/O port high, then loaded timer 1 with the appropriate time interval. When T1 overflowed, I got an interrupt, and all I had to do there was shut off all the RC servo outputs, and increment to the next servo. 

Today, I would probably be more gutsy, and pulse all 8 servos at once, with the timer telling me when and which pulse to turn off. 

I posted the code, written for the 8515, but you can port it, on dontronics, and I think it's also in the yahoo web site for avr-chat.

Re: [AVR-Chat] Re: futaba S3003 servo

2004-06-20 by jay marante

how bout the PWM in in timer1? what's the appropriate PWM for the servo, the fast PWM or the Phase correct PWM? i don't know all of this. please bare with me. thanks.

David VanHorn wrote:
At 05:38 PM 6/19/2004 -0700, jay marante wrote:

>maybe i'll just have to go for some trail-and-error.
>next, i don't know how thw PWM works. i'll use mega16L.
>in general, how does the PWM work? and in AVR, how should i do this?
>thanks for the help.


I didn't use PWM in my implementation.
I started the pulse by taking an I/O port high, then loaded timer 1 with the appropriate time interval. When T1 overflowed, I got an interrupt, and all I had to do there was shut off all the RC servo outputs, and increment to the next servo.

Today, I would probably be more gutsy, and pulse all 8 servos at once, with the timer telling me when and which pulse to turn off.

I posted the code, written for the 8515, but you can port it, on dontronics, and I think it's also in the yahoo web site for avr-chat.


Yahoo! Groups Sponsor ADVERTISEMENT

Do you Yahoo!?
New and Improved Yahoo! Mail - Send 10MB messages!

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.