Hi All,


Im having a bit of brain fade. Having just upgraded to 2.9.1 from 2.7.3 its been a while since Ive had to do much setup. Ive also added a frsky d4r-II rx in ppm mode to the mix. Ive already thrown the 27ms software upgrade onto the rx, which seemed to go ok. Ive put 2.9.1 on my apm2 all ok, Ive come to setup the radio and i seem to have my roll and pitch swapped over (when moving the roll stick on the tx, it makes the pitch bar move on mission planner and visa versa). Tried a google search to no avail. Ive also had to change from mode 1 on my jr pcm9x tx to mode 2 to get the throttle correct on mission planner.


If anyone can shed some light on my issue it would be much appreciated.



Views: 3219

Reply to This

Replies to This Discussion

You used to be able to reverse directions in the radio tuning screen. But now you have to go to advanced parameter screen and find your channel and reverse it there.
Also you can reverse direction on your transmitter if it supports it.

It is your JR tx that is the problem.  JR and Futaba assign the channels differently.  The Arducopter software is setup for the Futaba channel assignment.  I have the same problem and I have not been able to find a way of remapping the Arducopter software to work with the JR tx with PPM.  I have requested an enhancement in the issues section of the wiki, I have posted a couple of threads about this, but both have gone unnoticed so far.  I would have thought that the firmware would allowed the user to change channel assignments if needed, but it does not.  If you find a way to change before I do please let me know.

I wish the developers would at least acknowledge this post and let us know if it is possible to change the code to achieve this, or let us know that it is a major undertaking to change the code to achieve this.  I am not a programmer therefore I am at a loss at the moment where to start.

Good luck!


I just had the same issue see http://diydrones.com/forum/topics/arduplane-2-70-released?commentId...

You essentially just need to change the mixes so that Ailerons is on CH1 and Rudder CH4. Your Transmitter will still operate the same, it's just the output is swapped.


You need to keep the APM as AETR, just use the mixes from you TX to output in that order. PM me if you need more help.

Thanks for the replies, I see whats going on now. It seems after speeking to jr that my tx is unable to be programed to do the required task. Nice. Back to the drawing board i guess.

You can make it work, Switch your JR TX to mode 4, it will swap Aileron and Rudder channels. The result will work. (Unless of course you cannot do MODE 4 on the JR TX)

Hi Bill,

Thanks for replying. I wish it was that easy, but I am using a JR 10sx with the FrSky module, therefore I do not have the ability to change the channel assignment in the radio like you do in ER9X. I might be able to do some fancy mixing in the regular channel to channel mixing that is available, but that would get messy...lol. Some of the other flight controllers I have used in the past had the ability to change the channel assignment through the CLI, which made things really easy. What is frustrating is that others have also posted about this and no one usually replies, so I do appreciate you at least reading and trying to help.  Hopefully one day this feature will get implemented.

Thanks again for your suggestion,



if you look at page 43 of this document http://www.jrradios.com/ProdInfo/Files/jrpm1111.pdf you could use it to 're-wire' the outputs. You can configure say CH1 Throttle as Master and CH3 as slave and it takes 100% mix from CH1 and 0% from CH3. You do this for each channel you need to swap. TAER -> AETR mean CH1 -> CH3, CH 2 -> CH1, CH3 -> CH1, CH4 is prefect as is. (This may not work, but you never know! Oh you said that it's complicated!)

@Alex: you get it easy as you can set your TX in Mode 4 see pg22 http://www.modelflight.com.au/manuals/pdf/jr/9X%20v2%20Instruction%...

That said, If i get chance I'll look at the code, to change inputs around cannot be that hard.


Thanks for the suggestion, and what you have proposed is what I meant by channel to channel mixing.  It might work, but it would be so much easier to go to CLI and type "map AETR" and be done with it....lol.  If I get a chance this weekend I will might try the channel to channel approach.

That would be great if you could look at the code and figure it out.  Thanks again for you efforts with this issue.

I  will let you know if it works out ot not.

Best regards,


Hi all,

Ive tried all the different modes (1234) in my old jr pcmx the results are as follows -


Tables a bit pants i know!  Look along mode then look up to 'seen in mission planner' to see output.


Seen  in mission planner                  roll      pitch      throttle      yaw                       


Mode 1 on tx (my mode) -              pitch     throttle     roll          yaw

Mode 2 on tx                   -               pitch      roll       throttle      yaw

Mode 3 on tx                   -             throttle     yaw       pitch         roll      

Mode 4 on tx                   -               pitch      yaw      throttle       roll


Non of the modes work out right in mission planner and im pretty sure that my tx isnt capable of being programmed to swap channels or mix to that extent. (the chap at mcgregor uk confirmed that for me too)


So unless some one fancies doing some software mods to make it work (like the KK2 has for example) It seems I need to buy a new tx.


Fingers crossed,




Hi there.  I didn't see this thread and really wasn't aware of the issue.

The hacky solution is to modify radio.pde's read_radio() function.  This is where it copies the input from the APM_RC object to the internal "servo" objects that we use from then on.  So it looks like you could set your transmitter to mode 2 and then only roll and pitch are reversed.  You could then change the read_radio() fuction to be this.  In fact it's just the two lines in bold that have been modified slightly (CH1 and CH2 have been switched around).  If someone knows how to upload the code with Arduino perhaps they could try to make these small changes and see if it works?  Then we can make a more permanent fix for 2.9.2.

#define RADIO_FS_TIMEOUT_MS 2000       // 2 seconds
static void read_radio()
    if (APM_RC.GetState() == 1) {
        ap_system.new_radio_frame = true;

        g.rc_1.set_pwm(APM_RC.InputCh(CH_2));          // reversed for JR transmitter
        g.rc_2.set_pwm(APM_RC.InputCh(CH_1));          // reversed for JR transmitter



        // limit our input to 800 so we can still pitch and roll
        g.rc_3.control_in = min(g.rc_3.control_in, MAXIMUM_THROTTLE);
        // turn on throttle failsafe if no update from ppm encoder for 2 seconds
        uint32_t last_rc_update = APM_RC.get_last_update();
        if ((millis() - last_rc_update >= RADIO_FS_TIMEOUT_MS) && g.failsafe_throttle && motors.armed() && !ap.failsafe) {

Remember if you're uploading using arduino to an APM 2.x you will need to remove the two "//" from the front of line 5 of APM_Config.h so that it looks like this:


Reply to Discussion