PWM, PPM, and Serial RX explained

When speaking about radio systems for remote controlled models, multirotor, airplanes, gliders, there are some shortcuts that might be unknown for beginners. Those are: PWM, PPM, Serial RX, S.Bus. Today I will explain basic concepts behind them, and when they are used.

PWM

PWM, as Pulse Width Modulation, is something a standard for controlling different devices onboard remote controlled model. Almost all servos, ESC, flight controllers and radio receivers can work with PWM signal. There might be some exceptions, but they are so rare, that we can skip them.

Stick (switch, POT) position in PWM signal is encoded as length of signal. Signal that lasts 1000us encodes minimum stick position, and signal of 2000us encodes maximum stick position.

3 PWM channels connected to FlySky FS-iA6BIn PWM, each channel is available as separate port of 3 pins (Ground, +5V, Signal). So, if receiver has 8 channels in PWM mode, that means that it has at least 8 ports of 3 pins. 24 pins, 24 cables, lots of mess. And this was great for airplanes, where each control surface is controlled by separate servo connected directly to the receiver. But is not so great for quadcopters and event airplanes with flight controller. Not only it requires a lot of cables, but also complicates things on flight controller’s end. It requires an interrupt for each channel, takes a lot of space and to be honest, it’s completely not needed. Why? Because we have something better…

PPM

PPM, sometimes called CPPM or PPMSUM is short for Pulse Position Modulation. What it does to a signal compared to PWM? It stacks each PWM channel one after another. This way, one set of pins can transfer even up to 12 channels.

PPM signal from FlySky FS-iA6B

Advantages? Many. Less pins, less cables, less weight, less mess, less interrupts (only 1) needed to decode this signal. And I think all multirotor flight controllers can read it. There are some disadvantages as well. For example, you can not connect a servo or ESC to PPM signal. Before servo can be connected, PPM signal has to be decoded by specialized hardware to series of PWM signals. And PPM is not very accurate. Jitter will appear and accuracy is around 0.5%. Still, works great for quadcopters, hexacopters and other multirotor.

Serial RX

While PPM and PWM signals are analog, Serial RX are digital. Transferred as series of logical zeros and ones. So, instead of measuring length of a pulse, flight controller just reads: Channel 1 equals 1345 and Channel 2 equals 1800. Simple? Yes. Accurate? Very. So why we are not all using serial RX? The biggest reason is that there are many different implementations of Serial RX using different protocols: S.Bus, i-Bus, XBus, Graupner Hott. And they are not compatible between them. And differences are not only in software layer. For example FrSky S.Bus uses inverted UART. So event if flight controller has free UART port, it does not mean that it can read S.Bus. It also would require hardware inverter. Mess? Huge! But if you can use any Serial RX, use it. It’s worth it.

One thought on “PWM, PPM, and Serial RX explained

Leave a Reply

Your email address will not be published.