Can anyone help me on how to read DSMX - PPM Signals on the teensy?

Status
Not open for further replies.

Fluffy

Member
Hiya Guys!

I'm trying to read the PPM Signals off of my DSMX (Spektrum Satellite receiver).
I'm using a teensy 3.2.
So far, I've tried the PulsePosition header and it hasn't really worked that well for me.
In case anyone is wondering, the receiver takes input from a 7 Channel RC controller. I'm using it to fly a Quadcopter!

Thanks :)
 
Use an interrupt on an edge change and collect the time between them perhaps?

Have you got an oscilloscope to give us an idea of the speeds the signal is running at?
 
Use an interrupt on an edge change and collect the time between them perhaps?

Have you got an oscilloscope to give us an idea of the speeds the signal is running at?

Yes! I tried it and got the following signals :)

R100_1.jpg

Also, I've tried to read the serial signals from the receiver into the Teensy pin 0 (Rx1) but no dice.
 
I'm confused by the data in the screenshot. If it's 7 channel PPM, shouldn't there only be 7 different periods between rising edges within the 20ms frame? I've never used a PPM receiver before, but something seems off there.

As Xenoamor said, it's probably best to start the clock on the rising edge and record the time until the next rising edge using interrupts. But, if you are using that Satellite Receiver library then make sure you replace the "Serial" command with "Serial1". This is because Teensy has 3 serial UARTs, and it's necessary to specify which one is being used (pins 0 and 1 are Serial1).
 
Status
Not open for further replies.
Back
Top