Skip to content
Pawel Spychalski (DzikuVx) edited this page Sep 21, 2022 · 28 revisions

The Basics of Getting INAV Working on an Airplane

Flight controllers designed for fixed wing

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.

Some of the most popular flight controllers for fixed wing are:

Suggested GPS Units

Step 1: Getting Your Flight Controller Ready.

  • Flash the latest version of INAV using the INAV Configurator

  • Do an entire sensor calibration. Level should be the angle of the plane itself when flying straight. Do not skip this step.

  • Select a preset from the INAV presets tab that fits your aircraft the best, then press "Save & Reboot"

Step 2: Hooking Everything Up.

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.

Note: If you are using INAV with a Mini Talon you'll need a Custom Mix 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.

  • Servo and ESC/MOTOR. ( Keep in mind servos positive wire should go to an independent BEC instead of connecting to the flight controller itself. )

    • Airplane

      • Output 1 - Motor/ESC
      • Output 2 - Empty / Or 2. motor
      • Output 3 - Elevator
      • Output 4 - Aileron
      • Output 5 - Aileron
      • Output 6 - Rudder
    • Flying Wing

      • Output 1 - Motor/ESC
      • Output 2 - Empty / Or 2. motor
      • Output 3 - Port Elevon
      • Output 4 - Starboard Elevon

An example if using SpracingF3:

  • If using GPS connect it to UART 2.
  • If using GPS setup UART2 for GPS at baud 57600 and enable GPS in configurations (if that doesn't work, try 115200).
  • If using Sbus connect it to UART 3 / or the uart which are dedicated for sbus on your board.
  • If using regular PPM connect it to IO 1 pin 1.
  • If using telemetry connect it with softserial. ( If using Smartport read this )

Step 3: Set up Your Receiver

Go to the Configuration tab and select your "Receiver Mode" for the receiver you have.

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.

Step 4: Setting up Your Remote, Endpoints and Reversing of Servos.

Your transmitter should use NO mixing at all (so separate channels for Thr, Ail, Rud, Ele).

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.

The correct way is:

  • Throttle stick push away - increased value
  • Yaw (Rudder) stick right - increased value
  • Pitch (Elevator) stick push away - increased value
  • Roll (Ailerons) stick right - increased value

Next is checking that your servo moves as expected:

  1. Servo goes the right way when moving sticks. Youtube help video
  2. The servo movement does not exceed wanted maximum deflection of control surfaces.
  3. The servo midpoint has control surfaces perfectly at center.

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

In the "Output" Tab:

  • If they go reverse, turn on the "Reverse" switch.
  • If they exceed maximum wanted deflection reduce min/max
  • If control surfaces is not perfectly centered adjust servo midpoint. (This is after setting them up as close as possible mechanically )

Note: You can change the servo mapping in the mixer tab.

At this point everything should work as expected.

1: When moving sticks on TX the control surfaces should move correctly, do an High Five test
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.)

Step 5, Replace Default Values

  • Type this and save in CLI to set the max roll and pitch angle in ANGLE mode to 60°:
    set max_angle_inclination_rll = 600
    set max_angle_inclination_pit = 600

  • Increase small angle (so INAV will let you arm in any position) type this and save in CLI: set small_angle = 180

  • 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: set nav_rth_allow_landing = NEVER

  • 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: set nav_rth_climb_first = OFF (Generally the default would be more useful than possibly turning back into any scenery that caused the RTH)

  • 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: set nav_rth_altitude = 7000

  • 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 (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.

  • 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.

  • Setup the right failsafe action. For most users it is advised to use set failsafe_procedure = RTH.

  • Take a few minutes to read through how the different Flight Modes affect the model in the air.

  • 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.

  • Read through the INAV CLI commands, especially ALL marked with "**fw_ **" This will give you hints how the modes for fixed wings work.

Step 6: Optional, but Recommended:

  • Tune your PIFF controller ( INAV versions 1.6 & later )

  • 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.

  • Use Airmode mode to get full stabilization and servo throw with no throttle applied.

  • Setting up failsafe with return to home.

  • 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

  • Use feature MOTOR_STOP for more safety. Motor will not spin if just armed.

  • 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.

  • Servo speed limits the control rate of your FC. You can lower set gyro_hardware_lpf to 20

  • 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.

  • Set your RTH mode to your liking

  • Increase set nav_fw_bank_angle for tighter turns.

  • set inav_reset_home = FIRST_ARM Unless you want your home position to be reset during mid air re-armings.

Last Step, a Test Flight!:

  • Double check following again:

    • 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.
    • Do the High Five test in manual mode, verify everything is moving as expected.
    • Enable Angle / Horizon mode and verify the control surfaces moves correctly when moving aircraft by hand and by sticks on TX
  • Arm and launch your aircraft using prefered mode, example manual for the maiden flight launch.

    • If airplane is not flying leveled when in self leveling mode like Horizon you need to trim your board aligment
    • If airplane flies leveled, do an Servo Autotrim
    • Tune your PIFF values, either manually or with AUTOTUNE
  • For GPS features

    • Test NAV ALTHOLD and see that it holds altitude.
    • Test NAV ALTHOLD and NAV POSHOLD combined
    • Test RTH flight mode
    • Test failsafe

Optional / Guides related to Fixed Wing:

WIKI TOPICS

Wiki Home Page

INAV Version Release Notes

7.1.0 Release Notes
7.0.0 Release Notes
6.0.0 Release Notes
5.1 Release notes
5.0.0 Release Notes
4.1.0 Release Notes
4.0.0 Release Notes
3.0.0 Release Notes
2.6.0 Release Notes
2.5.1 Release notes
2.5.0 Release Notes
2.4.0 Release Notes
2.3.0 Release Notes
2.2.1 Release Notes
2.2.0 Release Notes
2.1.0 Release Notes
2.0.0 Release Notes
1.9.1 Release notes
1.9.0 Release notes
1.8.0 Release notes
1.7.3 Release notes
Older Release Notes

QUICK START GUIDES

Getting started with iNav
Fixed Wing Guide
Howto: CC3D flight controller, minimOSD , telemetry and GPS for fixed wing
Howto: CC3D flight controller, minimOSD, GPS and LTM telemetry for fixed wing
INAV for BetaFlight users
launch mode
Multirotor guide
YouTube video guides
DevDocs Getting Started.md
DevDocs INAV_Fixed_Wing_Setup_Guide.pdf
DevDocs Safety.md

Connecting to INAV

Bluetooth setup to configure your flight controller
DevDocs Wireless Connections (BLE, TCP and UDP).md\

Flashing and Upgrading

Boards, Targets and PWM allocations
Upgrading from an older version of INAV to the current version
DevDocs Installation.md
DevDocs USB Flashing.md

Setup Tab
Live 3D Graphic & Pre-Arming Checks

Calibration Tab
Accelerometer, Compass, & Optic Flow Calibration

Alignment Tool Tab
Adjust mount angle of FC & Compass

Ports Tab
Map Devices to UART Serial Ports

Receiver Tab
Set protocol and channel mapping

Mixer

Mixer Tab
Custom mixes for exotic setups
DevDocs Mixer.md

Outputs

DevDocs ESC and servo outputs.md
DevDocs Servo.md

Modes

Modes
Navigation modes
Navigation Mode: Return to Home
DevDocs Controls.md
DevDocs INAV_Modes.pdf
DevDocs Navigation.md

Configuration

Sensor auto detect and hardware failure detection

Failsafe

Failsafe
DevDocs Failsafe.md

PID Tuning

EZ-Tune
PID Attenuation and scaling
Fixed Wing Tuning for INAV 3.0
Tune INAV PIFF controller for fixedwing
DevDocs Autotune - fixedwing.md
DevDocs INAV PID Controller.md
DevDocs INAV_Wing_Tuning_Masterclass.pdf
DevDocs PID tuning.md
DevDocs Profiles.md

GPS

GPS and Compass setup
GPS Failsafe and Glitch Protection

OSD and VTx

DevDocs Betaflight 4.3 compatible OSD.md
OSD custom messages
OSD Hud and ESP32 radars
DevDocs OSD.md
DevDocs VTx.md

LED Strip

DevDocs LedStrip.md

ADVANCED

Advanced Tuning

Fixed Wing Autolaunch
DevDocs INAV_Autolaunch.pdf

Programming

DevDocs Programming Framework.md

Adjustments

DevDocs Inflight Adjustments.md

Mission Control

iNavFlight Missions
DevDocs Safehomes.md

Tethered Logging

Log when FC is connected via USB

Blackbox

DevDocs Blackbox.md
INAV blackbox variables
DevDocs USB_Mass_Storage_(MSC)_mode.md

CLI

iNav CLI variables
DevDocs Cli.md
DevDocs Settings.md

VTOL

DevDocs MixerProfile.md
DevDocs VTOL.md

TROUBLESHOOTING

"Something" is disabled Reasons
Blinkenlights
Pixel OSD FAQs
TROUBLESHOOTING
Why do I have limited servo throw in my airplane

ADTL TOPICS, FEATURES, DEV INFO

AAT Automatic Antenna Tracker
Building custom firmware
Default values for different type of aircrafts
Features safe to add and remove to fit your needs.
Developer info
INAV MSP frames changelog
INAV Remote Management, Control and Telemetry
Lightweight Telemetry (LTM)
Making a new Virtualbox to make your own INAV
MSP Navigation Messages
MSP V2
OrangeRX LRS RX and OMNIBUS F4
Rate Dynamics
Target and Sensor support
UAV Interconnect Bus
Ublox 3.01 firmware and Galileo
DevDocs 1wire.md
DevDocs ADSB.md
DevDocs Battery.md
DevDocs Buzzer.md
DevDocs Channel forwarding.md
DevDocs Display.md
DevDocs Fixed Wing Landing.md
DevDocs GPS_fix_estimation.md
DevDocs LED pin PWM.md
DevDocs Lights.md
DevDocs OSD Joystick.md
DevDocs Servo Gimbal.md
DevDocs Temperature sensors.md

OLD LEGACY INFO

Supported boards
DevDocs Boards.md
Legacy Mixers
Legacy target ChebuzzF3
Legacy target Colibri RACE
Legacy target Motolab
Legacy target Omnibus F3
Legacy target Paris Air Hero 32
Legacy target Paris Air Hero 32 F3
Legacy target Sparky
Legacy target SPRacingF3
Legacy target SPRacingF3EVO
Legacy target SPRacingF3EVO_1SS
DevDocs Configuration.md
Request form new PRESET
DevDocs Introduction.md
Welcome to INAV, useful links and products
iNav Telemetry
DevDocs Rangefinder.md
DevDocs Rssi.md
DevDocs Runcam device.md
DevDocs Serial.md
DevDocs Telemetry.md
DevDocs Rx.md
DevDocs Spektrum bind.md

Clone this wiki locally