Update headtracker_msp.c
[inav.git] / docs / MixerProfile.md
blobcd9702b5a3221b2f0b184d13e2aecf1b938a85ca
1 # MixerProfile
3 A MixerProfile is a set of motor mixer, servo-mixer and platform type configuration settings. It is designed for experienced inav users.
5 ### For a tutorial of vtol setup, Read https://github.com/iNavFlight/inav/blob/master/docs/VTOL.md
7 Not limited to VTOL. air/land/sea mixed vehicle is also achievable with this feature. Model behaves according to current mixer_profile's platform_type and configured custom motor/servo mixer
9 Currently two profiles are supported on targets other than F411(due to resource constraints on F411). i.e VTOL transition is not available on F411.
11 For VTOL setup. one mixer_profile is used for multi-rotor(MR) and the other is used for fixed-wing(FW)
12 By default, switching between profiles requires reboot to take affect. However, using the RC mode: `MIXER PROFILE 2` will allow in flight switching for things like VTOL operation
13 . And will re-initialize pid and navigation controllers for current MC or FW flying mode.
15 Please note that this is an emerging / experimental capability that will require some effort by the pilot to implement.
17 ## Mixer Transition input
19 Typically, 'transition input' will be useful in MR mode to gain airspeed.
20 The associated motor or servo will then move accordingly when transition mode is activated.
21 Transition input is disabled when navigation mode is activate
23 The use of Transition Mode is recommended to enable further features and future developments like fail-safe support. Mapping motor to servo output, or servo with logic conditions is **not** recommended
25 ## Servo
27 `Mixer Transition` is the input source for transition input; use this to tilt motor to gain airspeed.
29 Example: Increase servo 1 output by +45 with speed of 150 when transition mode is activated for tilted motor setup:
31 ```
32 # rule no; servo index; input source; rate; speed; activate logic function number
33 smix 6 1 38 45 150 -1
34 ```
36 ## Motor
38 The default `mmix` throttle value is 0.0, It will not show in `diff` command when throttle value is 0.0 (unused);
40 - 0.0<throttle<=1.0 : normal mapping
41 - -1.0<throttle<=0.0 : motor stop, default value 0, set to -1 to use a place holder for subsequent motor rules
42 - -2.0<throttle<-1.0 : spin regardless of throttle position at speed `abs(throttle)-1` when Mixer Transition is activated.
44 Airmode type should be set to "STICK_CENTER". Airmode type must NOT be set to "THROTTLE_THRESHOLD". If set to throttle threshold the (-) motor will spin till throttle threshold is passed. 
46 Example: This will spin motor number 5 (counting from 1) at 20%, in transition mode only, to gain speed for a "4 rotor 1 pusher" setup:
48 ```
49 # motor number; throttle; roll; pitch; yaw
50 mmix 4 -1.200  0.000  0.000  0.000
51 ```
53 ## RC mode settings
55 It is recommend that the pilot uses a RC mode switch to activate modes or switch profiles.
56 Profile files Switching is not available until the runtime sensor calibration is done. Switching is NOT available when navigation mode is activate.
58 `mixer_profile` 1 will be used as default, `mixer_profile` 2 will be used when the `MIXER PROFILE 2` mode box is activated. 
59 Set `MIXER TRANSITION` accordingly when you want to use `MIXER TRANSITION` input for motors and servos. Here is sample of using these RC modes:
61 ![Alt text](Screenshots/mixer_profile.png)
63 |  1000~1300 |  1300~1700  | 1700~2000 |
64 | :-- | :-- | :-- |
65 | FW(profile1) with transition off |  MC(profile2) with transition on  | MC(profile2) with transition off |
67 It is also possible to set it as 4 state switch by adding FW(profile1) with transition on.
69 ## Automated Transition
70 This feature is mainly for RTH in a failsafe event. When set properly, model will use the FW mode to fly home efficiently, And land in the MC mode for easier landing.
71 `ON` for a mixer_profile\`s `mixer_automated_switch` means to schedule a Automated Transition when RTH head home(applies for MC mixer_profile) or RTH Land(applies for FW mixer_profile) is requested by navigation controller.
72 Set `mixer_automated_switch` to `ON` in mixer_profile for MC mode. Set `mixer_switch_trans_timer` in mixer_profile for MC mode for the time required to gain airspeed for your model before entering to FW mode.
73 When `mixer_automated_switch`:`OFF` is set for all mixer_profiles(defaults). Model will not perform automated transition at all.
75 ## TailSitter (planned for INAV 7.1)
76 TailSitter is supported by add a 90deg offset to the board alignment. Set the board aliment normally in the mixer_profile for FW mode(`set platform_type = AIRPLANE`), The motor trust axis should be same direction as the airplane nose. Then, in the mixer_profile for takeoff and landing set `tailsitter_orientation_offset = ON ` to apply orientation offset. orientation offset will also add a 45deg orientation offset.
78 ## Parameter list (Partial List)
79 ####  Please be aware of what parameter is shared among FW/MC modes and what isn't. 
80 ### Shared Parameters
82 - **Timer Overrides**
83 - **Outputs [Servo]:**
84   - Servo min-point, mid-point, max-point settings
85 - **Motor Configuration:**
86   - motor_pwm_protocol
87   - motor_poles
88 - **Servo Configuration:**
89   - servo_protocol
90   - servo_pwm_rate
91 - **Board Alignment**
92 - ·······
93 ### Profile-Specific Parameters in VTOL
94 - **Mixer Profile**
95     - **Mixer Configuration:**
96         - platform_type
97         - motor_stop_on_low
98         - tailsitter_orientation_offset
99         - motor_direction_inverted, and more·······
100     - **Motor Mixing (mmix)**
101     - **Servo Mixing (smix)**
102 - **PID Profile**
103   - PIDs for Roll, Pitch, Yaw
104   - PIDs for Navigation Modes
105   - TPA (Throttle PID Attenuation) Settings
106   - Rate Settings
107   - ·······
109 ### TailSitter support
110 TailSitter is supported by add a 90deg offset to the board alignment. Set the board aliment normally in the mixer_profile for FW mode(`set platform_type = AIRPLANE`), The motor trust axis should be same direction as the airplane nose. Then, in the mixer_profile for takeoff and landing `set platform_type = TAILSITTER`. The `TAILSITTER` platform type is same as `MULTIROTOR` platform type, expect for a 90 deg board alignment offset. In `TAILSITTER` mixer_profile, when motor trust/airplane nose is pointing to the sky, 'airplane bottom'/'multi rotor front' should facing forward in model preview. Set the motor/servo mixer according to multirotor orientation, Model should roll around geography's longitudinal axis, the roll axis of `TAILSITTER` will be yaw axis of `AIRPLANE`. In addition, When `MIXER TRANSITION` input is activated, a 45deg offset will be add to the target angle for angle mode.
112 ## Happy flying
114 Remember that this is currently an emerging capability:
116 * Test every thing on bench first.
117 * Try MR or FW mode separately see if there are any problems.
118 * Use the INAV Discord for help and setup questions; use the Github Issues for reporting bugs and unexpected behaviors. For reporting on Github, a CLI `diff all`, a DVR and a Blackbox log of the incident will assist investigation.