I would like to minimize the processor time in arduino and googled some ppm encoder stuff. I found that the parallax propeller has multi core architecture with eight 32-bit risc cores. That device is commonly used as servo controller, but I would like to use it in opposite. Has anybody done something like that?

I was thinking about reading the channels and writing the pulse time to register, wich could be read with for example via I2C.

There are some old blog posts about this: http://diydrones.com/profiles/blogs/multichannel-rc-servo-signal

Examples about communication protocols for parallax propeller can be found on web.

Ps. Also the same controller could be used for driving the servos. If using 7 independent input channels/timers, the output can be done by the eight timer. So the input pulses can be with any freq or order and the output can run in another freq.

You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –

Replies

  • I have a receiver object for the Prop that will read 8 RC channels in any order at 1us resolution and write the results to main RAM, and it runs in one core.  You could use two cores to read 16 channels, if you had a need for that many.  From there you'd just need to write the I2C communication to slave it to another processor, which wouldn't be terribly difficult.

    There's also a Prop object that uses a single core to output up to 32 servos at 1us resolution at 50Hz.  I've modified it to output 8 outputs at about 250Hz - again, using a single core.  You don't need to use hardware timers if you write things like this in assembly, and there are enough cores to do this work and much more, in parallel, so you don't have to deal with interrupts.  It's very good at this kind of work.

    Jason

This reply was deleted.

Activity

Neville Rodrigues liked Neville Rodrigues's profile
Jun 30
Santiago Perez liked Santiago Perez's profile
Jun 21
More…