Here a video of an autonomous flight with a Maxi Swift flying wing fully piloted by the firmware ArduPlaneNG v2.x R5 with an All In One Pro (AIOP) full IMU board.This is a porting of the ArduPlane v2 (v2.4+v2.5) firmware and special addons and improvements for the AIOP board that I have added.
The wind was 15 km/h gusting 22 km/h. The flight was very stable in spite of the gusty wind conditions.




  • IMU board: All In One Pro (AIOP) v1.0 from CRIUS,
  • GPS: Crius CN-06 (Ublox NEO-6)
  • AirSpeed sensor: MPXV5004DP (from a old ardupilot one shield)
  • firmware ArduPlaneNG V2.x R5, porting of the ArduPlane v2 + special addons for the AIOP v1 IMU board by JLN


Flying Wing: Maxi Swift from MS Composite (1m40 wingspan)

  • brushless motor Spitz 30 850 kV, 360W with a propeller GWS 10x4.5
  • Lipo: 3S EVO25 2650 mAh
  • Receiver: Turnigy 9X8C v2
  • Transmitter: Turnigy 9x with Er9x firmware


More infos at:

E-mail me when people leave their comments –

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

Join diydrones


  • Thanks for all your work JLN I would like to try it out soon. I noticed the AP_Limits folder was missing in the Libraries File as per  at Ardupilotdev google pages and caused some compiling errors so I added AP_limits and now it compiles good. Cheers

  • I'm working to setup my flyingWing with Crisu AIO and the porting of ArduPlane made by Jean Luis Nadine.

    After a little trouble in code compilation ia have good result and the plane is  ready to fly.

    The rc command are correct, the Crius response in stabilize mode seems to be ok too.

    If i connect the Crius board via micro usb or via S0 port via BT module at 115200 baud, i can see the telemetry and i can send o receive any parameter via Mission Planner.

    If i connect the Xbee module via S3 (serial port) at 57600 baud, the connection via Mavlink protocol is good, i can read some parameter, but i cannot see the horizon position in Flight Data tabs.

    So i think the telemetry is not perfectly working?

    Thanks Jean Luis  for this improvement, i will try with un affective fly as soon as possibile.

  • Developer

    Here the good method for the mode switch and the use of the FailSafe for RTL. I recall that you must use a receiver which is able to handle the RSSI signal to activate a true FailSafe state on the receiver outputs (i.e: Multiplex, Graupner, JR, Hitec, Futaba receivers...)
    With the mission planner you need to check that :
    - the Radio 8 channel is used to switch the MODE (MANUAL, STABILIZE, AUTO) during a normal flight,
    - the Radio 7 channel is used to CLEANUP the FPL (in MANUAL mode) memory and SAVE_WP (in STABILIZE mode) or RTL (in AUTO mode).

    The transmitter use a 3 buttons switch to select the modes in normal flight. There are 3 positions :
    - Flight Mode 6 corresponding to MANUAL (High position with PWM 1750 +),
    - Flight Mode 3 corresponding to STABILIZE (Middle position with PWM 1361-1490),
    - Flight Mode 1 corresponding to AUTO (Low position with PWM 0 -1230).

    So, how to set the RTL mode when the receiver is switched to the FailSafe mode ?
    You need simply to set the Flight Mode 2 (PWM 1231-1360) to RTL with the mission planner and with the ATV of your transmitter set the max value of the Switch mode so as to have a PWM between 1231 - 1360 µs (i.e. 1300 µs) and then store on your receiver this position as the FAILSAFE value.
    So, then the transmitter is switched off the receiver set the channel 8 to this Flight Mode 2 corresponding to RTL...
    Don't forget to set back the ATV of your switch mode of your transmitter to the max value corresponding to the Flight Mode 1 (AUTO mode).

    That's All and this work very well with true Failsafe receivers...
    Below, the screen of the mission planner radio configuration for the ArduPlaneNG v2.x R5


  • Does Arduplane support failesafe with turnigy 9x radio ?

    Not an easy answer. The stock 9x radio receiver doesn't directly support failsafe. In other words, it does a very specific function that cannot easily be modified when radio signal is lost. It puts out center on all channel outputs except throttle which it drops all together. In theory, this would make an ESC go into invalid signal input and beep and not spin the motor, however a servo attached to the throttle channel would appear to be dead (no longer hold position and stay at the last postion before lost signal). Point being, the PPM encoder that reads the signals from the receiver and sums them into a single input on the APM is the same for both arduplane and arducopter, but it acts like the servo and thus the loss of signal on the throttle channel while still receing valid center signal on the other channels results in the APM receiving stuck throttle. Alternatively, most 9X users upgrade the radio to use the FrSky modules which replaces the entire RF section and receiver as well and does properly support failsafes. They also have an alternate PPM firmware that can be put onto the APM board, that detects the lost thorttle signal, but there is a minor resolution loss using that firmware.

  • Does Arduplane support failesafe with turnigy 9x radio ?

  • JLN,

    Can you comment on what was involved in the porting process and how your version might be updated in the future with enhancements developed for the ArduPlaneNG code for APM? Is this now a separate fork of the code or is there a way to support both AIOP and APM with the same codebase?

    Do you plan to port the AduRover code to the AIOP as well?

  • Developer

    Here a video of an autonomous mission flight with a Maxi Swift flying wing piloted by the firmware ArduPlaneNG v2.x  R5 with an All In One Pro (AIOP) full IMU board. In this test flight the STABILIZE and AUTO mode and the RTL mode has been tested. The video has been shorted due the total duration of the flight and only one closed loop turn has been showed here. The video has been taken with an EVO HD Cam sports video camera. The flight plan has been defined with 6 waypoints (2km turn) and runs in closed loop around the airfield.

    The wind was blowing at 11km/h gusting 17 km/h.

    This is a big size video, so I recommend to set to pause, wait the loading (grey bar) and then play the video. This will avoid some lag during the playing.

  • Developer


    Here some technical infos about the Differential Pressure sensor MPXV7002DP used for the airspeed measurement with the pitot tube. You will find the filtering components recommended to add at the output of the sensor for a good measurement.


    The full datasheet can be downloaded HERE

  • Developer

    Hello Rana,

    Its a big size video because the flight time of this autonomous mission is big in spite that I have shorted the total duration (>30 min flight).

    So, I recommend to preload the video (click on PAUSE) and wait the grey bar loading to be full, then click on PLAY... So, you will be able to watch the video at full speed.

  • Developer

    You will find here my working setup of my Turnigy ER9x transmitter that I am using with my Maxi Swift flying wing and the ArduPlaneNG 2.x R5 with the AIOP.


    You will find also the tested in flight PIDs parameters.


This reply was deleted.