Skip to content

INAV blackbox variables

Jetrell edited this page Aug 31, 2025 · 25 revisions

Overview

Blackbox is a valuable tool for analyzing the flight dynamics of our airborne vehicles and as such it can be useful for troubleshooting and debugging purposes.

In INAV we use a set of specific variables, each variable may contain multiple arrays, for example - navPos[0-2].

navPos, navVel, navTgtPos and navTgtVel each hold arrays [0-2], which represent distances due North [0], due East [1] and straight Up [2], all relative to the "point of origin". North and East are fused from accelerometer and GPS data, while Up is fused from accelerometer + barometer for multicopters and accelerometer + gps for airplanes if no barometer is available. Read the Inertial position estimator|Inertial-position-estimator-(INAV) section in the Developer info page for detailed explanation.

"Point of origin" might be different from "Home". "Home" is defined as position at the time of arming. While "Point of origin" is recorded after a valid GPS fix is aquired.

For further information about the coordinate system used please read the Coordinate systems|Coordinate-systems section on the Developer info page.

#INAV Variables

Variables listed below with a short description of each:

  • navMode (navState in newer code): current mode of operation from INAV's point of view. Might be different from flight mode. Meaning vary by version, but navMode=0 and navState=1 means idle.

  • navFlags: binary flags of INAV internal state: new data availability for altitude, position and heading, validity of altitude, surface distance and position, flags to indicate if pilot is adjusting altitude and position via rc input.

  • navTgtPos: represents the desired position as used/calculated by INAV. When you are in PH, navTgtPos will be set to hold position coordinates.

  • navPos: array of latest NEU coordinates as provided by inertial estimator. Will be slightly different from GPS/baro readings for 99% of time. Units - cm.

  • navVel: same as navPos, but for estimated velocity. Units - cm/s

  • navTgtVel: represents the desired velocity as used/calculated by INAV. When you are in PH, navTgtVel will be set to calculated desired velocity to reach the target position.

  • navDebug: as the name suggests it is used for debugging. Meaning of these values differ all the time depending on what part of the code is currently being debugged.

Blackbox can log data either via serial port or into internal dataflash. In order to log the data into the internal flash at the moment is possible via CLI: set blackbox_device = SPIFLASH # instead of SERIAL set blackbox_rate_num = 1 set blackbox_rate_denom = 2 This will make it work and store every second value.

INAV Logging Intervals

Blackbox logs several types of frames - flight behaviour is written using I- and P-frames. I-frames are fairly big and contain absolute values, P-frames are delta-encoded to save space. Blackbox denominator only reduces P-frame rate, the I-frame rate is constant.

Originally I-frames were logged every 32 iterations, P-frame is logged every blackbox_rate_denom after I-frame. This doesn't give you exactly 1 / blackbox_rate_denom rate, i.e. for 1/16 - 1/31 rates it's going to be c. 16 iterations between frames on average.

For INAV 1.6 and later, the I-frame interval is set dynamically at 1/32, 1/64, 1/128 and 1/256 based on the blackbox_rate_denom chosen.

For example, if a blackbox_rate_denom of 50 is used, INav will select 64 as the I-frame interval, meaning c. 1/32 actual logging rate.

Note

Due to the complexity of the tasks being performed in later INAV releases. e.g. 2K_looptime, lower Dshot values, Control Profiles, Programming framework, OSD etc. It is advisable to run blackbox_rate_denom at the lowest value (32 - 3%) to start with. Otherwise higher rates may cause breaks in the log, or inability to record any log data. This will vary based on the hardware logging type (FLASH, SDCARD, SDIO)

Some fields that are logged, are not yet accessible with Blackbox Explorer. Instead try using MWPtools.

Explanation of all the parameters

Name of field in txt file Name in Blackbox Log Viewer Explanation . ..
loopIteration not used counter from main loop
time (us) x-axis of diagram real time in micoseconds
axisRate[0] gyros[roll] (.. deg/s) rotation rate roll deg/sec
axisRate[1] gyros[pitch] (.. deg/s) rotation rate pitch deg/sec
axisRate[2] gyros[yaw] (.. deg/s) rotation rate yaw deg/sec
axisP[0] PID_P[roll] PID controller roll P
axisP[1] PID_P[pitch] PID controller pitch P
axisP[2] PID_P[yaw] PID controller yaw P
axisI[0] PID_I[roll] PID controller roll I
axisI[1] PID_I[pitch] PID controller pitch I
axisI[2] PID_I[yaw] PID controller yaw I
axisD[0] PID_D[roll] PID controller roll D
axisD[1] PID_D[pitch] PID controller pitch D
axisD[2] PID_D[yaw] PID controller yaw D
mcPosAxisP[0] mcPosAxisP[0] multicopter position north cm
mcPosAxisP[1] mcPosAxisP[1] multicopter position east cm
mcPosAxisP[2] mcPosAxisP[2] multicopter position vertical cm
mcVelAxisP[0] mcVelAxisP[0] multicopter velocity north cm/sec
mcVelAxisP[1] mcVelAxisP[1] multicopter velocity east cm/sec
mcVelAxisP[2] mcVelAxisP[2] multicopter velocity vertical cm/sec
mcVelAxisI[0] mcVelAxisI[0] multicopter velocity north cm/sec
mcVelAxisI[1] mcVelAxisI[1] multicopter velocity east cm/sec
mcVelAxisI[2] mcVelAxisI[2] multicopter velocity vertical cm/sec
mcVelAxisD[0] mcVelAxisD[0] multicopter velocity north cm/sec
mcVelAxisD[1] mcVelAxisD[1] multicopter velocity east cm/sec
mcVelAxisD[2] mcVelAxisD[2] multicopter velocity vertical cm/sec
mcVelAxisOut[0] mcVelAxisOut[0] multicopter velocity north cm/sec
mcVelAxisOut[1] mcVelAxisOut[1] multicopter velocity east cm/sec
mcVelAxisOut[2] mcVelAxisOut[2] multicopter velocity vertical cm/sec
mcSurfaceP mcSurfaceP multicopter surface mode P
mcSurfaceI mcSurfaceI multicopter surface mode I
mcSurfaceD mcSurfaceD multicopter surface mode D
mcSurfaceOut mcSurfaceOut multicopter surface mode
fwAltP fwAltP fixedwing altitude position P
fwAltI fwAltI fixedwing altitude position I
fwAltD fwAltD fixedwing altitude position D
fwAltOut fwAltOut fixedwing altitude position output
fwPosP fwPosP fixedwing horizontal position P
fwPosI fwPosI fixedwing horizontal position I
fwPosD fwPosD fixedwing horizontal position D
fwPosOut fwPosOut fixedwing horizontal position output
rcData[0] rcData[0] received rc signal roll 1000-2000 µs
rcData[1] rcData[1] received rc signal pitch 1000-2000 µs
rcData[2] rcData[2] received rc signal yaw 1000-2000 µs
rcData[3] rcData[3] received rc signal throttle 1000-2000 µs
rcCommand[0] rcCommand[0] stabilization controller command roll 1000-2000 µs
rcCommand[1] rcCommand[1] stabilization controller command pitch 1000-2000 µs
rcCommand[2] rcCommand[2] stabilization controller command yaw 1000-2000 µs
rcCommand[3] rcCommand[3] stabilization controller command throttle 1000-2000 µs
vbat vbat voltage of flight battery volts
sagCompensatedVBat load compensated battery voltage volts
powerSupplyImpedance flight battery internal resistance
amperage system current drain amps
magADC[0] mag[x] compass north
magADC[1] mag[y] compass east
magADC[2] mag[z] compass vertical
BaroAlt Baro altitude(barometric) m
gyroADC[0] gyro[0] rotation(gyro) roll deg/sec
gyroADC[1] gyro[1] rotation(gyro) pitch deg/sec
gyroADC[2] gyro[2] rotation(gyro) yaw deg/sec
gyroRaw[0] gyroRaw[0] rotation(gyro before filtering) roll deg/sec
gyroRaw[1] gyroRaw[1] rotation(gyro before filtering) pitch deg/sec
gyroRaw[2] gyroRaw[2] rotation(gyro before filtering) yaw deg/sec
accSmooth[0] acc[x] acceleration north ADC * normalised 1g
accSmooth[1] acc[y] acceleration east ADC * normalised 1g
accSmooth[2] acc[z] acceleration vertical ADC * normalised 1g
accVib accVib accelerometer vibration level frequency Hz
attitude[0] attitude[0] heading roll 0-3600 deg/10
attitude[1] attitude[1] heading pitch 0-3600 deg/10
attitude[2] attitude[2] heading yaw 0-3600 deg/10
debug[0-7] debug[0-7] CLI debug_mode 0 - 7
motor[0] motor[0] output to motor ESC 0 1000-2000 µs
motor[1] motor[1] output to motor ESC 1 1000-2000 µs
motor[2] motor[2] output to motor ESC 2 1000-2000 µs
motor[3] motor[3] output to motor ESC 3 1000-2000 µs
navState navigation control mode state
navFlags navigation data trusted
navPos[0] navPos[0] position of vehicle north cm
navPos[1] navPos[1] position of vehicle east cm
navPos[2] navPos[2] position of vehicle vertical cm
navVel[0] navVel[0] velocity of vehicle north cm/s
navVel[1] navVel[1] velocity of vehicle east cm/s
navVel[2] navVel[2] velocity of vehicle vertical cm/s
navAcc[0] navAcc[0] acceleration of vehicle north cm/s/s
navAcc[1] navAcc[1] acceleration of vehicle east cm/s/s
navAcc[2] navAcc[2] acceleration of vehicle vertical cm/s/s
navTgtVel[0] navTgtVel[0] target value: velocity north cm/s
navTgtVel[1] navTgtVel[1] target value: velocity east cm/s
navTgtVel[2] navTgtVel[2] target value: velocity vertical cm/s
navTgtPos[0] navTgtPos[0] target value: position north cm
navTgtPos[1] navTgtPos[1] target value: position east cm
navTgtPos[2] navTgtPos[2] target value: position vertical cm
navTgtHdg active heading computation horizontal
navSurf[0] navSurf[0] requires surface mode
flightModeFlags (flags) active modes
stateFlags (flags) active control states
failsafePhase (flags) failsafePhase idle/active (RTH/Land) boolean 0/1
rxSignalReceived active RX link boolean 0/1
rxFlightChannelsValid
hwHealthStatus active sensor communication
waypoint activeWPNumber current flight waypoint decimal
rpm escRPM ESC telemetry motor revolutions/min RPM
escTemperature escTemperature ESC telemetry temperature decidegrees C
IMUTemperature IMUTemperature Gyro/Acc device temperature degrees C
baroTemperature baroTemperature barometer device temperature degrees C
sensTemp Sens 0-7 Temp user dedicated temperature sensors 0-7 degrees C
windHeading direction degrees
windVelocity speed m/s
wind[0] windVelocity wind X axis velocity north m/s
wind[1] windVelocity wind Y axis velocity east m/s
wind[2] windVelocity wind Z axis velocity vertical m/s
AirSpeed AirSpeed Pitot or Virtual cm/s
GPS_home[0] latitude degrees
GPS_home[1] longitude degrees
GPS_fixType positional lock accuracy None - 2D - 3D
GPS_numSat number of satellites acquired decimal
GPS_coord[0] latitude deg : min : sec
GPS_coord[1] longitude deg : min : sec
GPS_altitude GPS_altitude m
GPS_speed velocity cm/s
GPS ground course ground course heading degrees
GPS_hdop quality of GPS fix 10 down to 0.5
navEPH Std deviation horizontal position error meters
navEPV Std deviation of vertical position error meters
GPS_velned[0] CoG X axis velocity north m/s
GPS_velned[1] CoG Y axis velocity east m/s
GPS_velned[2] CoG Z axis velocity down m/s

WIKI TOPICS

Wiki Home Page

INAV Version Release Notes

8.0.0 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 Tab
Set aircraft type and how its controlled

Outputs Tab
Set ESC Protocol and Servo Parameters

Modes Tab
Assign flight modes to transmitter switches
Standard Modes
Navigation Modes
Return to Home
Fixed Wing Autolaunch
Auto Launch

Configuration Tab
No wiki page currently

Failsafe Tab
Set expected behavior of aircraft upon failsafe

PID Tuning

Navigation PID tuning (FW)
Navigation PID tuning (MC)
EZ-Tune
PID Attenuation and scaling
Tune INAV PID-FF 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

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
Sensor auto detect and hardware failure detection 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
Ublox 3.01 firmware and Galileo
DevDocs Controls
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
UAV Interconnect Bus
DevDocs Rangefinder.md
DevDocs Rssi.md
DevDocs Runcam device.md
DevDocs Serial.md
DevDocs Telemetry.md
DevDocs Rx.md
DevDocs Spektrum bind.md
DevDocs INAV_Autolaunch.pdf

Clone this wiki locally