Maping a RC transmitter to an RC receiver.

Hi all, i am trying to work out how to map the controls of a small RC helicopter i got laying around, i read of the heli that it operates at 40MHz so i bought a Corona RS610II receiver(also operates at 40MHz) and hooked it up to my arduino with 5v, GND and the signal pin to a PWM input and im trying to read the pin using pulseIn and im getting some really weird values, first of all i know that it is working because as soon as i turn of the transmitter i get no values at all anymore. The problem here is that im getting some really inconsistent readings, i get alot of 0's and then all of a sudden i get some values in the 1000-2000 range :S

here's a dump of the serial monitor:

Channel1: 1583
Channel1: 0
Channel1: 1583
Channel1: 1583
Channel1: 0
Channel1: 0
Channel1: 0
Channel1: 0
Channel1: 0
Channel1: 0
Channel1: 0
Channel1: 0
Channel1: 0
Channel1: 0
Channel1: 1583
Channel1: 0
Channel1: 1577
Channel1: 0
Channel1: 1578
Channel1: 0
Channel1: 0
Channel1: 0
Channel1: 1584
Channel1: 0
Channel1: 1577
Channel1: 0
Channel1: 0
Channel1: 0
Channel1: 0
Channel1: 0
Channel1: 0
Channel1: 0
Channel1: 1578
Channel1: 0
Channel1: 0
Channel1: 0
Channel1: 0
Channel1: 0
Channel1: 0
Channel1: 0
Channel1: 0
Channel1: 0

as u can see i am getting some semi-decent values at times and then all of a sudden it is just garbage again :L and it does not seem to react when im adjusting the controls on the transmitter either, the values just come at random times even if im touching the controlls on the transmitter or not.

i was wondering if i would have to do something to the signal in order to be able to read it or not, i really do not have a clue. any help on the subject of mapping the values from the transmitter to the receiver would be great :slight_smile:

btw, here's the code that im using for reading allthought it ain't much:

const int channel_1 = 2; //pin 2
int value_ch_1 = 0;

void setup() {
pinMode(channel_1, INPUT);
Serial.begin(9600);
}

void loop() {
value_ch_1 = pulseIn(channel_1, HIGH);
Serial.print("Channel1: ");
Serial.println(value_ch_1);
}

Servo pulses usually take 1000-2000µs, so your readings may make sense.

I wonder what you want to build, after all?

It's my understanding that RC servo signals are time-division-multiplexed over the standard pulse period (50Hz~400Hz).

This explains the small change in PWM for any given one servo control pulse (and resultant signal of interest to noise ratio drop) ... If it weren't that small you couldn't have either update periods as fast as they are or as many individual signals multiplexed per single radio channel (standard trade-offs).

Maybe you knew this ... I've just had a coffee so I'm typing more than reading :slight_smile: