Alt Hold ... not

Has anyone any ideas re altitude creep. I’ve tried settings for AltHold P from 0 to 2 and nothing I do will make my Hex stay put.

Engaging alt hold and it just keeps going higher and higher until I have no choice but to throw it back into stabilize and bring it back.

If anyone has any ideas I’d appreciate it, I’m reluctant to try any other modes until I get this resolved.

Log attached. Ignore the Flight Error 16 - this is related to Pos Hold which is the next mode on my switches (pulled down when I should have pushed up to get back to stabilize).

The altitude is also lying. When I selected Alt Hold I was between 2 and 3 metres altitude, when I took control back it was up to almost 6 - as high as the top of the house basically - notice that my DAlt is constantly increasing - my hover position is approx 50% stick (but I have a trim throttle value of 682) so I’m coming to the conclusion that the DJI E300 system on 3S batteries is grossly underpowered. Notice when I land that it is -ve …

I am not touching the throttle after engaging alt hold but my DAlt is gradually rising, this is clearly the issue but what is causing DAlt to increase with no input from me. I’m going to try increasing the PWM around trim dead zone for RC3 and see what effect that has.

My controller is between the top and bottom plate of my frame (DJI Flamewheel F550) so is pretty well shielded from light and propwash - although the props blow the grass around even from 3 metres up.

I’ve noticed that just sitting here on the desk next to me that the altitude gradually creeps up, I’ve read a few posts from people that have seen this but found no solution.

I’ve managed a little progress but this raises an issue that may or may not be known.

The AltHold seems tied into the attribute THR_MID - this parameter is not automatically updated. Get this parameter set right and the copter will stay put - BUT - the throttle mid point should increase as the battery decays. When I started a flight I had a midpoint of 510 (TRIM_THROTTLE), when I finished 7 minutes later it was 640 by which time the copter would climb when put into AltHold. As an experiment I entered 630 into THR_MID and hey presto select AltHold and the copter stayed put - so I know this value is the cause of my issue - it thinks my high stick is an indication that I want to climb. If I reduce the stick it stops climbing but then when you release the althold it drops like a stone unless you can remember where the stick was when you entered the mode.

Also this THR_MID value will need to change depending upon your payload, it’s impossible to guess and yet impossible to set in flight like a ‘trim’.

Since AltHold has an impact on many other modes how do I fix this - can it be fixed - why does it even need to be - why can’t the flight controller simply try to maintain the pressure at the time the mode was set ? it basically becomes an autopilot for the throttle any how - why can’t it base its mid point off the throttle sticks position when the mode is selected and then work 20% either side of that if the pilot wants to change altitude ?

On another note I do still have altitude creep as reported by the barometer, if I sit it on the desk and ‘power it up’ I’d expect it to set altitude to 0 - but it doesn’t. In addition in the time it has taken me to type this I’ve managed to climb by almost a metre. this can not be attributed to atmospheric pressure, the pressure here has been pretty stable at 1021hPa since 08:50 this morning. I’m fortunate enough to be almost next door to a major international airport and based on it’s METAR data my flight controller barometer is reading low by 1500 pa. I definitely need sonar on this thing I think, there is no way that I’d trust this ‘barometer’ to land the copter.

I’d love some ideas here. Am I seeing issues or problems that I’ve created somehow.

I’ve been having similar problems although without the barometer complexity. I’ve been annoyed with my loaded IRIS plummeting down from AltHold when switching to Stabilize, the throttle correction needed to avoid it is significant (@65% throttle to hover in Stabilize, about 45% throttle to maintain altitude in AltHold) and the timing needs to be perfect if you want stable video. Just wanted to make sure you’d seen this as I’m almost positive it will solve my little problem:
http://copter.ardupilot.com/wiki/ac_throttlemid/

Thanks for the link.

Indeed I had already identified THR_MID parameter as the problem. I also identified that the use of 3S batteries was causing me to hold the throttle inordinately high to maintain hover for the camera / gimbal battery weight I was carrying. The flight controller basically thought that I was asking it to climb because of my stick position, you need to tell the controller where your ‘mid stick’ position is using a parameter called THR_MID but you cannot do this in flight.

The problem with THR_MID is that it is ‘fixed’ and takes no account of battery condition (charge) and how it decays during a flight. The reason I had the issue is that the developers want to provide the pilot with the ability to increase or decrease the altitude that the controller tries to stay at - by moving outside the 20% band around mid stick in the appropriate direction.

So THR_MID is used to tell the controller where mid stick is, so that it can set this 20% band - the problem is that mid stick increases as battery volts drop or decreases with a fully charged one - but THR_MID does not change. THR_MID remains the same throughout your flight but your mid stick or ‘hover’ position does not, it also doesn’t change if your payload does, it isn’t dynamic, nor is it related to the stick position when the mode is selected - and I think that it should be.

There is an attribute that tries to show the hover position but this seems to be the hover point shortly before you land - which with me is when the battery is due for changing so its value is overly high and of little value.

I’ve proven the behaviour of THR_MID conclusively with flight tests.

I partially fixed it by moving to 4S batteries and these permit me to hover between 44% and 57% - this seems to keep althold happy, I now I have a THR_MID setting of 510. I have an all up weight of 2.5kg including camera, gimbal, battery etc etc which ‘theoretically’ is outside the boundaries for the DJI F550 - but if I can’t carry my camera (an AEE S70 Magicam) and gimbal it serves only as a toy and has no value to me - finding a HD camera that’s lighter is unlikely. I could use a smaller battery but I’m not interested in anything with a sub 10 minute flight time. With a 4S 6.6Ah Multistar I get 17 minutes 40 seconds before it’s time to land, with a 3S 4.5Ah I get 7 minutes 30 plus the flight characteristics suck.

I’m told that althold has been overhauled somewhat in V3.2 so I’ll wait for that before taking matters into my own hands. I intend to modify the code to write my current throttle position into THR_MID if V3.2 doesn’t address the altitude hold.