Menu

Servo Signal

dvdouden

A Servo Signal is the signal used in the RC world for controlling servos. This is the signal you can find on the signal pin of each channel of your receiver. The signal is sometimes incorrectly called PWM (Pulse Width Modulation) which is plainly WRONG. Please please please, do NOT refer to the servo signal as PWM. Putting a real PWM signal on a servo may cause serious damage to it!

Then what is a servo signal you might ask? A servo signal is a pulse of variable length (usually between 900 and 2100 microseconds) followed by a pause of substantial length (somewhere around 10 milliseconds). The width of the pulse determines the position of the servo. Around 1000 µs is full swing in one direction, 2000 µs is full swing in the other direction and the center lies around 1500 µs. The difference between full swing and center is called travel.

The amount of travel and the position of the center may differ for various RC equipment manufacturers. There seem to be two standards: JR and Futaba. Both have about 600 microseconds of throw, but the center is different. JR places the center at 1500 µs whereas Futaba places it at 1520 µs.

You may use the functions defined in util.h to convert normalized values (-256 - 256) to microseconds. You can specify the center and travel using rc::setCenter and rc::setTravel respectively. Or you can use rc::loadFutaba or rc::loadJR to load presets. After this you can use rc::normalizedToMicros or rc::microsToNormalized to convert normalized values to microseconds or vice versa.

Most servos are surprisingly easy in the signal they accept; they'll happily move further than the maximum and most will accept pauses of 5 to 20 milliseconds without problems.

A few last words about "digital" versus "analog" servos. This has very little to do with the signal; all it means is the servo has some form of digital controller instead of an analog. Digital servos tend to be more precise as they don't wait for the next pulse to arrive but instead check the servo position multiple times between pulses. Ergo: both analog and digital servos accept the same servo signal.
There are a few exceptions to this rule though. High-end tail servos sometimes accept a high frequency signal, in this case pulses (and pauses) are half the length of an ordinary signal. This is usually used in conjunction with a high end gyro which generates the high frequency signal. Another exception are Futaba servos using the S-Bus system. This is a serial digital signal which is completely different from the signal described in this article.


Related

Wiki: Home
Wiki: PPM Signal

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.