Files
PX4-Autopilot/ROMFS/px4fmu_common/init.d/rc.sensors
T

368 lines
7.2 KiB
Bash

#!/bin/sh
#
# Standard startup script for sensor drivers.
#
# NOTE: Script variables are declared/initialized/unset in the rcS script.
#
###############################################################################
# Begin Optional drivers #
###############################################################################
%ifdef CONFIG_DRIVERS_BATT_SMBUS
if param compare -s SENS_EN_BATT 1
then
batt_smbus start -X
fi
%endif
%ifdef CONFIG_DRIVERS_SMART_BATTERY_BATMON
# Start batmon driver if enabled using BATMON_DRIVER_EN
if param compare -s BATMON_DRIVER_EN 1
then
batmon start -X #start on external bus
fi
%endif
%ifdef CONFIG_DRIVERS_PWM_INPUT
%ifdef CONFIG_DRIVERS_DISTANCE_SENSOR_LL40LS
# 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
%endif
# External automatic trigger system
if param compare FD_EXT_ATS_EN 1
then
pwm_input start
fi
%endif
%ifdef CONFIG_DRIVERS_DISTANCE_SENSOR_LL40LS
# Lidar-Lite on I2C
if param compare -s SENS_EN_LL40LS 2
then
ll40ls start -X
fi
%endif
%ifdef CONFIG_DRIVERS_DISTANCE_SENSOR_MAPPYDOT
# mappydot lidar sensor
if param compare -s SENS_EN_MPDT 1
then
mappydot start -X
fi
%endif
%ifdef CONFIG_DRIVERS_DISTANCE_SENSOR_MB12XX
# mb12xx sonar sensor
if param greater -s SENS_EN_MB12XX 0
then
mb12xx start -X
fi
%endif
%ifdef CONFIG_DRIVERS_DISTANCE_SENSOR_PGA460
# pga460 sonar sensor
if param greater -s SENS_EN_PGA460 0
then
pga460 start
fi
%endif
%ifdef CONFIG_DRIVERS_DISTANCE_SENSOR_LIGHTWARE_LASER_I2C
# Lightware i2c lidar sensor
if param greater -s SENS_EN_SF1XX 0
then
lightware_laser_i2c start -X
fi
%endif
%ifdef CONFIG_DRIVERS_DISTANCE_SENSOR_SRF05
# Sensor HY-SRF05 or HC-SR05 ultrasonic sensor
if param compare -s SENS_EN_SR05 1
then
srf05 start
fi
%endif
%ifdef CONFIG_DRIVERS_DISTANCE_SENSOR_TERARANGER
# Teraranger one tof sensor
if param greater -s SENS_EN_TRANGER 0
then
teraranger start -X
fi
%endif
%ifdef CONFIG_DRIVERS_OPTICAL_FLOW_PAA3905
# paa3905 optical flow sensor (external SPI)
if param greater -s SENS_EN_PAA3905 0
then
paa3905 -S start
fi
%endif
%ifdef CONFIG_DRIVERS_OPTICAL_FLOW_PAW3902
# paw3902 optical flow sensor (external SPI)
if param greater -s SENS_EN_PAW3902 0
then
paw3902 -S start
fi
%endif
%ifdef CONFIG_DRIVERS_OPTICAL_FLOW_PMW3901
# pmw3901 optical flow sensor (external SPI)
if param greater -s SENS_EN_PMW3901 0
then
pmw3901 -S start
fi
%endif
%ifdef CONFIG_DRIVERS_DISTANCE_SENSOR_VL53L0X
# vl53l0x i2c distance sensor
if param compare -s SENS_EN_VL53L0X 1
then
vl53l0x start -X
fi
%endif
%ifdef CONFIG_DRIVERS_DISTANCE_SENSOR_VL53L1X
# vl53l1x i2c distance sensor
if param compare -s SENS_EN_VL53L1X 1
then
vl53l1x start -X
fi
%endif
%ifdef CONFIG_DRIVERS_DISTANCE_SENSOR_TF02PRO
# tf02 pro i2c distance sensor
if param compare -s SENS_EN_TF02PRO 1
then
tf02pro start -X
fi
%endif
%ifdef CONFIG_DRIVERS_IMU_ANALOG_DEVICES_ADIS16448
# ADIS16448 spi external IMU
if param compare -s SENS_EN_ADIS164X 1
then
if param compare -s SENS_OR_ADIS164X 0
then
adis16448 -S start
fi
if param compare -s SENS_OR_ADIS164X 4
then
adis16448 -S start -R 4
fi
fi
%endif
%ifdef CONFIG_DRIVERS_IMU_ANALOG_DEVICES_ADIS16507
# ADIS16507 spi external IMU
if param greater -s SENS_EN_ADIS165X 0
then
adis16507 -S start
fi
%endif
%ifdef CONFIG_DRIVERS_IMU_MURATA_SCH16T
# SCH16T spi external IMU
if param compare -s SENS_EN_SCH16T 1
then
sch16t -S start
fi
%endif
%ifdef CONFIG_DRIVERS_DIFFERENTIAL_PRESSURE_ETS
# Eagle Tree airspeed sensor external I2C
if param compare -s SENS_EN_ETSASPD 1
then
ets_airspeed start -X
fi
%endif
%ifdef CONFIG_DRIVERS_DIFFERENTIAL_PRESSURE_SDP3X
# Sensirion SDP3X differential pressure sensor external I2C
if param compare -s SENS_EN_SDP3X 1
then
if ! sdp3x start -X
then
# try another common address
sdp3x start -X -a 0x22
fi
fi
%endif
%ifdef CONFIG_DRIVERS_TEMPERATURE_SENSOR_MCP9808
# Microchip MCP9808 temperature sensor external I2C
if param compare -s SENS_EN_MCP9808 1
then
mcp9808 start -X
fi
%endif
%ifdef CONFIG_DRIVERS_DIFFERENTIAL_PRESSURE_MS4515
# TE MS4515 differential pressure sensor external I2C
if param compare -s SENS_EN_MS4515 1
then
ms4515 start -X
fi
%endif
%ifdef CONFIG_DRIVERS_DIFFERENTIAL_PRESSURE_MS4525DO
# TE MS4525DO differential pressure sensor external I2C
if param compare -s SENS_EN_MS4525DO 1
then
ms4525do start -X
fi
%endif
%ifdef CONFIG_DRIVERS_DIFFERENTIAL_PRESSURE_MS5525DSO
# TE MS5525DSO differential pressure sensor external I2C
if param compare -s SENS_EN_MS5525DS 1
then
ms5525dso start -X
fi
%endif
%ifdef CONFIG_DRIVERS_DIFFERENTIAL_PRESSURE_ASP5033
# TE ASP5033 differential pressure sensor external I2C
if param compare -s SENS_EN_ASP5033 1
then
asp5033 start -X
fi
%endif
%ifdef CONFIG_DRIVERS_DIFFERENTIAL_PRESSURE_AUAV
# AUAV absolute/differential pressure sensor external I2C
if param greater -s SENS_EN_AUAVX 0
then
auav start -D -X
auav start -A -X
fi
%endif
%ifdef CONFIG_DRIVERS_HYGROMETER_SHT3X
# SHT3x temperature and hygrometer sensor, external I2C
if param compare -s SENS_EN_SHT3X 1
then
sht3x start -X
sht3x start -X -a 0x45
fi
%endif
%ifdef CONFIG_DRIVERS_IRLOCK
# IR-LOCK sensor external I2C
if param compare -s SENS_EN_IRLOCK 1
then
irlock start -X
fi
%endif
%ifdef CONFIG_DRIVERS_BAROMETER_GOERTEK_SPL06
# SPL06 sensor external I2C
if param compare -s SENS_EN_SPL06 1
then
spl06 -X start
spl06 -X -a 0x77 start
fi
%endif
%ifdef CONFIG_DRIVERS_BAROMETER_GOERTEK_SPA06
# SPA06 sensor external I2C
if param compare -s SENS_EN_SPA06 1
then
spa06 -X start
spa06 -X -a 0x77 start
fi
%endif
%ifdef CONFIG_DRIVERS_RPM_PCF8583
# PCF8583 counter (RPM sensor)
if param compare -s SENS_EN_PCF8583 1
then
pcf8583 start -X
pcf8583 start -X -a 0x51
fi
%endif
%ifdef CONFIG_DRIVERS_ADC_ADS7953
# ADC sensor ADS7953 external SPI
if param compare -s ADC_ADS7953_EN 1
then
ads7953 start -S
fi
%endif
%ifdef CONFIG_DRIVERS_ADC_TLA2528
# ADC sensor tla2528 external I2C
if param compare -s ADC_TLA2528_EN 1
then
tla2528 start -X
fi
%endif
%ifdef CONFIG_DRIVERS_TEMPERATURE_SENSOR_TMP102
# Start TMP102 temperature sensor
if param compare -s SENS_EN_TMP102 1
then
tmp102 start -X
fi
%endif
%ifdef COMMON_MAGNETOMETER
# probe for optional external I2C devices
if param compare SENS_EXT_I2C_PRB 1
then
%ifdef CONFIG_DRIVERS_IMU_INVENSENSE_ICM20948
icm20948_i2c_passthrough -X -q start
%endif
# compasses
%ifdef CONFIG_DRIVERS_MAGNETOMETER_HMC5883
hmc5883 -T -X -q start
%endif
%ifdef CONFIG_DRIVERS_MAGNETOMETER_ST_IIS2MDC
iis2mdc -X -q start
%endif
%ifdef CONFIG_DRIVERS_MAGNETOMETER_ISENTEK_IST8308
ist8308 -X -q start
%endif
%ifdef CONFIG_DRIVERS_MAGNETOMETER_ISENTEK_IST8310
ist8310 -X -q start
%endif
%ifdef CONFIG_DRIVERS_MAGNETOMETER_LIS3MDL
if ! lis3mdl -X -q start
then
lis3mdl -X -q -a 0x1c start
fi
%endif
%ifdef CONFIG_DRIVERS_MAGNETOMETER_QMC5883L
qmc5883l -X -q start
%endif
%ifdef CONFIG_DRIVERS_MAGNETOMETER_QMC5883P
qmc5883p -X -q start
%endif
%ifdef CONFIG_DRIVERS_MAGNETOMETER_RM3100
rm3100 -X -q start
%endif
%ifdef CONFIG_DRIVERS_MAGNETOMETER_BOSCH_BMM350
bmm350 -X -q start
%endif
%ifdef CONFIG_DRIVERS_MAGNETOMETER_ST_IIS2MDC
iis2mdc -X -q start
%endif
# start last (wait for possible icm20948 passthrough mode)
%ifdef CONFIG_DRIVERS_MAGNETOMETER_AKM_AK09916
ak09916 -X -q start
%endif
fi
%endif