Arducopter 4.1.1 heli; a couple of cyclic servo configuration questions

Quite a productive afternoon, I think. I’ve connected a BEC to the servo pins of my mRo Pixhawk R15 to power the servos, as well as to the R15 power connector, and connected the three swash and one tail servos to outputs 1-4. I’ve completed all the MP Mandatory Hardware setups down to Servo Output, and have a couple of questions:

  1. The Ardupilot Heli Setup pages in the Vehicle Type/Configuration section says that I should setup the H_OPTIONS parameter. When I read the notes for it, it says it should be 0 for a standard 120 degree 3-servo head, yet after I’ve selected H3 head type the H_OPTIONS value is shown as 1. I don’t understand what it’s meant to do – should I change it manually to 0?

  2. Initially with all my channels in the positive direction in my Taranis trannie the swash wasn’t moving correctly, and the tail moved the wrong way. I corrected the swash up/down movement, and the tail direction, by reversing servos 1 and 4 in MP’s Servo Output screen. Roll movement was then also correct, but pitch movement was reversed. The only way I could find to fix that was to reverse the elevator servo in my trannie. Was I right to do that?

Are you sure H_OPTIONS is the parameter that it wants you to change. That parameter has nothing to do with the swashplate setup. Do you mean H_SW_TYPE?

H_SW_TYPE is further down the page, and seems clear enough to me.

In the complete parameters list, for H_OPTIONS the explanation is, "Bitmask of heli options. Bit 0 changes how the pitch, roll, and yaw axis integrator term is managed for low speed and takeoff/landing. In AC 4.0 and earlier, scheme uses a leaky integrator for ground speeds less than 5 m/s and won’t let the steady state integrator build above ILMI. The integrator is allowed to build to the ILMI value when it is landed. The other integrator management scheme bases integrator limiting on takeoff and landing. Whenever the aircraft is landed the integrator is set to zero. When the aicraft is airborne, the integrator is only limited by IMAX. " But it doesn’t explain what any other value, such as 1, does. Nor do I understand what value 0 does either!

Typically in mission planner when you click on a parameter that has bits associated with it, it will bring up a pop up menu that gives boxes that you can check or uncheck for a particular feature. Maybe it doesn’t work for the H_OPTIONS. There is only one selectable feature it offers. So by setting the bit(bit 0), it turns it on or off. So bit 0 translates to a numerical value that you would see under H_OPTIONS of 1 for on and 0 for off. Hopefully that was helpful.

So as for your swashplate issue of the movement being correct. Here is what I would suggest. Go into the radio calibration setup menu. Don’t calibrate, just use the display to make sure your transmitter joysticks are moving the bars in the correct direction.
Throttle stick should move the bar up as you move the stick up and vice versa. Rudder stick should move the bar right as you move the stick right and vice versa. Elevator stick should move the bar up as you move the stick up and vice versa. Aileron stick should move the bar right as you move the stick right and vice versa. Change the direction of travel in your transmitter to match these movements.
Now check the movement of you servos and use the servo reverse or the swashplate direction parameter to get them to move in the correct direction.

I was wrong on this one. Elevator stick should move the bar down as you move the stick up and vice versa.

Thanks for reminding me about the stick movements Bill. When I did the calibration I was concentrating on moving the sticks to full deflection, and forgot to check that the bars were moving in the correct direction. I’ll go back to that step in MP this afternoon and make sure it’s now correct.

As for H_OPTIONS, I still don’t understand what it does. But it seems that maybe it’s safe to leave it at 1, for there must be a good reason for the programmers doing whatever it is they’re doing with the ‘integrator management scheme’.

I incorporated the new integrator scheme. Sorry that it isn’t very clear. I defaulted it to the old way of managing the integrator because the new way is more sensitive to having your setup correct. The integrator just helps the controller hold the requested attitudes. If you see a bias between the requested attitude and the actual attitude then it is most likely the integrator not being able to do it’s job. The old leaky integrator method worked but it made landings and takeoffs awkward. This new method is really smooth in the transition, no stick movement required on liftoff. With the new method I can raise the collective and hold it on one skid.

Stick with the default first until you are comfortable with the setup and check your logs to make sure it is marking the takeoff and landing properly in the events. When you click the events checkbox in the log your should see “not landed” when it thinks it took off and “land complete” when it landed.
Hope that makes sense.

Thanks Bill, it’s beginning to make sense :wink: I think you’re suggesting that maybe I should use the ‘old’ way of managing the integrator until I get my setup tested and fine tuned, but is that H_OPTIONS = 0 or 1?

I’ve re-checked my radio calibration, and with the elevator channel reversed in my transmitter the bar moves the correct way.

The code defaults to H_OPTIONS of 1 which is the old way.

Thanks, I’ll leave it at 1 until I get things sorted.

@bnsgeyer Hello Bill,

I searched the whole forum and documentation to find more information about parameter h_options. I only found the very theoretical explanation in the parameter list.

@picoflug Holger mentions in his recent report in the German ROTOR magazine this parameter also and that it allows better starting since version 4.1.1. Although described in German, I am not completely clear from it.

Where can I find more information about this?

Thanks for your help



@heri sorry that you weren’t able to find more info on this parameter. Here is a description of the feature that the H_OPTIONS param enables. Here is my original post that contains additional posts with in depth descriptions of the feature offered with the H_OPTIONS parameter. Please respond to that post if you have additional questions.

Thank you Bill. I will study the posts.



@heri what issue of Rotor magazine did @picoflug write about 4.1? I wanted to read the article.

@bnsgeyer Hi Bill,

@picoflug Holger wrote a three part report on FC with Ardupilot software this year.

Of course he also described the important parameters and their functions. In his last part, which appeared a few days ago in the current ROTOR magazine, he also described the h_options parameter. At the same time he stated that the current latest version of ardupilot is version 4.1.1.

I therefore wrongly assumed that the h_options parameter was newly introduced with this version. This was an interpretation error on my part.
I had not noticed the change/introduction from 4.06 to 4.07. This was the time when I started with ardupilot

Sorry for the confusion.I had overlooked this parameter until now.

Holger surely has his three-parter as PDF and can send it to you.