Pusher differential thrust for yaw in MC mode

Hi!

I’m building a standard VTOL (X6+2 pushers) using the pushers for yaw in forward flight.
I want to use differential thrust with the pushers for yaw in MC mode as well.

I tried with manual pass thru and it works well but I want to implement it in the MC mixer.

My MC mixer looks like this:

R: 6x 10000 10000 0 0

M: 1
O: 10000 10000 0 -10000 10000
S: 0 2 00000 20000 -5000 -10000 10000
M: 1
O: 10000 10000 0 -10000 10000
S: 0 2 -20000 00000 -5000 -10000 10000

I tried using yaw from control group 0, 1 and 4 to drive AUX 1 and 2 (Where left and right pusher is connected) but it does nothing. Yaw in forward flight with differential thrust works fine. Are AUX motors disarmed when in MC mode?

I guess its similar to the way a tri copter works but controllng pushers insteard of yaw servo.

Any ideas? Thanks in advance!

Hi, do you have an aux mixer active? If you want to use the aux outputs you need to make sure that MIXER_AUX is set in your config file. Take a look at config 13009 for an example.

Correct me if im wrong but VTOL type 2 don’t use the AUX mixer in MC mode, but blend it in during transision, right?
It seems like the AUX signals are blocked in MC mode.
Yaw is working great in FW mode but i want the pushers to do the yawing in MC mode too!

I had a look at 13009 and it looks similar to what im using.

My AUX mixer looks like this:

#Plane

#Left motor
M: 2
O:       10000   10000      0 -10000  10000
S: 1 3   00000   20000  -5000 -10000  10000
S: 1 2   00000   20000  -5000 -10000  10000

#Right motor
M: 2
O:       10000   10000      0 -10000  10000
S: 1 3   00000   20000  -5000 -10000  10000
S: 1 2  -20000   00000  -5000 -10000  10000

#Left elevon
M: 2
O:      10000  10000      0 -10000  10000
S: 1 0  -7000  -7000      0 -10000  10000
S: 1 1  -8000  -8000      0 -10000  10000

#Right elevon
M: 2
O:      10000  10000      0 -10000  10000
S: 1 0  -7000  -7000      0 -10000  10000
S: 1 1   8000   8000      0 -10000  10000

My airframe file looks like this:

#!nsh
#
# @name Ocelot X6.
#
# @type Standard VTOL
#
# @maintainer Archer
#

sh /etc/init.d/rc.vtol_defaults

if [ $AUTOCNF == yes ]
then
	param set VT_TYPE 2
	param set VT_MOT_COUNT 6
	param set VT_TRANS_THR 0.75

	param set MC_ROLL_P 7.0
	param set MC_ROLLRATE_P 0.15
	param set MC_ROLLRATE_I 0.002
	param set MC_ROLLRATE_D 0.003
	param set MC_ROLLRATE_FF 0.0
	param set MC_PITCH_P 7.0
	param set MC_PITCHRATE_P 0.12
	param set MC_PITCHRATE_I 0.002
	param set MC_PITCHRATE_D 0.003
	param set MC_PITCHRATE_FF 0.0
	param set MC_YAW_P 2.8
	param set MC_YAW_FF 0.5
	param set MC_YAWRATE_P 0.22
	param set MC_YAWRATE_I 0.02
	param set MC_YAWRATE_D 0.0
	param set MC_YAWRATE_FF 0.0
	param set MC_YAWRATE_MAX 40
	param set MC_YAWRAUTO_MAX 40

	param set VT_MOT_COUNT 4
	param set VT_IDLE_PWM_MC 1080
	param set VT_TYPE 2
fi

set MIXER vtol_hexa_x
set PWM_OUT 12345678
set PWM_RATE 400

set MIXER_AUX vtol_ocelot
set PWM_ACHDIS 12
set PWM_AUX_DISARMED 950

set MAV_TYPE 22

I experimented with the same concept i.e., adding two differential pushers for yaw to a 4x multicopter in standard MC mode ( not VTOL) and found that it wouldn’t work if I didn’t change the order of the mixers.
This worked for me:

Mixer for Spindrone Airframe

This file defines mixers suitable for controlling a Quadrocopter X based craft
with two motors L,R for yaw control.

Inputs to the yaw motor mixers:
Yaw, Group 0 (Flight Control ) channels 2 (yaw) 
AUX1-Horizontal Throttle  Group 3 (pass through) 5 (Aux1).
Yaw is -1,1
AUX1 is -1, 1. The way it's mapped it will only work on the positive half

Left Motor is connected to channel 1
M: 2
O:      10000  10000      0 -10000  10000
S: 0 2  10000  10000      0 -10000  10000
S: 3 5      0  20000 -10000 -10000  10000

Right Motor is connected to channel 2
M: 2
O:      10000  10000      0 -10000  10000
S: 0 2  -10000  -10000      0 -10000  10000
S: 3 5      0  20000 -10000 -10000  10000

Have declared the multirotor mixer after the simple mixers because the other way around doesn't work channel 6 isn't enabled for some reason
R: 4x 10000 10000 10000 0

Alternatively you could always try something like I did here.


I wanted to enable the MC motors in FW mode, and you want to do the opposite.

Thank you all for the help, I solved it!

My understanding of the code was a bit off, this is how i ended up doing it:

I removed the influence of “transition weight” on the FW yaw by changing this line

to

// yaw
    	_actuators_out_1->control[actuator_controls_s::INDEX_YAW] =
    		_actuators_fw_in->control[actuator_controls_s::INDEX_YAW] * (1);

Neat huh? :slight_smile: