I have been reading for the last few days gearing up to start my new [first] project. I have a few questions that dont seem to be answered directly in previous posts.
I am looking to interface with a Futaba 3Ch RX. This RX has a DSC port on it. My first question is, does anyone know if this is a INPUT only or can I READ PPM off of it as well?
I want to, hopefully without having to solder to a pin on the uC, read the full 3Ch's into the Arduino.
I have seen MANY different ways of getting servos to work. I can find multiple posts saying that a servo's operation is PPM and that you shouldnt use a analogWrite() to move it. I have also read that it is PWM. Can this be clarified?
With the servoDecode library, is that intended for PPM in the manner I am looking to use(reading ALL Channels from a single pin), or from a single Channel pin on the RX (IE: Ch 3 from the RX)?
Next is probably something silly, but i will ask anyways......
Once I have the chip programmed, is there anything stopping me from removing it from the board and putting it into a DIY PCB I make?
does anyone know if DSC this is a INPUT only or can I READ PPM off of it as well?
I would guess that it is an input on an Rx and an output on a Tx (but not actually used a Futaba Rx so don't know for sure)
I want to, hopefully without having to solder to a pin on the uC, read the full 3Ch's into the Arduino.
If the PPM is not output on the DSC then you may need to solder. There is an article on getting PPM out of a Futaba Rx here: Hacking a PPM signal out of a futaba receiver
I have seen MANY different ways of getting servos to work. I can find multiple posts saying >that a servo's operation is PPM and that you shouldnt use a analogWrite() to move it. I have >also read that it is PWM. Can this be clarified?
Servos are PPM but the pulse timings can be emulated by carefully timed PWM signals. These signals are not the same as the PWM output from analogWrite
With the servoDecode library, is that intended for PPM in the manner I am looking to >use(reading ALL Channels from a single pin), or from a single Channel pin on the RX (IE: Ch >3 from the RX)?
It should work on a single channel, but you would only get that channels information
Once I have the chip programmed, is there anything stopping me from removing it from the >board and putting it into a DIY PCB I make?
No
ok... I have been messing around, trying to get the PPM signal from the RX i have.
I just cant seem to capture it. I have tried the following.
using mems code....
From Arduino board's pins to the RX
+5v to Pos Ch1
Gnd to Gnd Ch1
Pin 8 to Signal Ch1
I have tried both of the following:
volatile byte pulseEnd = PULSE_START_ON_RISING_EDGE ; // default value
volatile byte pulseEnd = PULSE_START_ON_FALLING_EDGE; // inverted pulses
I dont get anything except
The decoder is NOT_SYNCHED
Cx1= 0 Cx2= 0 Cx3= 0 Cx4= 0 Cx5= 0 Cx6= 0 Cx7= 0 Cx8= 0
unless i disconnect pin8 ...then it syncs and goes into failsafe.
This is driving me nuts.
I am running a R603FS Fasst Futaba RX in PPM mode.
That code does not read the PPM stream. If it does what you want then you are good to go. If you need to read the PPM stream then getting that code to work is not relevant.
Why wouldnt ServoDecode work!?
ServoDecode needs the composite PPM signal, are you sure you are getting a clean composite signal out of your RX?
If I plug into Ch1, 2 OR 3 directly, would I be able to atleast read the single channel's PPM?
I tried finding the stream off the IC within the RX, but my skill level is no where near the level needed to be messing around with a $99.00 RX that a wrong prod or poke could kill it.
using the other code though... I managed to figure out a way to grab the signal and do what I wanted. Im just not sure its the best way of doing it. I would rather learn the right way instead.
If I plug into Ch1, 2 OR 3 directly, would I be able to atleast read the single channel's PPM?
As I mentioned in reply #2, it should work. Because your replies span multiple posts I am not sure if you tried this. If the comments in post#7 relate to post #8, it would be clearer if you put them in a single post.
Edit - it did not work for me - see the next post:
I just did a quick test with Servo Decode connected to a servo pin and it does not detect sync. If you want to measure a single channel best to use pulseIn or similar.
According to the information on that site, a Futaba crystal should probably work.
The PPM stream is on pin 5 of the receiver microcontroller. Here is a picture of the one I tested with the ServoDecode library
The yellow wire soldered to pin 5 connects to Arduino pin 8
I really appreciate the help you have given me so far... makes this learning so much more enjoyable and less thinking I am doing something wrong, even though I probably am here and there.