←Back

These are my notes from setting up iNav on a FMS Super EZ V4 foamie and Radiomaster TX15 Max. I've not got into any detail here about phsically soldering up a Flight Controller, just the settings I used in iNav and the Tx which worked on my trial flights.

These are the areas others might find useful:-

  1. Arming
  2. iNAV - Logical Switches to Manage Flight Modes
  3. Auto Launch for Tail Dragger
1. ARMING

I used a momentary switch. To use the switch safely, you need to use the Edge function in EdgeTX. This turns your momentary switch into a toggle: press once to arm, press again to disarm.

Here is the logic optimized for a momentary switch

Go to MDL -> Logical Switches and program the following:-

  • L01 (Throttle Check):
  • Func: a < x
  • V1: Thr
  • V2: -95
  • What it does: Checks that the throttle is all the way down.
  • L02 (The Arming Pulse):
  • Func: Edge
  • V1: SF↓ (Your momentary switch, pushed forward)
  • V2: [0.0:---] (Leave the duration default so a quick tap triggers it)
  • AND Switch: L01
  • What it does: This generates a brief "On" pulse only if you press SF while the throttle is fully down. If your throttle is high, pressing the button does absolutely nothing. 
  • L03 (The Disarming Pulse):
  • Func: Edge
  • V1: SF↓
  • V2: [0.0:---]
  • AND Switch: L04 (We will create L04 next)
  • What it does: This generates a brief pulse when you press SF while the aircraft is already armed.
  • L04 (The Sticky Arm Latch):
  • Func: Sticky
  • V1: L02 (The arming pulse turns it ON)
  • V2: L03 (The disarming pulse turns it OFF)
  • What it does: This latches the armed state. Tap SF once with zero throttle to arm, it stays armed when you let go. Tap SF a second time to disarm instantly.  
Mixer and iNav Setup                                                                                       
  • Go to your Mixes page.
  • Select your arming channel (e.g., CH5 or your preferred channel if using ELRS 4.1.0's free-switch mapping).
  • Edit the mix and set the Source to L04.
  • In iNav Configurator Modes, set the ARM window to activate when the channel reads high (2000us), exactly as before.

To set up the voice alerts, you will use the Special Functions menu. This will track the state of your final sticky arm switch (L04) and play the appropriate audio file whenever the state changes.

Here is how to set it up:-

Configure the Voice Alerts
  • Press the MDL button on your radio and page over to the Special Functions screen (SF).
  • Scroll to an empty slot (e.g., SF1) and press edit:
  • Switch: L04 (Triggers when the switch turns ON)
  • Action: Play Track
  • Parameters: armed (Select the "armed" or "engag" voice file from your SD card)
  • Frequency: No Repeat (Ensure the checkbox at the end of the row is checked/enabled so it actually runs)
  • Move down to the next slot (e.g., SF2):
  • Switch: !L04 (The exclamation mark means "NOT L04", which triggers when the switch turns OFF)
  • Action: Play Track
  • Parameters: disarmed (Select the "disarmed" or "disengag" voice file)
  • Frequency: No Repeat (Ensure the checkbox is checked/enabled)

Now, when you tap your momentary switch SF with the throttle down, the radio will immediately say "Armed". When you tap it again to disarm, it will say "Disarmed".

Using 6 Position Buttons E.g. TX15

Customisable buttons are in the radio menu and can be used to set arming. This example uses switches 1 and 6.

The the logic is programmed as 2 behaviors:

  1. To Arm: Requires pressing both Switch 1 AND Switch 6 at the same time.
  2. To Disarm: Requires turning both switches off.

A sticky switch acts like an electronic deadbolt. Once it is thrown open by the dual button press it completely ignores the individual buttons until a specific "Reset" condition is met.

Here is how to configure it so an accidental bump won't drop the model out of the sky:-

Step 1: Set up the Trigger and Reset Logic

We will use three logical switches to create a safe system where knocking a single button does nothing.

  1. Press MDL and go to Logical Switches.
  2. L01 (The Arming Trigger):
    • Func: AND
    • V1: 6P1
    • V2: 6P6
      (This only turns on when both buttons are clicked ON).
  3. L02 (The Disarming Trigger):
    • Func: AND
    • V1: !6P1 (Note the ! exclamation mark, which means "NOT 6P1" or "6P1 is Off")
    • V2: !6P6 (This means "6P6 is Off")
      (This only triggers when both buttons are clicked completely OFF).
  4. L03 (The Master Arm State):
    • Func: Sticky
    • V1 (Trig): L01 (Turns your arming signal ON)
    • V2 (Reset): L02 (Turns your arming signal OFF)
Step 2: Update your Mix
  1. Go to the Mixes tab.
  2. Edit CH10 (or whatever Arming CH) and change the active switch to L03.
How this works:
  • Arming: You click Switch 1 and Switch 6. L01 flashes on, and L03 locks into the "Armed" state. Channel 10 goes high.
  • The "Bump" Protection: If you accidentally bump Switch 1 off during flight, L01 turns off, but L03 stays locked on. The model stays safely in the air because L02 (the reset) requires both buttons to be off before it will disarm.
  • Disarming: When you land and want to safely disarm, you must deliberately turn both switches off. Once both are dark (toggled OFF) L02 fires, resets the sticky switch, and drops Channel 10 back to disarmed.
 
2. iNAV - Logical Switches to Manage Flight Modes

In the Tx configure 6 flight modes across a 2-position switch which then controls two 3-position switches. 

First, build 6 logical switches that turn ON exactly when the physical switch combinations match. Go to the Logical Switches page:-

LS

Func

V1

V2

 

L01

AND

SE↑

SA↑

(Switch F Up/Away)

L02

AND

SE↑

SA-

 

L03

AND

SE↑

SA↓

 

L04

AND

SE↓

SB↑

(Switch F Down/Towards)

L05

AND

SE↓

SB-

 

L06

AND

SE↓

SB↓

 

 

Switch names are just an example. 

iNav 6-Position Weight Calculations

Position

iNav uS Window

Exact Target Midpoint

Math (Midpoint - 1500) / 5.12

EdgeTX Weight to Use

POS 1 (L01)

900uS – 1100uS

1000uS

-500 / 5.12 = -97.6%

-98%

POS 2 (L02)

1100uS – 1300uS

1200uS

-300 / 5.12 = -58.5%

-59%

POS 3 (L03)

1300uS – 1500uS

1400uS

-100 / 5.12 = -19.5%

-20%

POS 4 (L04)

1500uS – 1700uS

1600uS

+100 / 5.12 = +19.5%

+20%

POS 5 (L05)

1700uS – 1900uS

1800uS

+300 / 5.12 = +58.5%

+59%

POS 6 (L06)

1900uS – 2100uS

2000uS

+500 / 5.12 = +97.6%

+98%

 

Mixer Setup - Apply to your chosen iNav Mode Channel

The above Logical Switches then need to be assigned in the mixer. Go to the Mixes page on your chosen channel (for example, CH6 or CH7, avoiding the restricted CH5/AUX1 if you are still using ExpressLRS full-resolution modes) and apply these percentages:-

  • CH(X)
    • Source: MAX, Weight: -98%, Switch: L01
    • Source: MAX, Weight: -59%, Switch: L02, Multiplex: Replace
    • Source: MAX, Weight: -20%, Switch: L03, Multiplex: Replace
    • Source: MAX, Weight: +20%, Switch: L04, Multiplex: Replace
    • Source: MAX, Weight: +59%, Switch: L05, Multiplex: Replace
    • Source: MAX, Weight: +98%, Switch: L06, Multiplex: Replace
🔍 Verification Steps:
  1. Radio Check: Open your radio’s Outputs monitor page. When you cycle your physical switches through the 6 states, you should see the microsecond output jump precisely onto 1000, 1200, 1400, 1600, 1800, and 2000uS (or within 1-2uS due to rounding).
  2. iNav Configurator Check: Connect your model to the iNav Configurator, navigate to the Modes tab, and toggle your switches. The blue indicator bar will snap perfectly to the exact middle of each mode range box, ensuring no accidental mode flickering.
Assign Voice Tracks in Special Functions

Now that the radio has virtual "triggers" that activate only when the modes change, link them to audio tracks.

  1. Page over to the SPECIAL FUNCTIONS screen.
  2. Create a line for each logical switch using these settings:-
  • SF1: Switch: L01 | Action: Play Track | Parameters: man (or manmd)
  • SF2: Switch: L02 | Action: Play Track | Parameters: acro 
  • SF3: Switch: L03 | Action: Play Track | Parameters: angle (or anglmd)  
  • SF4: Switch: L04 | Action: Play Track | Parameters: rth 
  • SF5: Switch: L05 | Action: Play Track | Parameters: cruise 
  • SF6: Switch: L06 | Action: Play Track | Parameters: loiter
 
3. Auto Takeoff for Tail Dragger

To let a tail dragger roll naturally from a dead stop under its own power while using the safety and stabilizing benefits of NAV LAUNCH, you must configure the flight controller to trigger the sequence using velocity (ground speed) rather than a sharp acceleration shock (hand launch). 

Firstly, configure iNav for the launch. 

CLI Commands

Click the CLI tab in iNav Configurator 9.1 and paste this complete, updated configuration line by line:

set nav_fw_launch_accel = 1450

set nav_fw_launch_velocity = 150

set nav_fw_launch_detect_time = 30

set nav_fw_launch_idle_thr = 1750

set nav_fw_launch_motor_delay = 0

set nav_fw_launch_climb_angle = 25

set nav_fw_launch_timeout = 8000

set nav_fw_launch_max_altitude = 35

set nav_fw_launch_thr = 1950

save

Parameter Breakdown & Grass Suitability
  • set nav_fw_launch_idle_thr = 1750 (~75% power)
    • Why it suits grass: Standard iNav keeps the motor dead until a throw is detected. For a ground roll, this setting spins the prop instantly upon arming, giving the plane the immediate "grunt" needed to overcome heavy grass drag from a dead stop.
  • set nav_fw_launch_velocity = 150 (1.5 m/s or ~3.3 mph)
    • Why it suits grass: Since we aren't throwing the plane, it cannot rely on a sharp acceleration shock. This low threshold means as soon as the plane rolls forward just a few feet under idle power, iNav registers the ground speed and triggers the takeoff.
  • set nav_fw_launch_accel = 1450 (1.48G buffer)
    • Why it suits grass: Grass causes severe, high-frequency vibrations as the wheels hit divots. Keeping this at 1450 acts as a safety shield, preventing a harsh grass bump from tricking the flight controller into thinking it is flying before it actually has forward speed.
  • set nav_fw_launch_detect_time = 30 (30ms verification window)
    • Why it suits grass: It requires the plane to maintain its launch speed state continuously for 30 milliseconds, ensuring instant vibration spikes from grass tufts are ignored.
  • set nav_fw_launch_motor_delay = 0
    • Why it suits grass: Hand-launchers need a delay to protect their fingers from the prop. Since your plane is safely on the wheels, this eliminates the delay so the motor aggressively punches the exact millisecond the speed trigger is hit.
  • set nav_fw_launch_thr = 1950 (~95% maximum climb power)
    • Why it suits grass: The default value of 1800 (80% power) is too weak to fight the friction of grass. Bumping this to 1950 ensures that the moment the launch triggers, the prop snaps the airframe forward violently to generate clean lift quickly, while leaving a tiny safety margin to protect your ESC from heat spikes.
  • set nav_fw_launch_climb_angle = 20 (20° Pitch)
    • Why it suits grass: The Super EZ is a high-lift trainer. A standard 25-degree climb is too steep for a 3S setup on a 10x5 prop and risks a stall. 20 degrees is the "sweet spot" for a safe, authoritative ascent.
  • set nav_fw_launch_timeout = 8000 & max_altitude = 3500
    • Why it suits grass: It flies the plane autonomously for up to 8 seconds or until it crosses 35 metres altitude, giving you plenty of time to look up from the grass runway and comfortably place your hands on the sticks before taking over.

Using a fixed 2-position switch for NAV LAUNCH works perfectly, but it means you must remember to manually flip that switch back to the off position once you are flying normally.

Takeoff Routine
  1. Select Mode for when auto launch finishes e.g. Angle, Horizon
  2. Enable Launch Mode - Button 1
  3. ARM 
  4. Throttle all the way up 100% - motor starts spinning and accelerates to tack off
  5. Move a control stick to take over. Model drops back to Mode set at point 1
  6. Turn off Launch Mode - press button 1 again or press button 6

If it tries to nose over then up ELE just until wheels turn then release it.

 

Author: Mark Bennett

Date: October 2026