I just pushed Arducopter 2.2 to the Mission planner. This version went through extensive testing by a brave group of flyers and with both HIL and SIL testing.

See this link for more:


If you run into any problems please let me know here. If you find a reproducible bug, please add it to the issues list.

tuning tips:

If you run into Loiter issues, try adjusting LOITER_P. It's 2.0 right now which may or may not be to aggressive for your copter. Nav is no longer used in Loiter control, which should make tuning easier.

If you run into a circling issue, try lowering LOITER_I to 0 and see if it goes away. If not, check your compass declination. A negative error will produce CCW rotations, a positive error CW.

If you have issues with alt hold, try lowering your THROTTLE_P, it may be too high for higher thrust copters.

If you have wobbles and can't seem to get rid of them, there is a new term called STAB_D, which is a derivative term used to tune out the wobbles. You can increase it until they stop, but just like driving a cadillac, you loose some performance and handling. In the CLI "tune 16" in setup will let you control this in flight, and "tune" in test menu will let you see the value printed out interactively before flight. See the wiki for more detail.

Many testers gave me a thumbs up on the code, so if you have an issues please post the flash log from the copter. The tLog isn't that much help to me for debugging as it doesn't capture the needed values at high enough rates.

(Remember, if you'd rather pull the code from the repository and load it with Arduino, you must use the "relaxpatch" version of Arduino in our downloads section.)


Update 2.2b2

I believe I found the simple mode error. It was a bug that was working OK until Tridge fixed it so it was declared properly. Then the bug became active. I made the Simple mode function internal variables static and this should fix it hopefully.

I updated alt hold to not use dampener for now until we get more testing. Some folks saw a latency induced oscillation which was pumped up by the D term.

I added the automatic throttle cruise or hold value as a compile time option for testers. This basically looks at your throttle and climb rate while in stabilize or acro and determines your optimal hover value. This means you can enter any autopilot mode and not have to worry about your throttle position. It should make alt hold more reliable if it works. This is off by default until we get good field tests back.

Update pushed to GIT.

Update 2.2b3

Just some refinements. I added JLN's throttle curve mod for landing. Hopefully that's correctly implemented. 

Made the landing delay from RTL user settable

removed the ADC gyro filter, I was doing a lot of testing and determined it wasn't worth it.

Enabled the auto-throttle control by default. Please test in the sim

Altitude no longer resets when flying in Loiter mode

Pitch and roll dampening is smoother now. try values up to .08 for very dampened flight.

Mavlink can now trigger auto-land

I'll push a hex when I hear some good news from HIL testers.

Update 2.2b4

Flew today and saw the WP speed governor wasn't quite working right. It was going down to 0 rather than the minimum.
Made internal switch to CM for distance calcs. This should not make any change to gains or MP.
Modified a few default gains for jDrones frame based on AP test flights of this code in some heavy wind on my roof.
Fixed an issue with the landing code not kicking in right away.
Decreased the slowdown near WPs
Added a limit to the amount the pitch compensation can effect the throttle if the throttle input is really high or maximum


Update 2.2b6

This is a rollup of all the code that's been flying around for the last week as well as a few bug fixes. I'll be posting it saturday night after reviewing all of my logs.
A dampening term called STAB_D has been refined. A D term for all of the Rate based control loops has been added based on Igor's work. Landing for Baro and Sonar has been refined based on JLN's work. A slightly new approach to Loiter and Navigation is being used to try and linearize the pitch and roll for rate control. It tends to use lower gains, yet has a more assertive response in the air.
I have one small loiter control issue to sort out tonight based on my logs, then I'll post to GIT.
Here is the auto-landing code in action. 

OK, 2.2b6 is on GIT. The Mission planner is going to be out of sync until the release code. until then you can use the APM_Config.h or the parameters list in the Mission planner. 

STAB_D : This is the gyro accretion dampener. This can remove small wobbles during sharp changes in angle commands. Making this too high can have a negative effect in performance and add a memory effect that can cause temporary loss in control. The in flight tuning is ranged so you are just below that effect.

If you haven't noticed before the control loops are in two stages. The first is a PI stage that converts some sort of position or angle error into a desired rate. These generally do not need to be tuned. They are more of a user preference on how fast you want the copter to perform a motion. 

The second stage is the actual PID loop that needs to be tuned for the copter. This converts the desired rate into a motor command of some sort. I added a D term based on Igor's recommendation to the PI's for each rate controller. These should show up soon in the mission planner for the release. I cannot give you a concrete answer for how to tune the D terms, because they each depend on their function such as alt hold or loiter, etc.

Still, the absolute most important term is always the Rate_P term for each loop. Start tuning here.

The default PIDs are in the what flies great for a stock jDrones/3DR Quad with the purple motors in X mode.







Views: 60985

Reply to This

Replies to This Discussion

Congratulations Rui Manuel,

Regards, Jean-Louis

So if Jason could maybe react to this and let us know if it is possible to rework the 2.0.49 code (I understand that there were 2 bugs, i2c library and I-term)?

It would also be nice if a software release is directly linked to a certain Mission Planner release.

So when downloading a certain version of MP you will automatically install a specific ArduCopter code that belongs with it.

I don't recognise "2.2b2plus code base". I can only see "2.2 b2" and "2.2 b3" as firmware versions in the code repository. I must be missing something...

Wow, here in the UK we have winds 25-30mph at the moment but I've just had two test flights using this version without changing any parameters at all.

Tested various elements including Loiter,RTL and Simple mode. Yet to try waypoints. 

Just one word  STUNNING  !   Thanks Jason and all those testing the betas.

Hello Marco,

What do you think about the stability of the B3 ? Does it is more stable with this new PIDs than the B2 ? What change about the LOITER D ? Does you use an APM v2 or an APM v1 ?

This afternoon I have begin new tests flight with my new quad with the APM v2 board and the ArduCopter v2.2 b2xp3... Due to the stormy weather here, the tuning have been a bit hard... but it flight... No deep tests have been done, only short tuning of the PIDs... Its seems that the APM v2 is more sensitive and need an accurate tuning than with the APM v1 and it have a fast response time.

Below some photos of my new quad... Stay tuned...

Regards, Jean-Louis

Yes. JLN told me to put 4 instead of 400. Also I raised a bit the nav P !

Beautifull quad, JL! :-)
Props are EPP 10x4.5 i think, and motors?
I've APM1, i write my params in my previous post, with my ß3 report.

Nice quad JL! Let me know if you have any drift issues relating to accelerometer vibration.

I cant get my APM2 to run on 2.2b2 without serious drift. Apparently its caused by vibration.

What code will you be running on your APM2?

Thanks :)

Hello Marco,

Here my setup:

Avionic setup:
- Ardupilot Mega v2
- firmware Arducopter V2.2 b2xp3

- Receiver: Turnigy 9X8C v2
- Transmitter: Turnigy 9x
- uBec 5V @ 5A Turnigy

Quacopter frame:
DJI Flame Wheel F450

Hardware Setup:
- four brushless motors RC Timer BC-2836/11 (750 KV)
- two CW propellers  12 x 4.5
- two CCW propellers 12 x 4.5
- fours ESC 40A RC Timer speed controllers
- one Lipo battery 3S Turnigy Nano-Tech 2200 mAh

- Take Off Weight (TOW): 1088 g without payload

- Flight time: about 10 min

Regards, Jean-Louis

Hello Gareth,

At this moment, I am using the v2.2 b2xp3, I have changed my frame orientation form + to X... The tuning of the PIDs is a bit hard compared to my previous quacopter in + mode. I don't know yet if it is due to the change from + to X or due to the change from the APM v1 to the APM v2...

I have lost all my sunday afternoon to try to get a stable flight, now, the stabilize mode seems ok, but sometimes the quad jerk violently from one side to another... I need to understand why... This is not yet a secure flight as far as I am concerned and I haven't yet been able to tests some others features such as ALT_HOLD, LOITER, AUTO LAND because the STABILIZE is not really stabilized... My priority now it to get a good STABILIZE mode with this new quad X frame with the APM v2.

Regards, Jean-Louis

Hello Marco,

with your tested parameters on the B3, have you retried to use them with AeroSIM ?

Does it is steerable now on AeroSim ? I need to understand in deep why the HIL mode doesn't work properly with the B3. Now, I dig the B3 code from Jason to check the difference between the B2...

Regards, Jean-Louis


Have tryed smaller props?

Reply to Discussion



Season Two of the Trust Time Trial (T3) Contest 
A list of all T3 contests is here. The current round, the Vertical Horizontal one, is here

© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service