INAV FAQ
INAV is the firmware for autonomous fixed-wing and multirotor flight with GPS features, built on the Betaflight lineage. That inheritance shapes how it is configured: much of it is done through a CLI of named settings rather than a parameter table, and the setting names are lower case with underscores.
These are the questions that come up most often. For putting INAV on a board in the first place, see the Firmware Flashing Guide.
How do I change the motor order?
You do not have to unsolder anything — INAV can remap which output drives which physical motor.
- Connect the board over USB and open INAV Configurator.
- Go to the Mixer tab.
- Click Motor Mixer Wizard.
- Set which physical motor each output corresponds to.
- Click Save and Reboot.
Then verify it. On the Outputs tab you can spin each motor individually — with the propellers off — and confirm that the motor INAV calls 1 is the one that moves when you test motor 1, and that each is turning the direction the mixer diagram shows.
Wrong order is fixed here, in software. Wrong direction is not: swap any two of the three motor wires at the ESC, or reverse that motor in an ESC configurator.
Motor order and direction are exactly the things that are still wrong at this point in a build. A quad with its mixing wrong does not wobble gently — it flips at full power.
Which ESC protocol does INAV use, and what should I set?
motor_pwm_protocol, and its default is ONESHOT125 — not plain PWM, and not DShot. That catches people arriving from other firmware in both directions.
| Value | Type |
|---|---|
STANDARD | ordinary PWM |
ONESHOT125 | the default |
MULTISHOT | |
BRUSHED | small brushed motors, not ESCs |
DSHOT150 | digital |
DSHOT300 | digital — the usual choice for a 4-in-1 |
DSHOT600 | digital |
A 4-in-1 ESC running Bluejay or AM32 configured for DShot will not respond to ONESHOT125 at all, and nothing will report an error — the motors simply do nothing. Set DSHOT300 and reboot.
DShot also removes ESC calibration entirely, because it sends a number rather than a pulse length and there is nothing to calibrate.
How do I set up a receiver?
Two settings in two different places, which is why it is easy to do half of it.
In the Ports tab, enable Serial RX on the UART the receiver is wired to. Only one port can have it.
In the Receiver tab, set the receiver type to SERIAL — the other options are NONE, MSP for control from a companion computer, and a simulator mode — then choose the provider that matches your receiver:
| Provider | Receiver |
|---|---|
SBUS | classic SBUS, most Futaba-style receivers |
SBUS_FAST | SBUS at the faster rate some receivers offer |
CRSF | ELRS and TBS Crossfire |
GHST | ImmersionRC Ghost |
FPORT, FPORT2, FBUS | FrSky's combined control and telemetry protocols |
IBUS | FlySky |
SPEK1024, SPEK2048, SRXL2 | Spektrum |
SUMD | Graupner |
JETIEXBUS | Jeti |
SBUS2 | SBUS with telemetry |
MAVLINK | RC over a MAVLink link |
Save and reboot, then check the channel bars on the Receiver tab move with the sticks before going any further.
How do I mount the flight controller sideways or upside down?
align_board_roll, align_board_pitch and align_board_yaw — and the units are the trap.
The values are in tenths of a degree. 180° is 1800. 90° is 900. 45° is 450.
Typing 180 gives the firmware 18 degrees, which is wrong in the most awkward possible way: small enough to look almost right on the bench, large enough to make the aircraft lean and drift in flight.
The range runs from −1800 to 3600, and each defaults to 0. Board alignment is a whole topic of its own — Flight Controller Board Orientation covers how to work out which rotation you actually need.
How do I set the external compass orientation?
align_mag, and this one takes a name, not a number:
| Value | Meaning |
|---|---|
DEFAULT | whatever the board target defines |
CW0_DEG … CW270_DEG | rotated clockwise by that many degrees |
CW0_DEG_FLIP … CW270_DEG_FLIP | the same, with the sensor upside down |
So an external compass rotated 90° clockwise relative to the board is CW90_DEG; one mounted upside down and not rotated is CW0_DEG_FLIP.
Note that INAV uses three different conventions for orientation in the same firmware: deci-degrees for the board, named rotations for the compass, and the mixer for the motors. They are not interchangeable, and a value that looks plausible in the wrong convention will be accepted without complaint.
External Compass Orientation explains how to determine the rotation rather than guess it.
How do I back up my configuration?
In the CLI tab:
| Command | What it does |
|---|---|
diff all | prints only the settings that differ from the defaults |
dump all | prints every setting, defaults included |
save | writes the configuration and reboots |
defaults | resets everything |
diff all is the one you want. Because it lists only your changes, the output is short enough to read, to keep in a text file, to put in a message when asking for help, and to paste straight back into a CLI on a freshly flashed board. dump all is a complete record but hundreds of lines, and restoring from it will also restore defaults that a newer firmware version may have deliberately changed.
To restore: flash the firmware, open the CLI, paste the saved diff all output, and finish with save.
diff all before you flashFirmware updates can reset the configuration. Thirty seconds spent copying diff all into a text file beforehand is the difference between a five-minute update and rebuilding a setup from memory.
My battery voltage or current reading is wrong
Two settings, each with its own unit convention:
vbat_scale — the voltage divider ratio multiplied by 100. A value of 1100 describes an 11:1 divider, such as 10 kΩ and 1 kΩ. If the reported pack voltage is off compared with a multimeter, adjust this proportionally: reading 1% low means raising it by about 1%. The CLI's status command shows the current reading while you work.
current_meter_scale — the output-voltage-to-current scaling, in 0.1 mV per amp. So 400 means 40 mV/A.
Current is far more likely to be wrong than voltage out of the box, because the current shunt is usually on the ESC rather than on the flight controller, so the board target's default was never chosen for your particular ESC. Fly a pack, compare what INAV reported as consumed against what your charger puts back in, and scale accordingly.
Related guides
- Flight Controller Firmware Flashing Guide
- Flight Controller Board Orientation
- External Compass Orientation
- u-blox GPS Baud Rate Configuration
- Configure ESC Parameters
- MicoAir F405 V2 — User Manual
Written and maintained by the Robofusion engineering team.