Here a video of the test of a Nimbus 4 meters wingspan electro-glider piloted by the firmware ArduPlane 2.28xp1 (updated version with a JLN mod). Test done in HIL mode with the AeroSIM-RC v3.83 simulator connected through the AP Mission planner v1.1.30 on an ArduPilot Mega board v1.

Test Mission profile:

  1. Full AUTO TakeOff,
  2. Exec of the flight plan (8 Waypoints),
  3. Full AUTO Landing.

The original ArduPlane v2.28 firmware has been updated (xp1) with some improvements:

  • Tuning of the final slope for a smooth touchdown, tested with the Nimbus 4 on AeroSIM-RC 3.83 in HIL mode,
  • Auto calculation of the wp_radius Vs the ground_speed and the max turn angle in AUTO mode so as to get the best turning point at the Wp,
  • add the CLOSED_LOOP_NAV ENABLED switch to allow redoing the flight plan after the end of the exec,
  • add HIL mode test in GCS_Mavlink.pde for AeroSIM RC v3.83 (and also Xplane v9), the APMHill plugin tested with the Nimbus 4m electro-glider model,
  • the CLI switch can be disabled, this allows to use only a APM CPU board without a full IMU shield for HIL test.






This is a part of the project Thermopilot (a Thermal Hunter drone): The purpose is to build a full autonomous Thermal Hunter Glider which is able to fly for a long duration in an area defined by a radius, a ceiling and a minimal altitude. The glider uses thermal soaring and dynamic soaring methods commonly used by full scale gliders during cross country soaring competitions. The ThermoPilot has been tested successfuly in flight during the summer and spring 2011 on a Cularis and a ASW24 3.50m electro-glider (below). Lot of flights have been done in high mountains (slope/ridge soaring) and above the fields (thermal soaring).



The Thermopilot project will continue intensively during the spring 2012... Stay tuned...

Regards, Jean-Louis

More infos at:

E-mail me when people leave their comments –

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

Join diydrones


  • Hi Jean-Louis,

    Sorry to bother you again..that too on a weekend, but I am trying to get the telemetry over xbee working on Serial port 3, but to no avail. I have set the following parameters in the APM_config.h file


    #define GCS_PORT 3

    #define SERIAL3_BAUD 38400

    I am using your firmware for HILS w/o the IMU shield.Could you please help ?


  • Hi  Jean-Louis,

    Thank you so much for the timely help & support. Worked beautifully.Keep up the great work.


  • Developer

    Hello Swaroop,

    You need to use the the Arduino-0022-relaxpatch to compil it successfully at:

    I have just checked this myself and it works well, see below:


    Please don't forget to use the library attached with the firmware...

    Regards, Jean-Louis

  • Hi  Jean-louis,

    Thanks for the prompt replay. I am trying to compile your ArduPlane using the APM specific arduino-1.0-relax patch, it s giving me errors like:

    In file included from C:\arduino-0100-relax\libraries\AP_GPS/AP_GPS_Auto.h:9,
    from C:\arduino-0100-relax\libraries\AP_GPS/AP_GPS.h:13,
    from C:\arduino-0100-relax\libraries\AP_Mount/AP_Mount.h:25,
    from C:\arduino-0100-relax\libraries\AP_Mount\AP_Mount.cpp:3:
    C:\arduino-0100-relax\libraries\AP_GPS/../FastSerial/FastSerial.h:47:3: error: #error Must include FastSerial.h before the Arduino serial driver is defined.
    In file included from C:\arduino-0100-relax\libraries\AP_GPS/AP_GPS_Auto.h:9,
    from C:\arduino-0100-relax\libraries\AP_GPS/AP_GPS.h:13,
    from C:\arduino-0100-relax\libraries\AP_Mount/AP_Mount.h:25,
    from C:\arduino-0100-relax\libraries\AP_Mount\AP_Mount.cpp:3:
    C:\arduino-0100-relax\libraries\AP_GPS/../FastSerial/FastSerial.h:95: error: conflicting declaration 'FastSerial Serial'
    C:\arduino-0100-relax\hardware\arduino\cores\arduino/HardwareSerial.h:63: error: 'Serial' has a previous declaration as 'HardwareSerial Serial'
    C:\arduino-0100-relax\libraries\AP_GPS/../FastSerial/FastSerial.h:96: error: conflicting declaration 'FastSerial Serial1'
    C:\arduino-0100-relax\hardware\arduino\cores\arduino/HardwareSerial.h:69: error: 'Serial1' has a previous declaration as 'HardwareSerial Serial1'
    C:\arduino-0100-relax\libraries\AP_GPS/../FastSerial/FastSerial.h:97: error: conflicting declaration 'FastSerial Serial2'
    C:\arduino-0100-relax\hardware\arduino\cores\arduino/HardwareSerial.h:72: error: 'Serial2' has a previous declaration as 'HardwareSerial Serial2'
    C:\arduino-0100-relax\libraries\AP_GPS/../FastSerial/FastSerial.h:98: error: conflicting declaration 'FastSerial Serial3'
    C:\arduino-0100-relax\hardware\arduino\cores\arduino/HardwareSerial.h:75: error: 'Serial3' has a previous declaration as 'HardwareSerial Serial3'

    So there must some conflict between the existing Arduino headers and the FastSerial library header....

    Could you please help me out??

    I also tried the arduinocpp tool for compiling your code. It gave a LOT of weird errors, more than arduino.

    Thanks again for your support.



  • Developer

    Hello Swaroop,

    The official version of ArduPlane v2.34 need to be patched so as to be used without IMU shield. If you want to use your APM IMUless version with the mission planner, I recommend to use my customized ArduPlane v2.28 version at:

    Ps: You must use the library included in the zip.

    Regards, Jean-Louis

  • Hello  Jean-louis,

    I tried using the HIL mode of ArduPlane 2.34 without the IMU shield. I am not being able to connect it to APM planner. MAVlink times out. I have set the parameters

    #define HIL_PORT 0
    in the APM_config.h file

     Is there any other configuration required to use the APMv1 in HIL without the shield?

    Thanks and Kudos again for the wonderful work...


  • Hello  Jean-louis ,

    I'm very appreciate your response - I'm Not familiar  with the ArduMega  especially with the landing capability.

    My question was not because I want to make any change on the ArduMega  source code ...  

    The reason that I simply want to see/understanding the ArduMega  lending algorithms - thus simple as it !!!

    We wants to integrate the ArduMega in our project - to replace it with an old electronics - 4 modules...

    Following to - One of the basic way point commands description is for example

     {NAV_LAND n/a, alt, lat, lon}

    I'm very  interesting / also have  to convinced my  supervisors about it - If  it's really  work ... so I didn't find it... on the ArduPlane-2.32\libraries

    In the past I working familiar  with GNU C under Eclipse IDE . -

    I'll take your  recommend and  visit the main Arduino tutorial page at:

    I use a simple and popular editor SlickEdit to -  follow on the command Top down

    Thanks again for your response

    Regards, Moshe

  • Developer

    Hello Moshe,

    I think that you need to really understood how the Arduino IDE works before any atempt to change the ArduMega source code... So, I recommend to visit the main Arduino tutorial page at:

    Regards, Jean-louis

  • Hi Jean-Louis

    Thanks. but where I can dind the following files u mention 



    It's C, C++ soorce code ? please send me a link

    On There isn't information regarding to my request ...


  • Developer

    Hello Moshe,

    You will find my auto-landing code embedded in the files:



    If you are new in this field, I suggest you strongly to visit the Wiki dedicated to the ArduMega Pilot at:

    Regards, Jean-Louis

This reply was deleted.