What is PPM and PCM?
Back to Resources

This section explains how PPM (Pulse Position Modulation) and PCM (Pulse Code Modulation) work and gives you some idea of the benefit of using PCM. Also PCM fail-safe operation is explained.

The job that RC equipment does is to look at the position of a control stick on the transmitter and reproduce that position at the control horn of a servo. It is common to have between 2 and 8 channels so that a number of stick positions or rotary knob positions can be reproduced on a number of separate servo horns.

Just about all RC equipment for aircraft, uses FM (Frequency Modulation) and this provides a single "radio channel" between the TX and RX. A second modulation process, the PPM or PCM is used to carry the "control channels" over the radio, one channel for each servo. PPM or PCM is used to "multiplex" the control channels together onto the single radio channel. Each equipment manufacturer uses their own method for producing PCM and the description here gives the basic idea behind the process. PPM is fairly standard across most manufacturers although the way the FM is used (positive shift or negative shift FSK) does vary between some so it is best to stay to a single manufacturer for all your radio equipment unless you are confident that the TX and RX are compatible.

The way the control channels are multiplexed is common to both PPM and PCM. In the TX the stick position for channel 1 is read and the information sent to the RX. Immediately afterwards the stick position for channel 2 is read and that information is sent and this repeats for all of the channels, one after the other. This is done fairly rapidly so that is appears that the servos instantly know you have moved one or any number of sticks but the position information is sent between 25 and 50 times a second (depending on make and equipment type)

The way the stick position is conveyed is by varying the width of a pulse. A pulse width of 1.5ms (milliseconds) will centre the servo. If the pulse is reduced to 1.0ms the servo will drive to one end and if it is increased to 2.0ms it will drive to the other with all intermediate positions available. The various servo manufacturers adopt slightly different pulse standards but in practice these are of no significance. Also the direction the servo moves for an increase or decrease in pulse length varies between manufacturers,

So lets recap. In the TX the stick position for channel 1 is read and a pulse is generated the width of which is determined by the stick position. Immediately afterwards, stick 2 is read and a second pulse of appropriate width is generated and sent and this continues for all channels.

Now this is where the difference between PPM and PCM comes in. In PPM, the individual pulse for each channel is just added onto the end of the pulse of the preceding channel. So in a 2 channel outfit there are 2 pulses of appropriate width followed by a long gap then two pulses again. In a 10 channel outfit, there are 10 pulses followed by a much shorter gap then 10 pulses again, these bunches of pulses or "frames" occurring many times a second. The RX has to determine which pulse to send to which servo but this can be done by looking for the long gap. The first pulse after the gap is sent to servo 1, then next pulse to servo 2, etc. This is why it is called Pulse Position Modulation, the position of the pulse within the frame tells the Rx which servo to send the pulse to. The width of the pulse tells the servo where to move to.

With PCM another process occurs. When the TX reads the stick position, instead of it generating a pulse of the correct length for the servo it generates typically a 10 bit code (manufacturer dependant), i.e.. a 10 bit byte of data, ones and zeros. Each stick is read in turn and the appropriate 10 bit code representing the stick position is generated. It is the codes that are assembled one after the other into a frame and sent to the RX many times a second. The RX now has to determine the 10 bit byte for channel 1, read the code and generate a pulse of the appropriate length to send to servo 1 and it does this for each of the channels. You can see that the PCM receiver has to have a processing capability to decode the data and generate the servo pulses.

So why add this complexity? At first sight it appears we have made things worse as with 10 bits there are only 1024 values available and that means there are only 1024 discrete positions that the servo can move to. With PPM there are in theory, an infinite number. However, the weak link between the stick on the TX and the servo is the radio path. With PPM the radio path is analogue, with PCM it is digital. As with most if not all things that are digitized, big improvements are made. With PPM, the RX has to determine the pulse width, i.e. when a pulse starts and when it finishes. If it has a good strong signal and no interference it can do this accurately but when the signal level reduces or interference is present, it cannot. We have all seen the servos jitter and this is caused by the RX being unable to determine the start and finish of the pulses accurately. With PCM, the RX decoder only has to look for the 1's or 0's, i.e. is a pulse there or not there and it knows exactly (well almost) when to look for them. When it is not looking for a pulse, it does not matter what is happening to the signal. With PCM the RX can accurately decode the data signal with quite a high noise level. However the decoder needs to be able to tell when the data received is valid or garbled and this is achieved by "frame check sums". A simple way to do this is for the TX to count the total number of bit "1's" in each frame and to send the total to the RX which again counts all the "1's". If the two numbers agree then the chance of there being errors is low. There are better ways of doing this that give perfect results but this gives the idea. The RX ignores the odd error in the frame check sum and just repeats the decode of the last good frame.

So PCM provides a far more reliable link over the TX to RX radio path that eliminates all the small glitches that we get with PPM. However there is a problem - PCM provides perfect control even when the RX is getting a low signal level or high interference but there is a limit to this and past that limit you have no control. It is perfect and or it is gone and there are no warning glitches before it goes. The range should be at least as good as PPM, then it will be off with no warning! To overcome this drawback "fail-safe" was devised and this is sold as goody but I don't believe there is anyway you can have a fail-safe on any type of RC aircraft! If you loose the transmission path between the TX and the RX there is no way the aircraft can land itself safely. Until it is stationary on the ground it is not safe. Having said this I still think PCM fail-safe is worth having but its name makes its sound better than what it is - don't expect too much from it.


PCM Fail-Safe

With a PCM outfit, you can set predetermined positions for each servo to go to in the event of the RX loosing its connection from the TX through either excessive interference or low signal level. This facility normally has two parts to it:

An initial SERVO HOLD that operates as soon as the poor signal reception starts and lasts for upto a second (adjustable with some equipment). This holds all the servos in their current position and practically eliminates all glitches that are caused by short burst of interference most of which are of very short duration.

A second FAIL-SAFE action that comes in should the poor signal continue more than the SERVO HOLD time, that sends all servos to the pre-set positions that you have programmed into the TX. If you have not programmed any, then with most equipment, the default setting is to hold the servos in their current position i.e. to continue with SERVO HOLD. With the exception of the throttle channel this may be the most appropriate setting but you need to carefully consider this depending on use.

During both the SERVO HOLD and FAIL-SAFE periods the RX is continually checking the signal and as soon a good data frames (see above) are received the servos are once more under control of the TX. So for a short bust of interference such as distant lightning, SERVO HOLD may only operate for 0.1 - 0.2 second.

The information for the fail-safe positions are continually being sent to the RX in spare time within each frame but because there is not much spare time, it can be one or two minutes after switching on before the RX has all the information. However, the SERVO HOLD part will be operating. This delay is not normally a problem when you consider engine starting time etc. but switch you radio equipment on well before you fly if you want to be certain. With the Futaba FF9, it has a clever feature where if you switch the RX on first (not a problem with PCM) then switch on the TX, it rapidly sends all the fail-safe information in the first 10 seconds. It then returns to updating every minute. The PCM icon at the top right corner of the display flashes and I believe this indicates a fail-safe frame has been completed but I have not found confirmation of this. Other radios may have similar features.

Each manufacturer has a default setting for their fail-safe and it is important that you understand what will happen to your aircraft in the event of it operating. If you have not read the BMFA guide on fail-safe it can be found here.


Advantages of PCM Increased accurate control and "buzz free" servo range. Eliminates most of those glitches that sometimes occur when aircraft turns though RX aerial null.

Much less susceptible to interference - distant lightning, high voltage power lines, international co-channel interference during sun spot peaks, RF welding units, etc. 35MHz is right at the top of HF propagation but still suffers from these types of interference.

No jittering servos so reduced RX battery drain and servo wear. Helicopter tail servos have an easier life and gyros can be run at higher gain.

As it is the RX that generates the servo pulse, it is always a clean, repetitive pulse. This means that the servo will always have "holding" power no matter what is happening to the radio signal.


Disadvantages of PCM

No warning of approaching limit of radio range. Range will normally be better but PCM could mask, for a while, a poor radio installation, badly routed or folded RX aerial, poorly suppressed motor, etc.

No jittering servos to indicate that someone else's TX is operating on the same channel and you may have perfect control while you are close to your model and loose it completely as it moves away.

More expensive and complex receiver.

You are tied to the manufacturer of your radio - other makes of PCM receiver will not work with your transmitter.

Back to Resources