Pulse Position Modulation as used in RC controls

How are several channels multiplexed down to a single physical wire? If two channels are transmitting the same value in the same frame, wont there be an overlap of the pulses?

Many (perhaps most) radio control transmitters multiplex all the "RC PWM" channels into a single physical wire, using a system called "RC PPM" (radio-control pulse position modulation). (a) (b) (c) (d) (e) (f) (g)

Often this "PPM" signal is transferred from the a student's RC transmitter through the buddy box wire to the teacher's RC transmitter.

The "combined signal" -- the "RC PPM signal" -- looks something like this (based on diagram from Richard J. Prinz): (h) (i) (j) (k) (l)

Sync    1       2     3     4        5    6    7   8   Sync...
---+ +----+ +------+ +-+ +-------+ +--+ +--+ +--+ +-+ +----...
| |    | |      | | | |       | |  | |  | |  | | | |
| |    | |      | | | |       | |  | |  | |  | | | |
| |    | |      | | | |       | |  | |  | |  | | | |
+-+    +-+      +-+ +-+       +-+  +-+  +-+  +-+ +-+
*      *        *   *         *    *    *    *   *

* - low separator pulse, always 0.5 ms
1..8 - high "RC PWM pulse" for channels 1..8      0.5 – 1.5 ms


The long "sync pulse" between frames is typically at least 5 ms long. All the other pulses are no more than 2 ms long. Most transmitters have a fixed frame rate somewhere in the range of 40 Hz to 200 Hz.

When the pilot moves the positions of the joysticks on the transmitter, the width of the corresponding "RC PWM pulse" for that channel will grow proportionally longer or shorter.

The corresponding radio control receiver decodes the radio signal to a RC PPM signal on a single physical wire. Often the receiver includes either a 4017 decade counter or a 4015 shift register -- that chip decodes the RC PPM signal at its CLK input into to several independent "RC PWM" outputs. The various RC servos are connected to those outputs with standard 3-pin connectors with 0.1" spacing. The RC PWM signal on the "signal" wire of the 3-wires coming out of the servo has a pulse width that typically varies from 1.0 ms to 2.0 ms (proportional to the position of the joystick), but only one pulse for each frame.

(The standardized "RC PWM" works differently enough from the PWM used to control DC motor speeds that some people say that RC PWM signals "are not really PWM signals" (m) (n) (o) (p) (q). Alas, none of those people give any suggestions as to what we should call these signals, so I call them "RC PWM signals" for lack of a better name. Perhaps I should call them "RC control signals" ?).

If two transmitters are transmitting at the same time, then yes, there will be an overlap of pulses. However, people at RC flying parks are very careful to assign each pilot (and the transmitter and receiver he uses) a different "frequency channel", so that the receiver in each airplane can easily pick out the signal from its own transmitter and ignore the radio signals from every other transmitter.

A 6-channel receiver uses only one "frequency channel", but it has 6 output channels (6 servo channels), i.e., it has 6 rows of output pins for up to 6 servos to plug into -- typically one channel each for pitch(elevator), roll(aileron), yaw(rudder), throttle, and some optional AUX channels.

During a single RC frame, the a 6-channel receiver cycles through every every servomotor, putting one "RC PWM" pulse at a time on each of its 6 outputs. Only one of its outputs is ever active at any one time -- there is no overlap of its pulses.

With a typical 50 Hz 6-channel transmitter, when all the control sticks are pushed to turn all the servos all the way counterclockwise, the receiver spits out

• a 1 ms pulse on channel 1, then -- as soon as that finishes -- a 1 ms pulse on channel 2, for all 6 channels -- a total of 6 ms -- and the (relatively long) sync pulse is however long it needs to be to fill out the rest of the 20 ms frame.

When all the control sticks are pushed to turn all the servos all the way clockwise, the receiver spits out

• a 2 ms pulse on channel 1, then -- as soon as that finishes -- a 2 ms pulse on channel 2, for all 6 channels -- a total of 12 ms -- and the (much shorter) sync pulse is however long it needs to be to fill out the rest of the 20 ms frame.
• Thanks for the explanation and all the links. Definitely clears up a few things. I realized I had a flawed understanding of PPM, as picked up from non-authoritative websites. Example This diagram says that the pulse width is fixed, but the position of the pulse conveys data. I was worried that two channels with the same data would have pulses in the same position. Your links show fixed pulse position (per channel) and varied pulse width. – RaGe Sep 2 '14 at 15:47
• additional question: Does the sync pulse width vary per frame depending on the duty cycle of the individual channels? – RaGe Sep 2 '14 at 15:49
• Yes, Oscar shows the "normal" PPM used in optical fiber and, well, everywhere except radio control "RC PPM". I feel like I'm not doing a very good job explaining, because "RC PPM" does not, in fact, have a fixed pulse position per channel. With a typical 50 Hz transmitter, the first "separator pulse" occurs at a fixed width and position every 20 ms, all the other pulses start wherever the last pulse left off, which changes every time the control sticks move. – David Cary Sep 3 '14 at 15:14

Multiple channels are time sliced onto "one-wire". The real wire count is usually three. Typically there is a positive voltage wire (may not be there depending on whether both ends have their own power or not) and always a shared ground wire.

Perhaps 40-100 times per second the transmitter broadcast the settings of all controls which map to servos on something. At the beginning of each broadcast, the voltage level on the output wire (the "one-wire") is held low for a sync'ing low pulse. After that, each servo gets a time slot. Servo #1 gets the first time slot, servo #2, the second, and so on.

Hope the illustration is clear. Although my drawing only shows 1.0, 1.5 and 2.0ms time pulses any value between 1.0 and 2.0 is valid and correlates to "proportional" values at the servo (hence the "proportional" term once used to describe these).

Multiple PWM channels generally aren't shoved into a single wire (Or I've never heard of it). If you need to send multiple data channels over the same wire then using a higher level protocol (such as UART or SPI) would be the way to go. While PWM is technically digital, it isn't like other digital protocols where data can be shoved in and expected to come out perfect on the other side. It's more like an analog signal where readings are subject to noise and infinite precision is not possible.

Also, it wouldn't matter if two channels are sending the same value or not. The way servo PWM works only the longer pulse would survive (Assuming the pulses are synchronized. If they weren't unusable garbage would most likely come out).

EDIT: As for pulse positioning, it might be possible to multiplex 2 signals depending on how they were constructed. From what I have read ppm requires either a clock pulse or a external clock, but in theory it should be possible to multiplex. Keep in mind that there won't be any real way to differentiate between the pulses sent, and both sources will need to share the same clock.

• My question is about pulse position modulation and not width modulation. I can see why it is a bad idea to multiplex two width modulated signals. Thank you for your answer nonetheless. – RaGe Sep 2 '14 at 15:01