|
|
|
#!/bin/sh
|
|
|
|
#
|
|
|
|
# Standard startup script for sensor drivers.
|
|
|
|
#
|
|
|
|
# NOTE: Script variables are declared/initialized/unset in the rcS script.
|
|
|
|
#
|
|
|
|
|
|
|
|
if ! ver hwcmp AEROFC_V1 OMNIBUS_F4SD
|
|
|
|
then
|
|
|
|
if ! ver hwcmp BITCRAZE_CRAZYFLIE
|
|
|
|
then
|
|
|
|
# Configure all I2C buses to 100 KHz as they
|
|
|
|
# are all external or slow
|
|
|
|
# TODO: move this
|
|
|
|
pwm_out i2c 1 100000
|
|
|
|
pwm_out i2c 2 100000
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
###############################################################################
|
|
|
|
# Begin Optional drivers #
|
|
|
|
###############################################################################
|
|
|
|
|
|
|
|
if param compare -s SENS_EN_BATT 1
|
|
|
|
then
|
|
|
|
batt_smbus start -X
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Sensors on the PWM interface bank
|
|
|
|
if param compare -s SENS_EN_LL40LS 1
|
|
|
|
then
|
|
|
|
if pwm_input start
|
|
|
|
then
|
|
|
|
ll40ls_pwm start
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
# External automatic trigger system
|
|
|
|
if param compare FD_EXT_ATS_EN 1
|
|
|
|
then
|
|
|
|
pwm_input start
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Lidar-Lite on I2C
|
|
|
|
if param compare -s SENS_EN_LL40LS 2
|
|
|
|
then
|
|
|
|
ll40ls start -X
|
|
|
|
fi
|
|
|
|
|
|
|
|
# mappydot lidar sensor
|
|
|
|
if param compare -s SENS_EN_MPDT 1
|
|
|
|
then
|
|
|
|
mappydot start -X
|
|
|
|
fi
|
|
|
|
|
|
|
|
# mb12xx sonar sensor
|
|
|
|
if param greater -s SENS_EN_MB12XX 0
|
|
|
|
then
|
|
|
|
mb12xx start -X
|
|
|
|
fi
|
|
|
|
|
|
|
|
# pga460 sonar sensor
|
|
|
|
if param greater -s SENS_EN_PGA460 0
|
|
|
|
then
|
|
|
|
pga460 start
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Lightware i2c lidar sensor
|
|
|
|
if param greater -s SENS_EN_SF1XX 0
|
|
|
|
then
|
|
|
|
sf1xx start -X
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Heater driver for temperature regulated IMUs.
|
|
|
|
if param compare -s SENS_EN_THERMAL 1
|
|
|
|
then
|
|
|
|
heater start
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Teraranger one tof sensor
|
|
|
|
if param greater -s SENS_EN_TRANGER 0
|
|
|
|
then
|
|
|
|
teraranger start -X
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Possible external pmw3901 optical flow sensor
|
|
|
|
if param greater -s SENS_EN_PMW3901 0
|
|
|
|
then
|
|
|
|
pmw3901 -S start
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Possible external paw3902 optical flow sensor
|
|
|
|
if param greater -s SENS_EN_PAW3902 0
|
|
|
|
then
|
|
|
|
paw3902 -S start
|
|
|
|
fi
|
|
|
|
|
|
|
|
# probe for optional external I2C devices
|
|
|
|
if param compare SENS_EXT_I2C_PRB 1
|
|
|
|
then
|
|
|
|
# compasses
|
|
|
|
ak09916 -X -R 6 start # external AK09916 (Here2) is rotated 270 degrees yaw
|
|
|
|
hmc5883 -T -X start
|
|
|
|
ist8308 -X start
|
|
|
|
ist8310 -X start
|
|
|
|
lis2mdl -X start
|
|
|
|
lis3mdl -X start
|
|
|
|
qmc5883 -X start
|
|
|
|
rm3100 -X start
|
|
|
|
|
|
|
|
# differential pressure sensors
|
|
|
|
if [ ${VEHICLE_TYPE} = fw -o ${VEHICLE_TYPE} = vtol ]
|
|
|
|
then
|
|
|
|
if param compare CBRK_AIRSPD_CHK 0
|
|
|
|
then
|
|
|
|
sdp3x_airspeed start -X
|
|
|
|
sdp3x_airspeed start -X -a 0x22
|
|
|
|
|
|
|
|
# Pixhawk 2.1 has a MS5611 on I2C which gets wrongly
|
|
|
|
# detected as MS5525 because the chip manufacturer was so
|
|
|
|
# clever to assign the same I2C address and skip a WHO_AM_I
|
|
|
|
# register.
|
|
|
|
if [ $BOARD_FMUV3 = 21 ]
|
|
|
|
then
|
|
|
|
ms5525_airspeed start -X -b 2
|
|
|
|
else
|
|
|
|
ms5525_airspeed start -X
|
|
|
|
fi
|
|
|
|
|
|
|
|
ms4525_airspeed start -X
|
|
|
|
|
|
|
|
ets_airspeed start -X
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
###############################################################################
|
|
|
|
# End Optional drivers #
|
|
|
|
###############################################################################
|
|
|
|
|
|
|
|
sensors start
|