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.



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

Join diydrones

Email me when people reply –


  • Thanks to everyone who helped with this issue. I managed to sort it with Randy's short term method of altering the code. 

    As there was an air of uncertainty with regards to changing channel 3 (throttle references to different flight modes) I decided to just set my tx to mode 2 and just change channels 1 and 2. I did this by modifying the radio.pde's read_radio() function in the arduino program downloaded from the downloads area. Randy has mentioned that a more permanent fix will be available in a later release, if not the next one the one after that.

  • Developer

    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:


  • 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,




  • Bill,

    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  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 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 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,



  • 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.

  • Developer

    I just had the same issue see

    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.

  • 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!


  • T3
    Also you can reverse direction on your transmitter if it supports it.
  • T3
    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.
This reply was deleted.


DIY Robocars via Twitter
RT @SmallpixelCar: My car was able to go all the way autonomously until the crosswalk. It was only 100 yards from the target. What should b…
20 hours ago
Liam left a comment on Agricultural UAVs
I'm Liam from T-MOTOR. I would like to reach out to see if there is any possibility for us to work together.
We are a propulsion system manufacturer who offers motors, propellers and ESCs for all kinds of drone applications which vary from secur…"
DIY Robocars via Twitter
RT @SmallpixelCar: Smart move. The car used the shadow to guide it through the bridge. This was never in the training samples. But it learn…
DIY Robocars via Twitter
RT @SmallpixelCar: Getting closer to the target. Single camera. Untrained road.
Richard Cox left a comment on Australia
"Anyone in the DIYDRONES Australian subgroup based in Alice Springs, NT?
I am experimenting with Ardupilot (standard Arduplane), Pixhawk 4 FC in a 4-ch
RC "AXN Floater Jet" foamy plane..."
Omar Sykes left a comment on Australia
"Hi everyone, I am looking for someone who is good at drone building, repair and software in Adelaide. Please give me a call on 0477 319 219."
DIY Robocars via Twitter
RT @RoboticMasters: #donkeycar
DIY Robocars via Twitter
DIY Robocars via Twitter
RT @RoboticMasters: Donkey car, car car car car car car; Donkey car, car car car car car car; Donkey Car. Anyone like our tiny tiny donkey…
DIY Robocars via Twitter
RT @SmallpixelCar: After improving DBSCAN speed, I can get 11 frame per second on @NVIDIAEmbedded Jerson Xavier MAXN mode and the autonomou…
Jun 26
DIY Robocars via Twitter
RT @Heavy02011: Join us at next Virtual Race League: ⁦@diyrobocars⁩ Race #4 - Parking Lot Nerds, August 1st
Jun 25
DIY Robocars via Twitter
RT @SmallpixelCar: #CUDA implementation should be easy, because most of the time is on distance calculations berween two points and if the…
Jun 25
DIY Robocars via Twitter
RT @SmallpixelCar: This is the view from the car. Even my lanenet inference is fast on @NVIDIAEmbedded Jerson Xavier, DBSCAN clustering tak…
Jun 25
DIY Robocars via Twitter
RT @SmallpixelCar: Ran my car in the park, with single camera and @sparkfun IMU. #TensorRT on @NVIDIAEmbedded Jetson Xavier. Lanenet one fr…
Jun 24
DIY Robocars via Twitter
RT @SmallpixelCar: Making progress on drive the car autonomously in my neighborhood. This run used single camera only. No other sensors. ht…
Jun 24
DIY Robocars via Twitter
RT @chr1sa: The @DIYRobocars/@donkey_car AI racers are getting *fast* in the simulator, in part because it's so well optimized for reinforc…
Jun 21