During the alpha testing phase with the "APM Copter V3" code
i immediately reported to the Dev Team that the Loiter mode was very accurate but is not allowed to fly normally, like with other system as DJI and Mikrokopter, Zero-UAV, etc.
We preferred to make the Loiter mode that would serve to accurately reposition the multirotor, and to help beginners to fly slowly and safely.
An italian friend and developer, Sandro Tognana, collected my challenge and started to develop a flight mode as I wanted, in line with the other famous flight control board.
Another awesome programmer, Julien Dubois, has joined our team and has worked actively to implement the complicated wind compensation.
After several months of development and testing are pleased to present the "Hybrid flight mode", in two words a "flyable Loiter" with wind compensation, the code virtually switches from "Loiter" to "Alt-Hold" and viceversa when you exit and enter a sticks deadband (configurable), considering of course the compensation of the wind, therefore complies with the tuning of your multirotor.
You can configure some parameters but already with the default works perfectly, my video speaks for itself.

This new mode is currently being debugged (in alpha phase), it is therefore not available to the public, of course, will have to go into the hands of APM Copter Dev Team who will decide whether to adopt it in an upcoming release.
The results in my video are great, sorry but the audio is bad because it was very windy today, however, is clearly seen as a "Hybrid" works, is almost perfect.
In the second video by Julien you can see the Hybrid in action vs a "DJI Phantom 2" quad with "Naza 2" inside, imho Hybrid work better than the "GPS Position Hold" of DJI, especially on braking.
The tests were carried out on APM and VR Brain, but of course will work on any board that installs "APM Copter" as PX4 and Pixhawk.
I will keep you updated on the "Hybrid" developments, i'll open a discussion about this with other APM Copter developers to assess any changes in the code.

I want to say thanks to Sandro and Julien for their great work!

Bests, Marco

E-mail me when people leave their comments –

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

Join diydrones


  • my copter says thank you too, the loiter is rock solid,,, again :D but is till can fly if I need to... :) as Marco put it: "flyable loiter"! 

  • Thank you Wolke for the merge with 3.1.2 !

  • Thank you, wolke, thank you for sharing. My reasoning is that if we try a beta function, lets eliminate as much of other not related to the hybrid bugs as possible. I have run 3.1.1 and 3.1.2 and 3.1.1-rc1 with hybrid and I observed an apparent improvement in regular loiter and aly hold modes of 3.1.1 and especially 3.1.2 vs 3.1.1-rc1 w/hybrid. I still not sure why, but the difference is there! In 3.1.1-rc1 in alt hold mode altitude would drop significantly with any horyzontal movement. In 3.1.1 sagging is not noticable whith gentel stick movements. In 3.1.2 sagging is definatelly improved. So I would like to try hybrid on 3.1.2 f/w to compare the alt fluctuation which was substantial at 3.1.1-rc1
  • Hi, When will the hybrid mode be available in the rc firmware?

  • hi,

    could you post your merged result onto a google docs site?

    imo, that makes no sense in this stage of development. please do not understand me wrong. but if i understand marco right, there are some tasks to do on hybrid loiter. my step by step merge description create only a snapshot from current develop stage. also git is really god documented. there a hundreds of git howto sites in www. at least a really cool help site is available on github. i am sure, that all in hybrod-loiter involved people create a howto site for beta testers if its time for testing. i only an impatient but grateful user, who cant wait:).

    so if it will help, and you have an build environment on your computer, here is link to an git archive holding arducopter3.1.2 sources with merged hybrid-loter.

    but please hold in mind this is really alpha. configuring and building from source is documented. please read readme's inside the zip or on



  • Thank you walke! This is going to be a very new adventure for me which i intend to accomplish, in the mean time, for my copter's life sake, could you post your merged result onto a google docs site? For this you will have my copter's many thanks and praises! ;)
  • that is really simple with git. i am on linux. here git is available as package. on debian based systems a "apt-get install git" will install it. "apt-get install git-all" install all git packages. but this is not needed. to solve merge conflicts i use "kdiff3" editor. there are many other editors to view diff's. i like kdiff3. here a small step by step instruction. this is my way to perform this. on git there are many other ways possible. i like this. git is a religion, so each way has its advantages and disadvantages. 

    // clone hybrid-loiter repository

    git clone

    //rename Hybrid-Mode branch to your preferred name

    git branch Hybrid-Mode -m myHybrid

    // re-configure the remote "origin" to be the "Target" repository (diydrones/ardupilot.git)

    git remote rm origin

    git remote add origin

    // pull target repository

    git pull
    // checkout ArduCopter-3.1.2 ( last stable version )

    git checkout ArduCopter-3.1.2
    // merge myHybrid

    git merge myHybrid

    // solve merge conflicts

    git mergetool

    that's all. i must solve one merge conflict with mergetool and kdiff3. this is a non critical conflict which affect a code comment. hope this will help you.



  • Hi Wolke, could you explain how did you accomplish the merge, and which programs did you use. I noticed that both alt hold and loiter on 3.1.2 work much better than on 3.1.1-rc1 which is currently used by hybrid. as a novice Arduino hobbyist I would really appreciate the effort!

  • hey,

    that really looks fabulous, exactly what i have on my apm wish list. i flying mostly for an nature filmmaker.. one task here is to follow animals or people with a fixed distance. often with a zoom objective. if you try this in althold the copter drifts mostly away. and in loiter the commands react to slow and you overshot mostly, because to compensate this delay you will give more input as needed.

    today i locally merged Ju1ien/ArdupilotST-JD Hybrid-Mode into diydrones/ardupilot/tree/ArduCopter-3.1.2. runns mostly fine. one conflict with different commands. mergetool solved this. i compile for hexa and apm2.6. so i only configured hexa. all other i leave as default.

    upload was fine and apm_planner2 also know the new hybrid-loter. it was possible to configure modes with the flight-modes gui. also mode will correctly displayed in modes widget if mode is dialled. super:). i only a little bit wondering about cpu load. in hybrid loiter it will grow to ~95-97%. is this normal on apm2.6 board? or have i use compiler optimization flag to improve this. and if yes which?

    thx for this fabulous work,


  • i try to fly today but it was very windy I'm going to try again tomorrow. 

This reply was deleted.