make "source code tree" a bit more attractive
[inav.wiki.git] / Custom-mixes-for-exotic-setups.md
blob1209724ec035aa34c7e7cada20a048f2d9a0ef9e
1 This page documents custom mixer for exotic platforms. As this page was written prior to inav 2.0, you are advised to verify the `smix` syntax compared to your firmware version. It is also necessary to set the `platform_type` for your platform.
3 ## Quadcopter + configuration [Motors on front, rear, left and right]
5 ```
6 mmix reset
7 mmix 0 1.0 0.0 1.0 -1.0   # REAR
8 mmix 1 1.0 -1.0 0.0 1.0   # RIGHT
9 mmix 2 1.0 1.0 0.0 1.0    # LEFT
10 mmix 3 1.0 0.0 -1.0 -1.0  # Front
11 ```
13 ## Hexa H6
15 ```
16 mmix reset
17 mmix 0 1.0 -1.0 1.0 -1.0     # REAR_R
18 mmix 1 1.0 -1.0 -1.0 1.0     # FRONT_R
19 mmix 2 1.0 1.0 1.0 1.0       # REAR_L
20 mmix 3 1.0 1.0 -1.0 -1.0     # FRONT_L
21 mmix 4 1.0 0.0 0.0 0.0       # RIGHT
22 mmix 5 1.0 0.0 0.0 0.0       # LEFT
23 ```
25 ## Quadcopter A-tail
27 This configuration probably can be improved, similar to V-tail config
29 ```
30 mmix reset
31 mmix 0 1.0 0.0 1.0 1.0          # REAR_R
32 mmix 1 1.0 -1.0 -1.0 0.0        # FRONT_R
33 mmix 2 1.0 0.0 1.0 -1.0         # REAR_L
34 mmix 3 1.0 1.0 -1.0 -0.0        # FRONT_L
35 ```
37 ## Quadcopter V-tail
39 ```
40 mmix reset
41 mmix 0 1.0 -0.58 0.58 1.0        # REAR_R
42 mmix 1 1.0 -0.46 -0.39 -0.5      # FRONT_R
43 mmix 2 1.0 0.58 0.58 -1.0        # REAR_L
44 mmix 3 1.0 0.46 -0.39 0.5        # FRONT_L
45 ```
47 ## Hexa Y6
49 ```
50 mmix reset
51 mmix 0 1.0 0.0 1.333333 1.0     # REAR
52 mmix 1 1.0 -1.0 -0.666667 -1.0  # RIGHT
53 mmix 2 1.0 1.0 -0.666667 -1.0   # LEFT
54 mmix 3 1.0 0.0 1.333333 -1.0    # UNDER_REAR
55 mmix 4 1.0 -1.0 -0.666667 1.0   # UNDER_RIGHT
56 mmix 5 1.0 1.0 -0.666667 1.0   # UNDER_LEFT
57 ```
59 ## Quad Y4
61 ```
62 mmix reset
63 mmix 0 1.0 0.0 1.0 -1.0     # REAR_TOP CW
64 mmix 1 1.0 -1.0 -1.0 0.0    # FRONT_R CCW
65 mmix 2 1.0 0.0 1.0 1.0      # REAR_BOTTOM CCW
66 mmix 3 1.0 1.0 -1.0 0.0     # FRONT_L CW
67 ```
69 ## Hexa P6
71 ```
72 mmix reset
73 mmix 0 1.0 -0.866025 0.5 1.0        # REAR_R
74 mmix 1 1.0 -0.866025 -0.5 -1.0      # FRONT_R
75 mmix 2 1.0 0.866025 0.5 1.0         # REAR_L
76 mmix 3 1.0 0.866025 -0.5 -1.0       # FRONT_L
77 mmix 4 1.0 0.0 -1.0 1.0             # FRONT
78 mmix 5 1.0 0.0 1.0 -1.0             # REAR
79 ```
81 ## Octa Flat P
83 ```
84 mmix reset
85 mmix 0 1.0 0.707107 -0.707107 1.0       # FRONT_L
86 mmix 1 1.0 -0.707107 -0.707107 1.0      # FRONT_R
87 mmix 2 1.0 -0.707107 0.707107 1.0       # REAR_R
88 mmix 3 1.0 0.707107 0.707107 1.0        # REAR_L
89 mmix 4 1.0 0.0 -1.0 -1.0                # FRONT
90 mmix 5 1.0 -1.0 0.0 -1.0                # RIGHT
91 mmix 6 1.0 0.0 1.0 -1.0                 # REAR
92 mmix 7 1.0 1.0 0.0 -1.0                 # LEFT
93 ```
95 ## Octa Flat X
97 ```
98 mmix reset
99 mmix 0 1.0 1.0 -0.414178 1.0        # MIDFRONT_L
100 mmix 1 1.0 -0.414178 -1.0 1.0       # FRONT_R
101 mmix 2 1.0 -1.0 0.414178 1.0        # MIDREAR_R
102 mmix 3 1.0 0.414178 1.0 1.0         # REAR_L
103 mmix 4 1.0 0.414178 -1.0 -1.0       # FRONT_L
104 mmix 5 1.0 -1.0 -0.414178 -1.0      # MIDFRONT_R
105 mmix 6 1.0 -0.414178 1.0 -1.0       # REAR_R
106 mmix 7 1.0 1.0 0.414178 -1.0        # MIDREAR_L
109 ## Bicopter
111 ***Warning*** this is highly experimental, not documented, not tested in real life conditions and I'm pretty sure there are not more than few in the whole world!
112 Mixer configuration below is reverse engineered from CF code.
115 mmix reset
116 mmix 0 1.0 1.0 0.0 0.0 # left motor
117 mmix 1 1.0 -1.0 0.0 0.0 # right motor
119 smix reset
120 smix 0 4 2 100 0 # Servo 4 for left motor pitch change
121 smix 1 4 1 100 0 # Servo 4 for left motor pitch change
122 smix 2 5 2 -100 0 # Servo 5 for right motor pitch change
123 smix 3 5 1 100 0 # Servo 5 for right motor pitch change
126 ## Dualcopter
128 ***Warning*** this is highly experimental, not documented, not tested in real life conditions and I'm pretty sure there are not more than few in the whole world!
129 Mixer configuration below is reverse engineered from CF code.
131 mmix reset
132 mmix 0 1.0 0.0 0.0 -1.0  # Left
133 mmix 1 1.0 0.0 0.0 1.0   # Right
135 smix reset
136 smix 0 4 1 100 0
137 smix 1 5 0 100 0
140 ## V-Tail Fixed Wing
142 Tested in a Mini talon UAV.
145 # mixer
146 mmix reset
147 mmix 0 1.0 0.0 0.0 0.0         # motor
149 smix reset
150 smix 0 2 0 -100 0         # servo 2 takes Stabilised ROLL
151 smix 1 3 0 -100 0         # servo 3 takes Stabilised ROLL
153 smix 2 4 1 -50 0          # servo 4 takes Stabilised PITCH
154 smix 3 5 1 50 0           # servo 5 takes Stabilised -PITCH
156 smix 4 4 2 50 0           # servo 4 takes Stabilised YAW
157 smix 5 5 2 50 0           # servo 5 takes Stabilised YAW
159 smix 6 6 8 -100 0         # servo 6 takes RC AUX 1 (camera yaw)
160 smix 7 7 9 -100 0         # servo 7 takes RC AUX 2 (drop bomb :-))
163 ## Skyhunter Nano (no rudder) - 1.7.2 onwards
166 mmix reset
167 mmix 0 1.000 0.000 0.000 0.000
168 smix reset
169 smix 0 3 0 -100 0
170 smix 1 4 0 -100 0
171 smix 2 2 1 -100 0
174 ## Nano Talon with 2 Servos for the V-Tail
175 Note: See [this video](https://www.youtube.com/watch?v=IOApkFPGKtc) for details on the V-Tail mod.
177 # mixer
178 mmix reset
179 mmix 0 1.0 0.0 0.0 0.0         # motor
180 smix reset 
181 smix 0 2 0 -100 0         # servo 2 takes Stabilised ROLL (PWM 3)
182 smix 1 3 1 -50 0          # servo 3 takes Stabilised PITCH (PWM 4)
183 smix 2 4 1 50 0         # servo 4 takes Stabilised -PITCH (PWM 5)
184 smix 3 3 2 50 0         # servo 3 takes Stabilised YAW (PWM 4)
185 smix 4 4 2 50 0         # servo 4 takes Stabilised YAW (PWM 5)
188 ## AVIOS BUSHMULE – Notably separate FLAPS (instead of flapperons). Uses single aileron control with Y cable
190 # servo mix
191 smix reset
192 smix 0 2 1  100 0     # servo 2 takes Stabilised PITCH  (PWM 3)
193 smix 1 3 0  100 0     # servo 3 takes Stabilised ROLL   (PWM 4)
194 smix 2 4 14 100 0     # servo 4 takes FLAPS             (PWM 5)
195 smix 3 5 2  100 0     # servo 5 takes Stabilised YAW    (PWM 6)
196 # servo – also consider manipulating of servo midpoint for correct flaps operation:
197 servo 4 1000 2000 2000 -100 -1 
200 ## Twin Motor - Differential thrust and FLAPERONS
202 # mixer
203 mmix reset
204 mmix 0  1.000  0.000  0.000  0.300 #Left motor
205 mmix 1  1.000  0.000  0.000 -0.300 #Right motor
207 # servo mix
208 smix reset
209 smix 0 3 0 100 0 #servo 3 takes Stabilised ROLL (PWM 4)
210 smix 1 4 0 100 0 #servo 4 takes Stabilised ROLL (PWM 5)
211 smix 2 5 2 100 0 #servo 5 takes Stabilised YAW (PWM 6)
212 smix 3 2 1 100 0 #servo 2 takes Stabilised PITCH (PWM 3)
213 smix 4 3 14 100 0 #Setup flaps on aileron pins (PWM 4)
214 smix 5 4 14 100 0 #Setup flaps on aileron pins (PWM 5)
215 smix reverse 3 14 r #Reverse the Flaps on PWM 4/5, skip this if you want spoilerons 
216 smix reverse 4 14 r #or if it works based on servo orientation
218 # servo
219 servo 5 1000 2000 1500 -100 -1 #My rudder was reversed, again you may not need this rule
222 # Setups that were never implemented in Baseflight, Cleanflight or any of its derivatives
224 # Disabled setups
226 ## HELI 120 CCPM
228 Never implemented.
230 ## HELI 90 DEG
232 Never implemented.
234 ## MIXER_GIMBAL
236 Use feature ***SERVO_TILT*** instead.
238 ## Singlecopter
240 ***Warning*** this is highly experimental, not documented and I'm pretty sure there are not more than few in the whole world!
241 Mixer configuration below is reverse engineered from CF code. Mixer is capable of processing this setup, but servo output will not work due to BF/CF PWM output limitations. 
244 mmix reset
246 smix reset
247 smix 0 3 2 100 0 
248 smix 1 3 1 100 0 
249 smix 2 4 2 100 0 
250 smix 3 4 1 100 0 
251 smix 4 5 2 100 0 
252 smix 5 5 0 100 0 
253 smix 6 6 2 100 0
254 smix 7 6 0 100 0