PPM stands for pulse position modulation. Many of you may be familiar with PWM (pulse width modulation) which is used for things like driving LEDs and servos. PPM is somewhat like PWM, except that it's the time between pulses that carries the data, and not the duration of the pulse itself.
PPM is typically used in the RC world for carrying information that would normally be carried by multiple PWM channels: specifically, the connection between a receiver and a satellite receiver, between a receiver and an autopilot/control board, or between a transmitter and a buddy-boxed transmitter.
In my case, Manucon will be emulating a buddy-boxed transmitter, so I needed to generate a PPM output to send information to the plane. This was simply a matter of scaling my roll, pitch, and throttle values to the range 1000-2000, and then sending out 100 microsecond pulses separated a delay corresponding to the scaled value for each channel.
This series of pulses is sent out every 20 milliseconds, just like a single pulse is sent out every 20 milliseconds when using PWM to control servos.
To carry this PPM data to the transmitter, I used the Spektrum/JR trainer port on my Turnigy 9XR. My home made trainer cable required a 3.5mm audio jack, of which I had plenty, but it is important to note that the audio jack should have a single channel (just ground and data).
The inside lead goes to whichever port on the OSSEP (or Arduino) you plan to use for PPM output, and the outside just goes to ground.
With Manucon and connected to my 9XR and the new PPM sketch on the OSSEP I hit the trainer switch on the transmitter to transfer control to the glove. Flexing the index finger controls throttle, rolling the hand controls ailerons, and pitching the hand control elevator. It worked on the first try!
The next day, I took my scratch built trainer plane, The Fish, and Manucon out to the field for some test flying.