[SOLVED] question on PPM signal

so , i did work with the 50Hz PWM signal usually used with arduino , servo motors , ESCs , and stuff like that .
since it's 50Hz , The interval time is 20ms and the timing for data is at the start is 1ms for 0 and 2ms for 255 .

what about PPM though ? what i currently know is that it's a bunch of PWM signals in series in the same 20ms time for 50Hz ...

i have a system that demands PPM data . what are the specifications beside the frequency ?
if it's an 8 chanel PPM signal what are the correct timings ? .

thank you .

i did work with the 50Hz PWM signal usually used with arduino , servo motors , ESCs , and stuff like that .

Did you?

Why did you not use the servo library?

what are the specifications beside the frequency

Pulse width.

if it's an 8 chanel PPM signal what are the correct timings ?

Normal servo timings center position 1.5 mS in a 20mS frame rate.
The servo library produces PPM and with the write microseconds method you can have any pulse width you want.

hey Mike .

i did work with PWM without using the lib . and i also did work with it using the Servo lib .
this code is in assembly , so i cannot use a lib .

i know the specifications of PWM , i am working with a PPM signal now .
for example , what is the timing needed between pulses within the 20ms interval ? and does that change ?
or is it all standard and i should not worry ?

this code is in assembly , so i cannot use a lib .

What does that mean, of course you can use a library and call it from assembler, is this some sort of assignment?

needed between pulses within the 20ms interval ? and does that change ?

Not at all sure you have got PPM if you are asking that question. A PPM signal is a pulse, the width of that pulse determines the modulation information you are trying to pass to the other circuit, that pulse must repeat every 20mS. That is the leading edge of consecutive pulses must be separated by 20mS.

Mike ,for 8channel PPM for example you have 8 pulses during the 20ms period
as far as i understend

Hi,

http://blog.oscarliang.net/pwm-ppm-difference-conversion/

This explains the difference, even an example of converting one to the other using arduino.

What did you, that is if you did, google?

Tom.... :slight_smile:

hey TOM , i actually did get to that in google , and did read some of it to .
i came here to make sure ,and to know about the stability of timings . thank you though TOM

You need to start providing information if you want help.

Code, schematics, link to previous discussion etc.

Paul__B:
You need to start providing information if you want help.

Code, schematics, link to previous discussion etc.

hey Paul , the arduino needs to communicate with that :

amine2:
Mike ,for 8channel PPM for example you have 8 pulses during the 20ms period
as far as i understend

So what difference does that make? Each PPM channel has its own wire. Or are you talking about something else.

amine2:
hey Paul , the arduino needs to communicate with that :

Radio Control Planes, Drones, Cars, FPV, Quadcopters and more - Hobbyking

So now you tell us!
You need to find out what modulation method that transmitter uses.

that transmitter accepts PPM input . one signal wire for 8channels . (the top signal)
you have one PPM signal , and multipe PWM channels

So I assume you want to produce that with an Arduino, it would have been good to state this in the original question instead of going round the houses.

Now if it were me I would enlist a bit of hardware help in the form of a monostable set up to have a 0.5mS output. Then I would hammer it with an ISR driven from one of the counters. In each ISR the monostable is triggered and then the time for the next channel is put into the counter set to count down.

In that way it is all driven in the background and all you have to do is to alter the numbers in the delay list.

thank you Mike :slight_smile:

So, it is a stock-standard radio control protocol for use with a 4017 decoder.

Grumpy_Mike:
Now if it were me I would enlist a bit of hardware help in the form of a monostable set up to have a 0.5mS output.

Mind you it is just as easy to let the ISR handle the 0.5 ms pulses as well unless you are really stretched for - well, time, in the code!

Paul__B:
Mind you it is just as easy to let the ISR handle the 0.5 ms pulses as well unless you are really stretched for - well, time, in the code!

Yes I know that could be a solution but I said

if it were me

:wink: