Sensor auto detect and hardware failure detection - iNavFlight/inav GitHub Wiki
How auto detect works in INAV
On INAV when mag_hardware and baro_hardware is set to AUTO
it tries to auto detect which sensor is connected.
When it finds a sensor it will change the parameter to the one found, example BMP280
. If it fails to find any sensor it will set *_hardware to NONE
Reason for switching from AUTO
to the detected sensor is to make the hardware failure detection work properly.
Default value after a new firmware flash is AUTO
, this will cause the firmware to look for sensors on first boot, and set the found sensors.
If you connect a magnetometer after first boot it will not auto-detect it, then you will have to either specify mag_hardware
manually, or do a new mag_hardware = AUTO
to try and auto detect mag. ( This also applies if you already have an external mag connected, but don't have it powered up on first boot )
Hardware failure detection
Since version 1.5 INAV features hardware failure detection. At run time all sensors - GPS, BARO, MAG, ACC, GYRO, SONAR are periodically checked by a diagnostic system. There are 4 cases for each sensor:
Case #1: If sensor is not configured (*_hardware
setting set to NONE
or in case of GPS feature is not enabled) it's not monitored by diagnostic system, reported as NOT AVAILABLE
and is not considered as a hardware failure.
If sensor is configured it's checked periodically and it's status is reported to Configurator via MSP and also used for pre-flight checks.
Case #2: Sensor is configured, but not detected. This can happen if you configure a sensor that is not present i.e. by accidentally setting mag_hardware
to MAG3110
while your compass chip is HMC5883
. In this case sensor is reported as NOT DETECTED
and this status is considered as a hardware failure.
Case #3: Sensor is configured, detected correctly, but reports inconsistent readings. This check may not be implemented for certain sensor but if it does such sensor is reported as NOT HEALTHY
and is considered as a hardware failure.
Case #4: Sensor is configured, detected correctly and reports sane and consistent data. This is reported as GOOD
status.
If any of the sensors is in NOT DETECTED
or NOT HEALTHY
state - the board will not ARM and FAIL
will be indicated for Hardware health
pre-arming check in the Configurator.
Hardware detection failure does not work while in flight. Only detection working is if INAV looses position data, and it does not have knowledge of where it is anymore, example loosing GPS lock. This will cause the machine to exit GPS modes, and if its during fail-safe RTH it will emergency land.