FlySky RM003 RF Module & iA6/iA6B receivers

Like B&Q for homebrew radios
Mike_K
Posts: 298
Joined: 16 Feb 2018, 06:35

Re: FlySky RM003 RF Module & iA6/iA6B receivers

Post by Mike_K » 03 Jun 2019, 11:56

Hi Max

If your module works with another transmitter, we should be able to get it working with the S/C encoder. There are a few other possibilities that could be stopping it from working that I can think of.

First, the FlySky module will probably be an arm based processor working on 3V, so unless you've fitted a Schottky diode, you'll be outputting 5V logic and it is expecting 3V logic. The S/C Encoder has no Schottky diode fitted as standard as I was trying to keep the hardware as simple as possible and the modules I thought most would use, FrSky, OrangeRx and the "jumper" type multi-protocol modules don't need one. Try fitting a Schottky diode between the Arduino and module with the band on the diode towards the Arduino. In fact, if you are not using a FrSky or OrangeRx module it would probably best to always fit a Schottky diode. Maybe I should add this warning to the manual?
schottky.jpg

Next, the polarity may be wrong. Add the following below line 213

TCCR1A |= (1 << COM1B0); // when set non-inverting output
Invert_Output.jpg
I haven't had a chance to test the code alteration, but from memory, I'm fairly certain that will invert the output (maybe you'd be best to check it on a logic tester or ppm meter before connecting to the module).

Next, if you tried 9 channel outputs there is a chance that it would need a longer frame rate of 22mS or more to accommodate the 9 channels and have a long enough sync pulse. The encoder has a 20mS frame rate by default and many modules need a minimum of a 4mS sync pulse. With 9 channels all at the maximum 2mS output that would be 18mS and not leave enough time for a 4mS sync pulse. I doubt that is the reason why it isn't binding, but you could try making the "extra" channels only 1mS (1000uS) rather than the 1.5mS or better still change the frame rate to 22mS as well.
frame_rate.jpg
Again I haven't tested the above but I'm 99% certain that is how to increase to a 22mS frame rate.

If none of the above works then you may have to wait for Phil to get a module to test and find what settings to use.

Mike

User avatar
F2B
Posts: 120
Joined: 16 Feb 2018, 11:23
Location: 20 m NE of Amsterdam

Re: FlySky RM003 RF Module NEEDS REVERSE PPM POLARITY!!!

Post by F2B » 03 Jun 2019, 15:23

OK guys, stop searching. :D
I've cracked it.....
Reverse polarity and go.

I've taken my DeekRobot nano board I'm using for all experimenting and testing,
put in 'my' (in reality of course Phil's and Frank's ;) ) SC code, nothing.... :cry:

Then I changed this line:
//send ppm frame, last channel holds sync value
for (int ch=0; ch<7; ch++) {digitalWrite(ppm, HIGH); delayMicroseconds(ppmPulse); digitalWrite(ppm, LOW); delayMicroseconds(channel[ch]);}
into:
for (int ch=0; ch<7; ch++) {digitalWrite(ppm, LOW); delayMicroseconds(ppmPulse); digitalWrite(ppm, HIGH); delayMicroseconds(channel[ch]);}

and all sprang to life.... :mrgreen:

P.S. I tried it with a 6 channel frame, 5 or less not so succesful.
Probably because, in my hurry, I didn't recalculate the required settings right.
But that's up to Max for trying.... ;)
F2B or not to be....

MaxZ
Posts: 170
Joined: 31 Jan 2019, 11:48
Location: Boskoop, Netherlands

Re: FlySky RM003 RF Module & iA6/iA6B receivers

Post by MaxZ » 03 Jun 2019, 16:19

Good for you, Bruno! I will get to it asap. Mike has provided the howto, see below.
Mike_K wrote:
03 Jun 2019, 11:56
Try fitting a Schottky diode between the Arduino and module with the band on the diode towards the Arduino.
Phil wrote this in his review of the RM002 module: Like many JR modules, it needs to see a voltage swing on the PPM input, open-collector (or schottky-isolated PPM) will not drive it.
So I guess I'd better not add the Schottky, even though this is a different version of the module.
Mike_K wrote:
03 Jun 2019, 11:56
Next, the polarity may be wrong. Add the following below line 213

TCCR1A |= (1 << COM1B0); // when set non-inverting output

Invert_Output.jpg
Bruno says he is certain the ppm polarity should be reversed, so I will try that next.
I will also revert to the original 4 channel code, with only the programming jumpers changed to DIL switches.

Thanks for the comments Mike, I appreciate the help of you and others to get my FlySky module going.

Cheers,
Max.

MaxZ
Posts: 170
Joined: 31 Jan 2019, 11:48
Location: Boskoop, Netherlands

Re: FlySky RM003 RF Module & iA6/iA6B receivers

Post by MaxZ » 03 Jun 2019, 16:54

TADAAAAAAA!!!! Everything works!! :D :D :D :D :D
The mystery solved, thanks Bruno, Mike, Phil and others who helped solving it.

Cheers,
Max. :D

User avatar
F2B
Posts: 120
Joined: 16 Feb 2018, 11:23
Location: 20 m NE of Amsterdam

Re: FlySky RM003 RF Module & iA6/iA6B receivers

Post by F2B » 03 Jun 2019, 16:58

It's all well that ends well...

Oh wait, all you'll need still is a throttle position blinker like I have. :mrgreen:

I tried bringing down the channel format below 6, but in any way the whole thing went (little too severely) funny. :?
Still worked, but strange responses like slowing down the rudder movement at full throttle, etc.
The FlySky receiver apparently doesn't like that.
So I went back to 6 channels and all is fine again. :P
F2B or not to be....

Post Reply