Nano and PPM output
#1
Jim,

I hope you and your family are well.

I am setting up an old quadcopter that requires a PPM input to the flight controller.  I flew the thing about five years using a Nano Rx configured to output PPM on pin 2.  At that time I used a Futaba 9C transmitter with your XPS Futaba 9C Tx module.

Now I want to fly it with an OpenTx transmitter.  I have your JR type Tx module in the Jumper T12 and I use it frequently to fly models equipped with XPS receivers - no problems.

However, I am unable to make the Nano output PPM using the Jumper T12 and XPS JR Tx module.

My gut feeling says that the transmitter and XPS JR Tx module should not care how the Nano outputs the servo signal, whether it be PWM or PPM.  It worked when set for PWM and I was able to drive a servo directly.  But when I re-binded it and changed the output from PWM to PPM (led "solid on"), I could not get an output.

Can you think of anything I am not taking into consideration?

Thanks,

Paul
Reply
#2
If the frame rate is higher than 20ms or you trying to use more than 8 channels then that would cause an issue because PPM itself is limited to the number of sequential channels that will fit within each frame. The official specification for PPM use with R/C is 2.25us * number of channels + 4.5ms. That has to fit within your frame rate. So, 8 * 2.25 + 4.25 = 22.5ms, which is the standard frame rate used by Futaba, JR, and others. If you extend the frame rate you can add more channels. Graupner and Multiplex both do this to get more channels, at the expense of latency.
Reply
#3
(12-16-2021, 04:51 PM)XPS Wrote: If the frame rate is higher than 20ms or you trying to use more than 8 channels then that would cause an issue because PPM itself is limited to the number of sequential channels that will fit within each frame.  The official specification for PPM use with R/C is 2.25us * number of channels + 4.5ms.  That has to fit within your frame rate.  So, 8 * 2.25 + 4.25 = 22.5ms, which is the standard frame rate used by Futaba, JR, and others.  If you extend the frame rate you can add more channels.  Graupner and Multiplex both do this to get more channels, at the expense of latency.

Ok, thanks for the interesting explanation.  I couldn't get it to work with 8 channels on XJT-D16 or 8 channels with D8.  I reckon I could make it work by having the transmitter talk to the XPS Tx module using PPM instead of XJT.

Thanks, have a great holiday season and take care,

Paul
Reply
#4
XJT-D16 uses a 9ms frame rate, so it's too fast for the Nano to be able to output PPM.
Reply
#5
If the standard servo update rate is 50hz (20ms), then does a system using PPM miss some updates since the PPM takes 22.5ms to deliver the new channel positions?
Reply
#6
PPM requires that all channels can fit within whatever frame rate is being used. PPM is variable in frame rate, but ALL of the channels have to be short enough to be output during that time.
The servo update rate is not asynchronous to the frame rate. Servos are updated at whatever the frame rate is.
Reply
#7
Ok, so if a transmitter is sending a serial PPM stream to its XPS Tx module, and the receiver gets the new stick positions every 22.5ms, then the servo gets the new positions every 22.5ms.

When a transmitter uses XJT-D16 to communicate with its XPS Tx module, and the receiver gets the new stick positions every 18ms, then the servo gets the new positions every 18ms if it can take it (presumably it gets worked a little harder in the process).
Reply
#8
(12-20-2021, 05:37 AM)flyingw Wrote: Ok, so if a transmitter is sending a serial PPM stream to its XPS Tx module, and the receiver gets the new stick positions every 22.5ms, then the servo gets the new positions every 22.5ms.

Yes, that is correct.

(12-20-2021, 05:37 AM)flyingw Wrote: When a transmitter uses XJT-D16 to communicate with its XPS Tx module, and the receiver gets the new stick positions every 18ms, then the servo gets the new positions every 18ms if it can take it (presumably it gets worked a little harder in the process).

Yes, that is correct.

ALL of our receivers output the channels at virtually the same time (within 32us of each other), so the servos are not updated sequentially (like PPM) or in groups (like what other companies do).  Because of this, our products can have a frame rate as low as 3ms.
Reply
#9
Nice. Thanks Jim for your explanations and answers to my questions. Paul
Reply




Users browsing this thread: 1 Guest(s)