Digital servo

ams

Member
Hello,
Is there any "servo" command that allows control digital servos (f >> 50Hz)

Thanks,
ams
 

goom

Senior Member
I believe that all hobby servos use the same communications protocol, whether digital or not. If that were not true then "special" RC receivers would be needed, which is not the case in my experience. Hence, the "servo" command will work just fine.
 

tony_g

Senior Member
I believe that all hobby servos use the same communications protocol, whether digital or not. If that were not true then "special" RC receivers would be needed, which is not the case in my experience. Hence, the "servo" command will work just fine.
not all receivers work with all servos, i have a spektrum srs4210 4 channel rx and it will only work with digital servos, normal servos just go crazy and stutter if i try and use them in it, the manual also states that regular servos will not function with it.


tony
 

rossko57

Senior Member
Background on non-standard servo codings
http://www.spartan-rc.com/resources/faq/faq.php?topic=1&category=3
I don't know if "fast framerate" servos are smart enough to listen to the actual signal and become "backwards compatible" with a standard signal as supplied by PICAXE, there doesn't seem to be any reason why they shouldn't.

To answer the original post, you can write your own code to issue servo control pulses at higher than usual frame rates, or using different centre pulsewidths. Search this forum for "servo pulsout" for ideas.
 

bluejets

Senior Member
It's not that digital servos are anything special but the Spektrum srs4210 receiver is, as it has something called Active Vehicle Control.

" AVC – Active Vehicle Control
AVC™ technology is the newest Spektrum™ RC innovation from Horizon
Hobby. This Spektrum stabilization system adds a whole new level of control
to your RC driving experience. AVC technology utilizes sensors to adjust
steering and throttle output, providing you with a more stable and
controlled driving experience.
NOT ICE: You must use digital servos with the SR4210 receiver.
Using analog servos will reduce the performance of the system
and may cause analog servos to overheat."
 

PieM

Senior Member
On X2 : SERVO [preload],pin,pulse

see : http://www.picaxe.com/BASIC-Commands/Digital-InputOutput/servo/
On X2 parts it is also possible to change the 20ms delay between pulses. This is achieved via the 'preload' value, which is the number to preload into timer 1 before it starts counting. On X2 parts timer 1 increments every 0.5us, so for a delay of 20ms (20,000us) we need 40,000 increments. -
 

tony_g

Senior Member
It's not that digital servos are anything special but the Spektrum srs4210 receiver is, as it has something called Active Vehicle Control.

" AVC – Active Vehicle Control
AVC™ technology is the newest Spektrum™ RC innovation from Horizon
Hobby. This Spektrum stabilization system adds a whole new level of control
to your RC driving experience. AVC technology utilizes sensors to adjust
steering and throttle output, providing you with a more stable and
controlled driving experience.
NOT ICE: You must use digital servos with the SR4210 receiver.
Using analog servos will reduce the performance of the system
and may cause analog servos to overheat."
even with the AVC turned off it sends standard servos crazy, presumably as the frame rate is so fast but that AVC itself is pretty good lol
 

hippy

Technical Support
Staff member
Altering the frame rate with the SERVO command is only possible with the X2 devices, and does not appear to have the means to cater for 300Hz digital servo frame rates.

It may be possible to use a PULSOUT:pAUSE loop as can be used with normal servos. Running at 32MHz would probably be advisable.

I am surprised digital servos aren't clever enough to fall back to using standard non-digital servo frame rates. It may simply be to encourage purchasing of digital servo controllers to use them but there may be some more reasonable reason they can't work that way.
 

Goeytex

Senior Member
Digital servos have higher frequency than analog servos, see: http://www.futaba-rc.com/servos/digitalservos.pdf
Increase the frequency is possible in X2 (servant [45536], 1.75). How do in M2?
Thanks
ams
The frequency difference between an analog servo and a digital servo is internal to the servo and has nothing to do with the frame rate, except in the case of specialized / proprietary systems servos that might use a different frame rate. If you have one of the servos and a Picaxe why not just take the time to hook them up and do some actual testing?

Even better, if you have a receiver for the servo, you can connect one servo channel to a scope or frequency counter a determine the frame rate. Do not confuse "frequency" of digital servos to the frame rate. Many cheap multimeters have a frequency counter function.

If you have a receiver but do not have a meter or a scope then you can use code I posted in the Thrust Vectoring Thread to test the receiver. There is also code posted in that thread that show how to control a servo using pulsout and the frame rate that you choose. You may want to read the entire thread

A 14M2 CANNOT change the frame rate ( 50CPS) with the servo command, Only X2 chips can do that.
 

hippy

Technical Support
Staff member
The frequency difference between an analog servo and a digital servo is internal to the servo and has nothing to do with the frame rate
I think I may have just confused the two :)

My excuse is I have never used a digital servo myself.

If there is no difference, then any idea why a digital servo may not work as would be expected with a normal 50Hz servo frame rate ? Or is it more that they should and it is mainly receivers which won't work with all servos ?
 

erco

Senior Member
Most digital servos are reverse compatible; they can use an analog 50 hz signal and can be swapped into an older system. But to take full advantage of the digital benefits, they need the new digital control system protocol. But you can't swap an analog servo into a digital control system. Attached PDF from Futaba has more info.
 

Attachments

ams

Member
Everything would be solved if it were possible picaxe M2, with the SERVO command, change the frequency.
This is a proposal to Technical Support in the next revision of this command.
ams
 

goom

Senior Member
Except (possibly) for some "special" servos, normal digital hobby servos use the same communications protocol as analog servos. This is the standard 50Hz frame rate output by (almost?) all hobby RC receivers, and also by the Picaxe SERVO and SRVOPOS commands. I can assure you that you will be able to drive a normal digital hobby servo using the standard Picaxe commands. I have done this successfully. I doubt that a significantly higher frame (>100 Hz) rate would work at all.
If the above were not true, then digital hobby servos would not be much use to those hobbyists using conventional receivers. This is not the case.
In the Futaba PDF, the higher frequency refers to the pulses sent to the servo motor, NOT the frame rate of the input control pulses.
Problem solved with no software revision.
Try it and report back your findings.
 

srnet

Senior Member
The frequency difference between an analog servo and a digital servo is internal to the servo and has nothing to do with the frame rate,
Absolutly, though a lot of people get taken in by the belief that since digital servos do drive (internally) the motor at a higher frame rate, then the controlling servo pulses also have to be at the higher rate ............. big mistake.
 

srnet

Senior Member
Digital servos have higher frequency than analog servos, see: http://www.futaba-rc.com/servos/digitalservos.pdf
Increase the frequency is possible in X2 (servant [45536], 1.75). How do in M2?
Thanks
ams
Read very carefully, I have seen that data sheet quoted often, it causes a great deal of confusion, it actually says;

"The second, is that a digital servo sends pulses to the motor at a
significantly higher frequency. This means that, as opposed to the motor
receiving 50 pulses/sec., it now receives 300"

Note, it is referring to the pulses used internally in the servo to control the motor, and not the incoming servo control pulse.
 

goom

Senior Member
Quite so. There was never really a problem to solve. A careful reading of prior posts and the Futaba PDF would make this apparent. However, Futaba could have made things a little clearer.
As you have also done srnet, I could not resist attempting to clarify in words of one syllable or less.
 
Anyway, here an extract from the manual of the Jeti Duplex Transmítter DC 16:

"8. Transmit frequency
Says how often the stick positions will be refreshed. Please check the
settings of your receivers prior setting this option to 100Hz. The
Output Period should be set to "Auto" and maximum of 3 servo
groups (A, B, C) should be used. In other cases, the refresh rate will be
applied according to receiver settings.

Warning: Use only digital servos that can handle 100Hz refresh
rate."

The Framerate of the receiver also can be set to "By Transmitter". In this case the receiver sets the framerate to the same as told by the transmitter.
 
Top