RC IN - can it alternate between PPM and SBus?

I’m trying to support two control paths to PixHawk.

  1. 12 channel PPM from the RFD900x PPM output. This CPPM stream comes from the trainer cord of an FRSky X9D transmitter. This link is longer range but is cord tethered, so it’s inconvenient during takeoff and landing operations.
  2. SBus from an FRSky XSR receiver. For short range operations.

I can choose between these sources using GPIO pins on the RFD900x for the selection. Imagine that I control a relay (although I might use something solid state) and switch the RCIN signal between the SBus and CPPM sources.

Both the CPPM and SBus signals are suitable for use on the RCIN port on PixHawk. My question is whether the PixHawk can sync to a new protocol within a frame or two…or whether the protocol on the port is determined “early” and not determined on the fly.

I can use CPPM from the XSR, but only with 8 channels. In that configuration, the question would be what happens if I switch between 8 channel and 12 channel CPPM. Would the missing channels retain their last value…or go to a failsafe position?


After building a hardware version and then an Arduino version of a switcher, I can answer my own question. Switching back and forth works fine. Almost instant. And it even handles a variable number of channels fine. When I switch, channels 9-12 come back or drop off w/o any issue.