Servers by jDrones

Co-Axial Helicopter Setup and mixing option

Hi, I have been a dedicate fan for Arducopter and Arduheli for quite sometimes, love and appreciate all the effort that was pouring into them.

I am now researching on the Coaxial Helicopter like the Ascend Aerosystems’s Sprite and wish you develop my own smaller version for small payload and long endurance setup.

So far, I found that PX4 has support for Coaxial Helicopter with such configuration. but I believe that the only difference in the control would be the yaw control; which instead of using tail rotor, difference in RPM of two main rotors are used for yaw control. Are there any mixing option in Arducopter or Arduheli to achieve such a control? Is there any custom code available for such a configuration?

Any suggestion is appreciated.

Thank you

1 Like

Hi and welcome! I’m excited to hear about your interest in a coaxial helicopter configuration. I am not familiar with the method that is used to control for yaw axis for RC model coaxial helicopters. Manned coaxial helicopters use differential collective pitch to control the yaw axis. The swashplate controls for these helicopters are pretty complex and typically a mechanical mixer is required to control both swash plates. If the model you wish to use has a mechanical mixer for the swash plates then you can just use the traditional helicopter frame with the H1 swashplate type. The tail rotor control would be hooked into the swash plates mixer for the yaw control.

Dear Bill, Thank you so much for your reply.

I have thought about this for a while, but if the second rotor is hooked to tail rotor channel.

the second main rotor would spin as such the air frame direction is maintained. However, if the second main rotor rpm would reduce or increase, will it affect the aircraft altitude control?

It’s not just the second swashplate that is hooked to the tail rotor. Both swashplate’s in a true coaxial configuration are ganged and have mechanical mixing to provide the proper input to both swashplate’s to accomplish the desired control.
The method of using differential collective pitch to control the yaw axis causes one rotor to increase collective pitch while the other rotor decreases collective pitch. This keeps the combined thrust the same for the rotors but changes the torque between the two rotors to provide for Yaw control.

can we achieve the same result using ESC ganged in the code and control channel mixing instead???

ArduPilot has flown conventional coaxial helicopters with Kamov-style head with no problems. It uses conventional H3-120 or H4-90 (depending on number of servos). The yaw servo is used as normal and differential collective is handled in the head mixer arms. No special mixer required in the code.

It does not currently support fixed-pitch** coaxial designs, however.

**fixed-pitch means it may have cyclic control, but no collective control. So thrust is varied by changing the rotor speed, yaw thru differential rotor speed.

So it sounds like you are going to use normal swashplate controls for pitch, roll and collective control and yaw is accomplished with rotor speed difference between the rotors. The tradheli code is not really set up to do independent rotor speed control. Interesting thought though

Bill, if you go to Walmart look in the toys section at the little coaxial helicopters they have there for about $50. I got one, can’t remember the name of it, haven’t flown it for awhile. But it is really cool and simple. Would only take a few minutes to write a mixer for one of those.

It has the coaxial rotors with two motors in it and differential throttling. And two servos to tilt a flybar that steers the head. That’s it. They are really simple.

The problem with them comes in where it is difficult to achieve good control with heavier rotors. They can’t change speed fast enough. Remember in the early days of RC helicopters where most of the nitro 30’s were fixed-pitch single rotor? Hovering was almost impossible because it could not change thrust fast enough.

So most of the fixed-pitch coaxials are limited to micros these days, with very small rotors so they can be throttled rapidly and respond correctly. I would suspect the maximum size of the rotors would be similar to what limits multi-rotor prop size before they get really unstable - probably around 30" or so.

Right. Ok that make sense.

@Eakarat I think the coax copter would fit your needs. You can find the wiki page here
You can use the flap servos for the swashplate servos.

Dear Bill, Thank a lot I will try this option and report back

Any update on this? I am wanting to build one like the sprite as well!


looking into dual-swash coaxial config - any setting recommendations ?
DUAL_MODE ~ inter-meshing
set-rpm, differential-collective for yaw
looks like I need to use setup discussed here:

@shaviland87 Yes you would use the setup described in topic you’ve quoted.
H_YAW_SCALER set to zero
H_DCP_YAW would be adjusted to provide yaw control

Not sure that I can help you beyond that. Can’t think of a good way to determine the proper value of H_DCP_YAW. maybe start off with an H_DCP_YAW value that provides around 3 deg
of collective for one rotor in one direction and 3 deg of collective for the other rotor in the opposite direction.
Please keep us posted on how your project is going.


Thanks Bill - I am working on getting everything setup. I ran into troubles getting the min/max range of the servos setup. If I try and set the range SERVOX_MIN/MAX it resets the values to 1000/2000.

Reviewing code it looks like reset_swash_servo does it. Also I seem to be getting values of _servo_out[i] in Dual Swash to be larger than [-1,1] when not using linear servo. Not sure if that is expected. I found that after I modified the code slightly to limit servo throw.

@shaviland87 Don’t play with modifying the code. There are reasons for why we do things. If you want to know why, please ask. The swash servo min and max is fixed in order to manage the three points of the swash for CCPM setups. Otherwise it becomes too difficult manage coupling caused by the throw of each servo being different. Please read the trad heli wiki to learn how to properly set up the swash servos. I find it interesting that you are finding the servo outs to be larger than the limits. Most swashplate set ups have collective ranges on the order of 200 pwm. So being able to hit the limit of the servo range is difficult. What is the PWM range for your swashplates?

Servers by jDrones