#!nsh # # Standard startup script for PX4FMU v1, v2, v3, v4 onboard sensor drivers. # if ver hwcmp PX4FMU_V1 then if ms5611 start then fi else # Configure all I2C buses to 100 KHz as they # are all external or slow fmu i2c 1 100000 fmu i2c 2 100000 if ms5611 -s start then fi # Blacksheep telemetry if bst start then fi fi if adc start then fi if ver hwcmp PX4FMU_V2 then # External I2C bus if hmc5883 -C -T -X start then fi # External I2C bus if lis3mdl -X start then fi # Internal I2C bus if hmc5883 -C -T -I -R 4 start then fi # external MPU6K is rotated 180 degrees yaw if mpu6000 -X -R 4 start then set BOARD_FMUV3 true else set BOARD_FMUV3 false fi if [ $BOARD_FMUV3 == true ] then # external L3GD20H is rotated 180 degrees yaw if l3gd20 -X -R 4 start then fi # external LSM303D is rotated 270 degrees yaw if lsm303d -X -R 6 start then fi # internal MPU6000 is rotated 180 deg roll, 270 deg yaw if mpu6000 -R 14 start then fi if hmc5883 -C -T -S -R 8 start then fi if meas_airspeed start -b 2 then fi else # FMUv2 if mpu6000 start then fi if l3gd20 start then fi if lsm303d start then fi fi fi if ver hwcmp PX4FMU_V4 then # External I2C bus if hmc5883 -C -T -X start then fi if lis3mdl -R 2 start then fi # Internal SPI bus is rotated 90 deg yaw if hmc5883 -C -T -S -R 2 start then fi # Internal SPI bus ICM-20608-G is rotated 90 deg yaw if mpu6000 -R 2 -T 20608 start then fi # Internal SPI bus mpu9250 is rotated 90 deg yaw if mpu9250 -R 2 start then fi fi if ver hwcmp PX4FMU_V1 then # FMUv1 if mpu6000 start then fi if l3gd20 start then fi # MAG selection if param compare SENS_EXT_MAG 2 then if hmc5883 -C -I start then fi else # Use only external as primary if param compare SENS_EXT_MAG 1 then if hmc5883 -C -X start then fi else # auto-detect the primary, prefer external if hmc5883 start then fi fi fi fi if ver hwcmp MINDPX_V2 then if mpu6500 start then fi if lsm303d start then fi if l3gd20 start then fi # External I2C bus if hmc5883 -C -T -X start then fi if lis3mdl -R 2 start then fi fi if meas_airspeed start then else if ets_airspeed start then else if ets_airspeed start -b 1 then fi fi fi if sf1xx start then fi # Wait 20 ms for sensors (because we need to wait for the HRT and work queue callbacks to fire) usleep 20000 if sensors start then fi