Updated INAV for BetaFlight users (markdown)
[inav.wiki.git] / Fixed-Wing-Guide.md
blob2041676ff2955f150a63a355de6d272d25f3a89b
1 # The Basics of Getting INAV Working on an Airplane
3 ### Flight controllers designed for fixed wing
5 Any flight controller can be used for fixed wing builds, however flight controllers specifically designed for this purpose will make the build simpler and require less additional components. For example, using a flight controller designed for multi rotors on a fixed wing setup usually requires an additional 5V regulator or a BEC for powering the servos, while flight controllers designed for planes will provide an independent 5V line to feed the servos.
7 Some of the most popular flight controllers for fixed wing are:
9 - [Matek F405-WING](https://inavflight.com/shop/s/bg/1292190) (target F405SE)
10 - [Matek F722-WING](https://inavflight.com/shop/s/bg/1408793)
11 - [Matek F411-WING](https://inavflight.com/shop/s/bg/1323063)
12 - [FuriousFPV F-35](https://inavflight.com/shop/s/bg/1278861)
14 ### Suggested GPS Units
16 - [Beitian BN220](https://inavflight.com/shop/p/BN220)
17 - [Beitian BN180](https://inavflight.com/shop/p/BN180)
18 - [Matek M8Q](https://inavflight.com/shop/s/bg/1337287)
20 ### Step 1: Getting Your Flight Controller Ready.
22 * Flash the latest version of INAV using the [INAV Configurator](https://github.com/iNavFlight/inav-configurator/releases)
24 * Do an entire [sensor calibration](https://github.com/iNavFlight/inav/wiki/Sensor-calibration). Level should be the angle of the plane itself when flying straight. **Do not skip this step**.
26 * Select a preset from the INAV presets tab that fits your aircraft the best, then press "Save & Reboot"
28 ### Step 2: Hooking Everything Up.
30 The image below shows the standard wiring for both a flying wing and for a normal fixed wing model with ailerons, elevator & rudder. You connect each servo to the corresponding PWM output on your flight controller.
32 **Note:** If you are using INAV with a Mini Talon you'll need a [Custom Mix](https://github.com/iNavFlight/inav/wiki/Custom-mixes-for-exotic-setups#v-tail-fixed-wing) so that the servos move correctly or if using a Skyhunter (Nano, Micro, Mini & full sized) then there is also a custom mix available [here](https://github.com/iNavFlight/inav/wiki/Custom-mixes-for-exotic-setups#skyhunter-nano-no-rudder).
34 <img src="https://cloud.githubusercontent.com/assets/16717155/26343189/d7ffbef4-3f92-11e7-8997-242fa990d50c.png"/>
36 * Servo and ESC/MOTOR. ( Keep in mind servos positive wire **should** go to an independent BEC instead of connecting to the flight controller itself. )
38     * Airplane
39         * Output 1 - Motor/ESC
40         * Output 2 - Empty / Or 2. motor
41         * Output 3 - Elevator
42         * Output 4 - Aileron
43         * Output 5 - Aileron
44         * Output 6 - Rudder
46     * Flying Wing
47         * Output 1 - Motor/ESC
48         * Output 2 - Empty / Or 2. motor
49         * Output 3 - Port Elevon
50         * Output 4 - Starboard Elevon
52 An example if using SpracingF3:
54 * If using GPS connect it to UART 2.
55 * If using GPS setup UART2 for GPS at baud 57600 and enable GPS in configurations (if that doesn't work, try 115200).
56 * If using Sbus connect it to UART 3 / or the uart which are dedicated for sbus on your board.
57 * If using regular PPM connect it to IO 1 pin 1.
58 * If using telemetry connect it with softserial. ( If using Smartport read [this](https://github.com/iNavFlight/inav/blob/master/docs/Board%20-%20Airbot%20F4%20and%20Flip32%20F4.md#frsky-smartport-using-softwareserial) )
60 ### Step 3: Set up Your Receiver
62 Go to the Configuration tab and select your "Receiver Mode" for the receiver you have.
64 If you are using a serial based receiver (like SBUS), go to the ports tab and and turn on "Serial RX" for the port that you connected it to. Other receiver types like MSP require other port setups.
66 ### Step 4: Setting up Your Remote, Endpoints and Reversing of Servos.
68 Your transmitter should use **NO mixing at all** (so separate channels for Thr, Ail, Rud, Ele). 
70 Check that when moving the sticks, the right channels moves in the receiver window. Also everything should be centered at 1500us, and full stick movement should be 1000-2000us. Use sub trim and travel range on your TX to set this up. 
72 The correct way is:
74 * Throttle stick push away - increased value
75 * Yaw (Rudder) stick right - increased value
76 * Pitch (Elevator) stick push away - increased value
77 * Roll (Ailerons) stick right - increased value
79 Next is checking that your servo moves as expected:
81 1. Servo goes the right way when moving sticks. [Youtube help video](https://www.youtube.com/watch?v=Gf74geZyKYk&t=1s)
82 1. The servo movement does not exceed wanted maximum deflection of control surfaces.
83 1. The servo midpoint has control surfaces perfectly at center.
85 **Note:** Check the following in Manual mode (formerly passthrough mode). In the other modes you won't see full deflection on the bench. If you don't know how to set up Manual mode, see https://www.youtube.com/watch?v=oJTPuEUZOAE
87 In the "Output" Tab:  
89 * If they go reverse, turn on the "Reverse" switch.
90 * If they exceed maximum wanted deflection reduce min/max  
91 * If control surfaces is not perfectly centered adjust servo midpoint. (This is after setting them up as close as possible mechanically )  
93 **Note:** You can change the servo mapping in the mixer tab.
95 At this point everything should work as expected.  
97 1: When moving sticks on TX the control surfaces should move correctly, do an [High Five](https://www.youtube.com/watch?v=Gf74geZyKYk) test  
98 2: When moving the airplane in the air in angle mode control surfaces should counter-act movement correctly. The controls surfaces needs to move the same way as the airplane is moved to counteract and stabilize the airplane. You may need to **temporarily** triple the amount on P-gain on Roll, Pitch and Yaw axis in the "PID tuning" tab. (So its easy to see movement.)  
100 ### Step 5, Replace Default Values
102 * Type this and save in CLI to set the max roll and pitch angle in `ANGLE` mode to 60°:  
103 ``set max_angle_inclination_rll = 600``    
104 ``set max_angle_inclination_pit = 600``  
106 * Increase small angle (so INAV will let you arm in any position) type this and save in CLI:
107 ``set small_angle = 180`` 
109 * If you wish for your fixed wing model to loiter instead of attempting a landing after RTH mode is selected & the model returning home, you can set the model to loiter by typing this and saving in CLI:
110 ``set nav_rth_allow_landing = NEVER``
112 * In INAV when the RTH mode is enabled, the model will climb FIRST then return home. If you set this value below, the model will **turn and then climb** on it's way back to the home position:
113 ``set nav_rth_climb_first = OFF`` 
114 (Generally the default would be more useful than possibly turning back into any scenery that caused the RTH)
116 * In INAV the default RTH height is 10 metres (approx 32') which might be too low for flying sites with trees. You can change this to 70 metres (approx 230') by setting this value in the CLI tab and typing save afterwards:
117 ``set nav_rth_altitude = 7000``
119 * If you intend to glide for more than 10 seconds it's suggested that you also set this value, so that the model doesn't "failsafe" by itself when using zero throttle during a glide: ``set failsafe_throttle_low_delay = 0`` 
120 (This will only stop the low throttle "timed" safety Guard Failsafe and an RC Loss could still result in a DISARM when at low throttle) Stay current with latest iNAV FS options. 
122 * Setup `failsafe` mode. If you select your receiver to go to RTH mode in modes tab, it will not control throttle if throttle is zero.
124 * Setup the right failsafe action. For most users it is advised to use ``set failsafe_procedure = RTH``.
126 * Take a few minutes to read through how the different [Flight Modes](https://github.com/iNavFlight/inav/wiki/Modes) affect the model in the air.
128 * Have `manual` mode configured so if it happens anything with gyro / accelerometer in the air you can use manual control. This includes if your flight controller resets during flight because of example an brownout.  
130 * Read through the INAV [CLI commands](https://github.com/iNavFlight/inav/blob/master/docs/Cli.md), especially ALL marked with "**fw_ **" This will give you hints how the modes for fixed wings work.  
132 ### Step 6: Optional, but Recommended:
134 * [Tune your PIFF controller](https://github.com/iNavFlight/inav/wiki/Tune-INAV-PIFF-controller-for-fixedwing) ( INAV versions 1.6 & later )
136 * To make altitude hold smoother you can adjust ``set nav_fw_pos_z_p`` , ``set nav_fw_pos_z_i`` and ``set nav_fw_pos_z_d``. Good values to start are 30/10/10.
138 * Use Airmode mode to get full stabilization and servo throw with no throttle applied.
140 * [Setting up failsafe with return to home.](https://github.com/iNavFlight/inav/wiki/Failsafe#setting-up-failsafe-with-return-to-home)
142 * If your compass is not 100% properly setup just disable it instead. **A calibrated compass can cause orientation drift during flight that may not show up in the configurator** (especially built-in ones on your FC). Really consider disabling it unless you need it. INAV uses GPS heading normally, Only on ground before GPS speed has been high enough or if error between GPS heading and compass heading exceed 60deg will it use compass heading
144 * Use ``feature MOTOR_STOP`` for more safety. Motor will not spin if just armed.
146 * Use ``set tpa_rate`` and ``set tpa_breakpoint`` to optimise your PIFF for higher speeds. Good value to start is 40% at your cruise throttle position as breakpoint.
148 * Servo speed limits the control rate of your FC. You can lower ``set gyro_hardware_lpf`` to 20
150 * Adjust ``set roll_rate`` and ``set pitch_rate`` to the flight characteristics of your plane. For a race wing values like ``set roll_rate = 36`` and ``set pitch_rate = 18`` are a good starting point.
152 * Set your [RTH mode](https://github.com/iNavFlight/inav/wiki/Navigation-modes#rth-altitude-control-modes) to your liking
154 * Increase ``set nav_fw_bank_angle`` for tighter turns.
156 * ``set inav_reset_home = FIRST_ARM`` Unless you want your home position to be reset during mid air re-armings.
158 ### Last Step, a Test Flight!:
160 * Double check following again:
161     * 3d model in configurator moves correctly when moving airplane by hand. And that the aircraft is showing leveled when your holding the aircraft leveled in air.
162     * Do the [High Five](https://youtu.be/Gf74geZyKYk) test in manual mode, verify everything is moving as expected.
163     * Enable `Angle` / `Horizon` mode and verify the control surfaces moves correctly when moving aircraft by hand and by sticks on TX
165 * Arm and launch your aircraft using prefered mode, example `manual` for the maiden flight launch.
166     * If airplane is not flying leveled when in self leveling mode like `Horizon` you need to trim your [board aligment](https://github.com/iNavFlight/inav/wiki/Sensor-calibration#board-orientation-and-level-calibration)
167     * If airplane flies leveled, do an [Servo Autotrim](https://github.com/iNavFlight/inav/wiki/Modes#servo-autotrim)
168     * Tune your PIFF values, either manually or with [AUTOTUNE](https://github.com/iNavFlight/inav/wiki/Modes#autotune) 
170 * For GPS features
171     * Test `NAV ALTHOLD` and see that it holds altitude.
172     * Test `NAV ALTHOLD` and `NAV POSHOLD` combined
173     * Test `RTH` flight mode
174     * Test [failsafe](https://github.com/iNavFlight/inav/wiki/Failsafe)
177 ### Optional / Guides related to Fixed Wing:
179 * Using a seperate BEC for servos to prevent the FC from restarting due to brownouts or interferences of the servos. [Example](http://www.rcgroups.com/forums/showpost.php?p=34254665&postcount=4006) INAV will not be able to function after an brownout, Pilot must switch into manual mode and fly manually and land the airplane.
181 * [Using a minimosd](https://github.com/iNavFlight/inav/wiki/Howto:-CC3D-flight-controller,-minimOSD-and-GPS-for-fixed-wing#osd-setup)
183 * Howto in flight trim servos. [Aileron example at rcgroups.com](http://www.rcgroups.com/forums/showpost.php?p=35059861&postcount=6741) [Fixed wing example](https://www.rcgroups.com/forums/showpost.php?p=36039077&postcount=8732)
185 * Prefer using digital servos to analog ones. Digital servos are much faster. [Explanation](https://www.rcgroups.com/forums/showpost.php?p=36649528&postcount=10480)
187 * Add an capacitor on the +5v powering servos to avoid issues. ( Especially with digital servos ) [Link explanation](http://www.vstabi.info/en/node/1422) [Example to buy](http://www.multiwiicopter.com/products/c1-anti-brownout-cap-for-rc-drone-servos)
189 * [Why do I have limited servo throw-in-my airplane](https://github.com/iNavFlight/inav/wiki/Why-do-I-have-limited-servo-throw-in-my-airplane)