9
\$\begingroup\$

I know that RC applications, such as a drone, use PWM signals to drive the motors. This PWM signal is mostly 50 Hz (0.02 s). The pulse itself varies from 1 ms to 2 ms. So a 1 ms pulse corresponds with a minimum motor rotation and a 2 ms pulse with a maximum motor rotation. So basically the other 18 ms of the period the signal stays idle.

Why does the PWM signal have such a format? Why is the active part of the signal not spread over 1 ms and 10 ms? What is the advantage of using such small pulses?

\$\endgroup\$
  • 1
    \$\begingroup\$ Can you provide a link to this type of signal? \$\endgroup\$ – Andy aka Jun 22 '15 at 13:51
  • \$\begingroup\$ @Andyaka link \$\endgroup\$ – PlatonInc. Jun 25 '15 at 7:21
19
\$\begingroup\$

The reason for the long gap is so that the transmitter can send all of the other servo positions.

In the days of clothes-pegs and crashed aircraft from frequency collisions, radio control was done with AM at 27 MHz.

The transmitter would send a sync pulse, and then a series of 1-2 ms pulses, one for each servo. The earlier ones delayed the later ones, didn't matter much. These are just RF pulses, no special modulation.

The receiver would receive the pulse stream, synchronise on the first one and then direct each successive pulse in turn to a different servo socket.

So to allow for maybe 8 channels set to 2 ms, and have some gaps, you need about 20 ms. With an 8 channel transmitter, the duty cycle on the combined RF channel would have been over 50%.

This servo protocol, of 1-2 ms every 20 ms, has just stuck around from then.

This site about making a PC digitiser for your remote control has some oscilloscope graphs showing four or five channels.

\$\endgroup\$
  • 2
    \$\begingroup\$ +1 Good description of the reasons- it's also generally true that 50Hz is a fast enough update rate for most practical purposes, so there would be no concrete benefit to increasing the servo position command update rate. \$\endgroup\$ – Spehro Pefhany Jun 24 '15 at 15:42
  • \$\begingroup\$ This was in no way confined to 27 MHz - the same was used on the ham bands, as well as the 72 MHz and 75 MHz type accepted air and surface frequencies, for both AM and FM sets. Really only when the air data became PCM did there start to be an option, though I bet a lot of those sets still generate(d) the output pulses at the receiver sequentially - rather than in parallel - and servos probably assumed a gap. \$\endgroup\$ – Chris Stratton Dec 17 '15 at 23:14
6
\$\begingroup\$

The point there isn't really Duty Cycle.

The 1ms to 2ms pulse is one that is easy enough to "decode" both in analogue and digital circuitry, so it is adopted as a standard. You need standards to be able to mix and match stuff, and in RC systems there's many different applications and sub-devices, so the standard is strictly adhered to, to keep the market alive for all hobbyists alike.

No translation requirement = more sales, because easier. Hobbyists like easier.

But many devices that need higher response rates perfectly support a pulse repetition of 1s to 5ms, allowing update rates of once per second to 200 times per second. Some normal response types don't even "fail to default" with many seconds between pulses, but the most used standard says "be at least compatible with 50Hz update rate" and most seem to interpret that as "be 50Hz". But it's technically not a hard requirement.

I have certainly had 200Hz polled systems pulled from high-end flying equipment, but I have also seen sensory-systems in olden days that only sent a pulse 10 times per second. (Probably since the analogue needles weren't quick enough to fall back fast, even if they got 5 pulses of info per second)

\$\endgroup\$
2
\$\begingroup\$

An typical RC signal contains one pulse for each servo being controlled; a typical six-channel receiver (at least historically) wouldn't capture the signal from any of the input channels, but would instead include a counter circuit that would reset itself after a sufficiently-long gap and would advance a little bit after the falling edge of each pulse; each servo output signal would be high only when the input was high and the count held the right value for that servo. If a servo wishes to be usable in a system with eight or more channels, it must be able to accept a signal with a very low duty cycle. Having encoders respond to pulse lengths in the 1-2ms range independent of how often they receive pulses makes it possible to have servos that can accept a large number of servo readings at a relatively low update rate, or that transmits a smaller number of servo readings at a faster update rate, without needing any sort of "configuration".

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.