Society of Robots - Robot Forum
Electronics => Electronics => Topic started by: Soeren on February 15, 2010, 06:51:40 PM
-
Hi,
Anybody has successfully run a Futaba s3003 at ~40Hz or ~80 Hz instead of the common ~50Hz?
Unfortunately I don't have one to experiment with myself and the reason I'd like to speed things up, is to synchronize the servo pulses to another signal (12.5ms ignition pulses - see this (http://www.societyofrobots.com/robotforum/index.php?topic=9087.0) tread if you are curious about the purpose).
If it cannot be done, it's either dual interrupt control, time sliced state machines (an oxymoron, I know), or similar "white glove" programming and I'd rather not on a PIC12F675. Last resort is to stay the servo pulses for around 25ms (might not be bad though).
The core of the problem is, that the ignition pulses will come each ~12.5ms and with regular servo timing of ~20ms I cannot just pause execution while waiting for the next thing happening.
Anyone tried something similar with that particular servo?
-
i can't comment on those exact models of servo but generally servos are quite tolerant of different refresh rates as long as the actual pulse is the correct width when it comes.
as you slow down from 50Hz you tend to get less torqe from the servo but the same resolution.
at 25Hz you typically have a servo that can move to position but not carry any sort of real load.
i have not experimented with the limits as you increase the pulse rate that far.
60Hz would be fine. i have no idea about 80...
these guys would definitely know: http://www.rcgroups.com/diy-electronics-199/ (http://www.rcgroups.com/diy-electronics-199/)
dunk.
-
Hi,
i can't comment on those exact models of servo but generally servos are quite tolerant of different refresh rates as long as the actual pulse is the correct width when it comes.
Nice, the pulse will be very well behaved, so no problem in that respect.
as you slow down from 50Hz you tend to get less torqe from the servo but the same resolution.
at 25Hz you typically have a servo that can move to position but not carry any sort of real load.
Didn't think of that! Sort of rules out going slow then.
i have not experimented with the limits as you increase the pulse rate that far.
60Hz would be fine. i have no idea about 80...
these guys would definitely know: http://www.rcgroups.com/diy-electronics-199/ (http://www.rcgroups.com/diy-electronics-199/)
Yes, they should know, I'll check them out more after a string of Zs.
Thank you for taking the time :)
-
Anybody has successfully run a Futaba s3003 at ~40Hz or ~80 Hz instead of the common ~50Hz?
All servos I've used can handle a pulse as fast as every 20ms (50Hz), no problem. But faster than that, each servo I've used acts differently. I've gotten quite a few to work at 15ms (66Hz), but if its too fast, your servo risks burning itself out. I have some micro futaba servos that start to burn out around 13ms (77Hz).
-
Perhaps try one of the later 12F's ie 12F615 with the Capture/Compare/PWM module. Virtually the same cost.
-
Hi,
[...] if its too fast, your servo risks burning itself out. I have some micro futaba servos that start to burn out around 13ms (77Hz).
Ouch, I guess I'll have to dig out the white gloves then.
Thanks.
-
Hi,
[...] 12F615 with the Capture/Compare/PWM module. Virtually the same cost.
Thanks, but how would that solve this issue?
-
it's a while since i've used PICs but is it possible to set up a 16bit PWM channel to do the servo pulses for you in hardware?
i generally use this method to control servos on AVRs.
all you need to do to control the servo is make sure the correct value is in the timer register and you can set this at any stage of the hardware clock.
dunk.
-
Thanks, but how would that solve this issue?
It will allow you to run either servo pulse output or ignition timing capture as an independant hardware process without your white gloves. See dunk's last post.
-
Hi,
It will allow you to run either servo pulse output or ignition timing capture as an independant hardware process without your white gloves. See dunk's last post.
Ah, yes, the '615 has got 16bit PWM.
Unfortunately, I don't have def's for this device in neither Eagle nor PBP (so I'm kinda stuck with 8bit PWM).
Sure, I could build def's from scratch and restart (once again), but I think Neil and I are eager for the closure of this project.
Ah well, if I was doing this for a personal project I'd wouldn't even use an R/C-servo, but rather a DC-motor with a worm drive, but hey, it forces one to think, when faced with limitations, so it's not all bad :)
Thanks for the suggestion though, in 16 bits it would work smooth as a baby's behind, but I'll probably have to rethink the code a bit.