aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ROMFS/px4fmu_common/init.d/rc.sensors34
-rw-r--r--src/modules/sensors/sensor_params.c13
-rw-r--r--src/modules/systemlib/system_params.c11
3 files changed, 35 insertions, 23 deletions
diff --git a/ROMFS/px4fmu_common/init.d/rc.sensors b/ROMFS/px4fmu_common/init.d/rc.sensors
index f50e9aff7..121dc89d3 100644
--- a/ROMFS/px4fmu_common/init.d/rc.sensors
+++ b/ROMFS/px4fmu_common/init.d/rc.sensors
@@ -8,33 +8,43 @@ adc start
if mpu6000 start
then
- echo "[init] Using MPU6000"
+ echo "Internal MPU6000"
fi
if l3gd20 start
then
- echo "[init] Using L3GD20(H)"
+ echo "Internal L3GD20(H)"
fi
-# Use selected (internal/external) magnetometer
-if param compare SYS_EXT_MAG 0
+# MAG selection
+if param compare SENS_EXT_MAG 2
then
if hmc5883 -I start
then
- echo "[init] Using internal HMC5883"
+ echo "Internal HMC5883"
fi
-
- if ver hwcmp PX4FMU_V2
+else
+ # Use only external as primary
+ if param compare SENS_EXT_MAG 1
then
- if lsm303d start
+ if hmc5883 -X start
+ then
+ echo "External HMC5883"
+ fi
+ else
+ # auto-detect the primary, prefer external
+ if hmc5883 start
then
- echo "[init] Using internal LSM303D"
+ echo "Default HMC5883"
fi
fi
-else
- if hmc5883 -X start
+fi
+
+if ver hwcmp PX4FMU_V2
+then
+ if lsm303d start
then
- echo "[init] Using external HMC5883"
+ echo "Internal LSM303D"
fi
fi
diff --git a/src/modules/sensors/sensor_params.c b/src/modules/sensors/sensor_params.c
index 38b190761..7ce6ef5ef 100644
--- a/src/modules/sensors/sensor_params.c
+++ b/src/modules/sensors/sensor_params.c
@@ -292,6 +292,19 @@ PARAM_DEFINE_FLOAT(SENS_BOARD_Z_OFF, 0.0f);
*/
PARAM_DEFINE_INT32(SENS_EXT_MAG_ROT, 0);
+/**
+* Set usage of external magnetometer
+*
+* * Set to 0 (default) to auto-detect (will try to get the external as primary)
+* * Set to 1 to force the external magnetometer as primary
+* * Set to 2 to force the internal magnetometer as primary
+*
+* @min 0
+* @max 2
+* @group Sensor Calibration
+*/
+PARAM_DEFINE_INT32(SENS_EXT_MAG, 0);
+
/**
* RC Channel 1 Minimum
diff --git a/src/modules/systemlib/system_params.c b/src/modules/systemlib/system_params.c
index 8cb923620..702e435ac 100644
--- a/src/modules/systemlib/system_params.c
+++ b/src/modules/systemlib/system_params.c
@@ -82,14 +82,3 @@ PARAM_DEFINE_INT32(SYS_USE_IO, 1);
* @group System
*/
PARAM_DEFINE_INT32(SYS_RESTART_TYPE, 2);
-
-/**
-* Set usage of external magnetometer
-*
-* Set to 1 to use external magnetometer instead of internal one.
-*
-* @min 0
-* @max 1
-* @group System
-*/
-PARAM_DEFINE_INT32(SYS_EXT_MAG, 0);