Problem althold, attitude hold, heading hold

Hello Ardu - Pilots!
I am a new member an have very small expierience in Flight-Controllers and Software, it is very new for me. (and sorry for my english…)
I’m flying Helicopters. My projekt is a Tandem-Heli. With the traditional Flybarless it works very well.
Now i have:
pixhawk 4 mini with GPS, new firmware and Mission planner or Ground control.
Frame 11 (Heli dual)

it is flying, but not all right. The Problems:

I dont understand fully the PID. in the menue CH 6: what ist “rate…ff”?
The heli doesnt hold the steered attitude, it always goes back to horizontal. in the same there is no “heading hold”. I thought, for holding the attitude (and heading) is the -I- , but increasing causes no change.
This in “Acro” and “Stabilisation”.

next Problem:
i can’t use the other modes (althold, poshold, loiter, sport …). When I switch in one of these modes, the swashplates moves down to the minimum (pwm 1250 in h_col_min in the full parameter list) and there comes no reaction from the pitch / throttle stick. And this in the air and on ground with motor off. The barometer shoes the correct hight (= 0 meters on ground).
There are no error-messages, all seems ok.
There are no changes by using single-heli (frame 6)

The same effects I had on my first FC, a MATEK 405 STD.

so I think, ist must be any parameter(s) in the list?

Who can help? Thanks!

Holger, Hamburg (Germany)

Please post a log and a param file. Also did you read the TradHeli tuning guide Here

By the way, this sounds like a really cool project. We don’t have many users flying tandems, at least not that I know of. Would love to see some pics

Hello Bill,
thanks for your fast answer. Naturally i can send pictures. I make tandems since nearly 10 jears.
Last I made originally Rotor Heads in Aluminium 3D-Prints. See my report in the ROTOR - Magazine (later)

in the param file the dates from PID are not the actually from the last flights. I wanted to start new with “…ff” (as i had read in forum etc).

the next days i can make a log, i did it not before.

I’m testing this new way with FC on my first Tandem, the one for my experimentals.
the actual one is larger and has Rotor 1,80 m and 20 kg weight (pictures).
sorry, the pictures are too big, I change them an post later

Tandem 6.10.19.param (15.1 KB)

with best regards


Sounds cool, keep watching

from looking through your param file, it looks like you haven’t set up your helicopter. Many of the default parameter values are still in there. Please review the videos here. that should help as well with setting up the swashplates and rotor speed controller. Unfortunately we don’t have any wiki pages for setting up tandem helicopters.

Hello Bill, thanks again!
The videos i had seen (in a quick way), i will do once more.
The setup from a single-heli is ok, you can use the same params for a tandem. only for yaw you need larger servo-ways.
which params for example do you mean? The swashplates are working right, in normal configuration it is to fly well (acro / stable). I think, my problem is in the Program, so it would be the same for copters.

  1. in alt-hold … the swashplates are moving down to minimum - no reaction possible. roll, nick and yaw are further working / in a copter the motors would be slow down.
  2. the heli is not holding the steered attitude, it goes back to horizontal / and no heading hold. increasing the -I- (as I thought) causes no change.
    This two points - and all would be right!

A friend of mine uses the same program in an single-Heli, and all is working. But he hasn’t an answer for me…


What is the setup of your swashplates? In particular you have both COL_MAX at 1750 and both COL_MIN at 1250. What does that equate to in terms of collective blade pitch in degrees? Your IM_STAB_1 is 0 and IM_STAB_4 is 1000 which means you have full collective throw (COL_MIN to COL_MAX) in stabilize mode. Is the range of collective -10 to 10 or -4 to 12? that has a big impact on your collective stick and how it controls the vertical axis. Having LAND_COL_MIN at zero tells the autopilot to put the collective full down (COL_MIN) when landed. You want to adjust this so the actual collective when landed in an autopilot mode or any mode that the autopilot controls the vertical axis is no lower than -2 deg actual collective because any lower could cause bad vibrations and even ground resonance (aircraft shakes itself apart on the ground).

You are using RSC Mode 1 which takes direct input from your RC channel 8 and sends that to the ESC when your motor interlock is enabled (throttle hold off). If you are using an ESC with a governor, then use mode 2 and set the output to the ESC using the SETPOINT parameter.

As for the ATC (attitude controller) parameters, I would need to see your log to provide guidance. we recommend starting off with pitch and roll VFF at 0.15. Zero the pitch and roll I terms until you have tuned the VFF and P and D gains. Yaw is very different for a tandem and I am not that familiar with the tuning.

Hello, the 1. foto

1 Like

that looks great! So I assume you have a single engine driving both rotor systems? You obviously need to keep the rotors synchronized. what’s the rotor diameter of this one? what size engine does it use?

Hello Bill,
just i read your message. Yes, single engine motor with 5kw and 450kv. In hoover it needs about 2kw.
The drive and synchronisation are running with timing-belts - i’m a fan of this. Rotor is 183 cm, fuselage 160 cm, weight 19kg. Rotor rpm 900. The mechanic is my own construction. next i can post further fotos.

Your comments:
with this col_max / col_min together with fitting pitch-curve in RSC I have about -2 / + 12 degrees.

For test I took RSC to -100 / +100 and stick middle -0-.

now i had col_max over 15 and col_min nearly -15 deg. and middle nearly -0-.
But no change in Althold, the swachplates goes down to minimum, no reaction possible.

And I can’t change the middle (1500). when I take another number (1300 or 1600), there is no change, no reaction, the swashplates stay in the middle position.

when I take Land_col_min up to about 200 - 300, the swashplates are moving nearly to the middle in althold, but no further reaction possible.

I don’t understand that. when hoovering or on ground; when switching to althold, the baro has the acual pressure and there is no need to move the swashplate from its actual position !?
And normaly I should be able to change the hight with pitch-stick over 60% and under 40%.

And how i said, in the heli from my friend works ok. I compared and changed the different params, but no change.

My ESC is not connected to the FC, it is direct in the RX. When flying the Heli there is no need for regulation - so I think…?.
I switch it on, it runs in gov-mode with firmly rpm, and I switch it off after landing.
Have I to change that? and when - why? if it would be a copter with motors, I would understand that.

The weather is not so good at time, dont know when I can go to test and log.

with regards


Hello Bill,
i just phoned with my Heli-friend. in the facility of his heli he did not make changes in the original-software from mission planner, only a little bit in Servo-ways and so on. And it works fine.
no matter in which position the pitch-stick is, switching to althold the swashplate always moves to the middle (=hoovering).
one parameter in my list must be wrong.


First, please only make changes to your parameters using the “full parameter list” in mission planner. DO NOT use the heli set up page, especially for a dual heli.

I’m not sure what you mean by this. Do you mean that you set H_COL_MIN and H_COL2_MIN so that the blade collective pitch was -2 deg and set H_COL_MAX and H_COL2_MAX so that the blade collective pitch was 12 deg. Then H_COL_MID and H_COL2_MID should be set for the 0 collective blade pitch.

Looking at your statement above again, it sounds like you are using Heli specific features of your transmitter like the throttle curve and pitch curve. If that is the case then your set up is wrong. You can NOT use any mixing features of your transmitter. I usually recommend that you use a plane type setup in the transmitter. Your transmitter is only being used for joysticks and a couple of switches. EVERYTHING is being handled by the flight controller. Please let me know if this is not the case and we’ll continue trouble shooting.

Hello Bill,
the heli setup page is not to use for Heli-Dual (Tandem), all is grey, you can’ make changes.

In the software I have for my Tandem the frame_class 11 = Dual Heli = tandem and Frame_type X.
The same params in the list are also for single Heli = Frame_class 6. The difference is only that i have two swashplates whith each 3 Servos and no Servo for tail.
This has nothing to do whith an aeroplane-setup.

My transmitter has no Heli-specific mixers or others. only some Servo-ways are a few customized.

But as i said: for test I took in transmitter for pitch +100 / -100 and 0 for the middle, so the pure unadulterated signal. and the effect is the same: the swashplates are moving complett down when switching althold.
and as i said: my friend has for his single-Heli nearly the same setup, and the swashplate moves into the (right) middle-position.
When I switch my setup to a single-Heli (6), only one swashplate moves, but with the same problem.

Compared to a Plane: flying horizontal and you switch in althold, the pitch-rudder (up and down) stays normal in its middle (horizontal) position. In my case it would move down an the plane would go strictly nose down.

even if there were no baro, the swashplate (or rudder in plane) should and would move nearly to a position for hoovering / flying horizontal in althold.

There must be one parameter that causes the swashplate (the rudder) to move complett down.

my hair is becoming greyer…


Sorry Holger. I want to understand how you are adjusting your collective pitch limits for your swashplates. So it sounds like you are adjusting the output of your transmitter (travel limits) for channel 3 (throttle stick) to change your collective pitch limits.
If this is the case, then i’m afraid that is not the way it should be done. You want to leave the travel limits of the transmitter at -100 to 100. you then will use the manual swashplate setting H_SV_MAN. You will set it to 2 to set the max collective (12 deg in your case) and use the parameter H_COL_MAX parameter to adjust the collective blade pitch until it is 12 deg. You will set it to 4 to set the min collective (-2 deg in your case) and use the parameter H_COL_MIN parameter to adjust the collective blade pitch until it is -2 deg. It sounds like you already have set the 0 deg collective blade pitch to correspond to mid stick or 1500 pwm. But you can set H_SV_MAN to 3 and check the mid collective position which should correspond to zero deg collective blade pitch.

If the H_SV_MAN does not put the swashplates full up and down with the max and min setting then you will have to use the passthrough mode. In that case you will have to move your collective stick (throttle stick) full up to set the max collective and full down to set the min collective. sorry for the confusion.

hello bill,
i will see that tomorrow, the param H_SV_MAN I didn’t note before.



I looked at the code and it will not behave properly for the Dual heli in copter 3.6. Its behavior was fixed in master. So you will have to use the passthrough mode which is setting H_SV_MAN to 1. then you can use your collective stick on the transmitter to command max collective pitch and min collective pitch. then you can set each of the parameters (H_COL_MAX and H_COL_MIN) accordingly.

This is only used to set up your collective blade pitch. Be sure to reboot your flight controller before flying.




Hello Bill,
it further doesn’t work. I did as you say: H_SV_MAN to 1. Then tehn on TX fixed the ways to -4/+12 deg.
Then changed in col_min / col_max - but no changing: when switching althold, swash goes down.
I changed for test to single-Heli (6) - no change.

Then I uploaded the param-file from my friend (his Heli works right). There are many differences, but it runs on my Heli, also in Dual_heli (11).

But!!! the same Problem: swash goes down in althold. What could it be? I think its not a problem special in heli-mode, it muts be something fundamental.

And: i do not understand the funktion from H_SV_MAN I can change the col_min / max normal in the list without switching 2 or 4.
but there i cannot change col_mid.

When i go to H_SV_MAN3 (=mid), then i can change the col_mid.
I did for test. The number in list (and servo position) changes. but when i go back to H_SV_MAN 0, it is like before, no changing.

to have a look i send here the file from my friend.

Kakute-Heli_04102019.param (19.3 KB)