Problem Althold.... in 4.0

Hello,
after upgrading to 4.0 (stable now) “althold…” doesn’t work.

when i switch to “althold” (or poshold…) the swashplate(s) jumps to the upper position (= H_COL_MAX) and cannot be moved. The heli jumps in teh sky!
there are no “bad” messages, in MP the mode “althold” ist shown, no negative tone from the buzzer.

what can it be? in 3.6.12 this works fine, and i did not make any changes.

im using Pixhawk 4 mini

Holger

Holger,
Please attach a log and your param file. That would help me to resolve your problem
Thanks,
Bill

Hi Bill,
happy new jear!
First of all, thank you again for contacting Felix, he helped me a lot!

I think I found the bug:
My H_COL_MID was way too high, almost at the top.
Now I have it in the middle, and when I switch to ALTHOLD the swashplate stays in the center of the stick.

I can also switch to ALTHOLD when the helicopter is disarmed, armed or running, the system accepts it, positive “beep” and positive display in the MP, no error messages.

However, I cannot move it up / down on the floor, whether armed or disarmed or with the engine running.

In 3.6.12 it was different. And I haven’t changed any values.
It didn’t matter with COL_MID, it worked well and I could move the swashplate on the floor.

But I haven’t flown yet.

Best regards, Holger

Holger,
Happy New Year!! I suspected that was the issue but wanted to see your param file. With 4.0 it is extremely important to properly set H_COL_MID. It MUST be set to the collective blade pitch that produces zero thrust. DO NOT just set it to the mid point between min and max.
What is the collective blade pitch for H_COL_MIN and H_COL_MAX?

@picoflug and @Felix
This changed in 4.0 because the parameter H_LAND_COL_MIN was removed. This parameter is used to limit how low the collective can go in ALTHOLD, LOITER, POSHOLD, and AUTO flight modes. basically any mode where the autopilot is controlling collective. The autopilot also uses it to judge when it is landed. So it is VERY IMPORTANT to set it correctly. If it is set improperly your helicopter will crash in while doing auto landings.
This function is now handled by H_COL_MID. it cleans up the number of required parameters. So please be sure H_COL_MID is set correctly. I have tried to make this as clear as possible in the release notes and on this site.

Hello Bill,
thank you for the info. My values are
H_COL_MIN 1230
H_COL_MID 1320
H_COL_MAX 1500

H_COL2_MIN 1300
H_COL2_MID 1320
H_COL2_MAX 1570

so i have about -2/+12 degrees

In throttle middle i have about +5 degrees for Hoovering. in ALTHOLD now it goes to the same.

When you say, _MID has to be at +/-0 degrees, there will be a difference to my stick. But i like to fly hoover with Stick in the middle (…and about +5 degrees).

her you can see my params:

tandem 4.0_4.1.20.param (17.9 KB)

wiht regards

Holger

Holger, the H_COL_MID has nothing to do with your hovering collective. It HAS to be the PWM that corresponds to 0 deg collective pitch. DO NOT set it to the hovering collective.

In your case, H_COL_MID should be 1270 and H_COL2_MID should be 1340.

hi Bill,
ok, i will make the changes.

Holger

Thank you, Bill for the explanation. That’s good to know. So you’re saying that in 4.0 the H_LAND_COL_MIN value is replaced by H_COL_MID? Because I used a slightly negative pitch value for H_LAND_COL_MIN to be sure, the autopilot can land the helicopter in a strong upwind. I was a little bit afraid, that it would disarm the helicopter when it’s not fully landed…

@picoflug

You have to set H_COL_MID to exactly 0 degrees. It is still possible (and recommended) to set the hover position to stick middle. You can do that by adjusting your pitch curve as Chris showed in his setup videos (It’s in video 2 at 18:00). Unfortunately I can’t help you a lot with that, because I’ve done a completely different setup. I’m flying a 3D-Setup with ±12 degrees and 0 in the middle. I like that, because that way I know when the helicopter produces zero thrust…

Hallo Felix,
danke, das kriege ich hin.

Another Question: The new GOV-functon in 4.0, very interesting.
May it be possible not to use a sensor for picking up the rotor-speed. Instead connecting / using one or more of the three motor-cables?
My old sensor UNISENS has a connection to one motor-cable, and i can see directly the motor-rpm.
so i can get the rotor-rpm based on the gear.
And i can see, wether the motor is running in the rpm, that i want.

this would be simple and perfect for the GOV with electric engine.

Holger

Hello Bill and Felix.
I was on the airfield today, but not well. Almost windless.
I had now set the H_COL_MID exactly to “0”, but could not move the TS.
At home almost everything was ok. but then:

  1. ALTHOLD still does not work. When switching, the swash plates go to “0” and the helicopter sinks very quickly. Could just save him.
    Again: armed, all signs and tones positive, no messages.

  2. The compass now points 80 - 90 degrees to the left, and I haven’t changed anything there either. Regardless of whether I set the declination automatically or manually.

  3. In STABILIZE I had almost no heading hold anymore. And he didn’t fly in the ACRO as usual.

I have the impression that a backup is still active, similar to DISARMED, although everything points to “OK”.

My friend flies two single helicopters on 4.0, and all works fine.
I compared its parameters to mine but saw no “bugs”.

I add my last logs, my parameters and his for comparison.

Holger

HK600_F765wing_Heli_03012020.param (20.1 KB) Kakute-Heli_03012020.param (17.3 KB) tandem 4.0_4.1.20.param (17.9 KB)

2020-01-06 13-50-11.log.param (17.9 KB) 2020-01-06 14-00-34.log.param (17.9 KB)

Holger,
Your swashplate setup is not the same from 3.6 to 4.0. Did you change the swashplate set up values in 4.0? they should have converted properly.

Here is your setup in 3.6
H_SV1_POS,-90
H_SV2_POS,90
H_SV3_POS,180
H_SV4_POS,-90
H_SV5_POS,90
H_SV6_POS,180

Here is your setup in 4.0
H_SW_H3_ENABLE,1
H_SW_H3_SV1_POS,-90
H_SW_H3_SV2_POS,90
H_SW_H3_SV3_POS,0
H_SW_TYPE,0
H_SW2_H3_ENABLE,0
H_SW2_TYPE,3

For the setup in 4.0 to match your 3.6 set up, your parameters in 4.0 should be
For swashplate 1 this parameter needs to be changed
H_SW_H3_SV3_POS,180

For swashplate 2, Set H_SW2_TYPE to 0 and then reboot the controller
Then set these parameters
H_SW2_H3_SV1_POS,-90
H_SW2_H3_SV2_POS,90
H_SW2_H3_SV3_POS,180

hi Bill,
thank You for the infos, I will change them.
But is that the reason for no-funktion of ALTHOLD?

As I said, I think, there is still a protection / safeguarding in the Background.

But - would that probably also explain the weak funktion of STABILIZE?

Additionally I will test the 4.0 with a second controller in my 500er single-heli, it’s much easier to handle.

Holger

Probably not. Please provide me a log so I can look at this issue in the data.

hi Bill,
ok, but i need some days

holger

Ok. But to be clear. I just want to see the data from the flight you referred to in your previous post. I didn’t want you to risk your aircraft by flying again.

Hello Bill,
think the bug in ALTHOLD comes from the controller with 4.0.
I have a PIXHAWK 4 mini in tandem.

Now I have a brand new PIXHAWK 4 mini for my single helicopter.
I installed the FW 4.0. Nothing worked. No connection to the MP, no LED, no buzzer.

Then I installed 3.6. Everything went there as usual, including ALTHOLD. Then I installed 4.0 again. Now the connection to the MP, LED and buzzer went ok. It worked largely. But not all.
ALTHOLD doesn’t go any further. H_SV_MAN min / mid / max does not work either, no reaction.

Then I tried the last 4.0.1 - but no change.

With my friend everything goes straight away in 4.0, he has a KAKUTE controller.

So I think my controller is not working properly with 4.0.

Holger

Holger,
I really need to see the log from your flight.

hi bill,
ok, i hope in a few days

holger

Hi Bill,
now i have it.

I prepared my Protos 500 with 3.6.12.
It flys very, very good in all modes.

Then I took 4.0.

as usual althold doesnt’t work. the swashplate goes to “0”, no regulation possible. i tried it two times.

additionally it was “sluggy” an had no heading hold.

see the log:

Holger